Next
Previous
Contents
Общая мудрость в компьютерной безопасности - блокировать все, затем открывать
то что необходимо. Это обычно звучит так: "то что явно не разрешено - запрещено".
Я рекомендую именно этот стиль, если безопасность ваша главная цель.
Не запускаете никаких служб в которых вы не нуждаетесь, даже если вы думаете,
что блокировали доступ к ним.
Если вы создаете выделенный firewall-сервер, сначала блокируйте весь траффик,
затем запускайте определенные сервисы и разрешайте пакетам проходить к ним.
Я рекомендую обезопасить себя как можно сильнее: комбинируйте
использование tcp-wrapperов (для соединений идущих на сам firewall), прокси
(для соединений идущих транзитом через firewall), проверку маршрутов и использование
фильтра пакетов. Проверка маршрутов - когда пакет приходит с интерфейса, с которого
он не должен приходить, такой пакет должен быть разрушен (DROP): пример,
если ваша внутренняя сеть имеет адрес 10.1.1.0/24, и пакет с таким исходным адресом
приходит на ваш внешний интерфейс, он будет разрушен (DROP). Это можно сделать
для одного интерфейса (ppp0) так:
# echo 1 > /proc/sys/net/ipv4/conf/ppp0/rp_filter
#
или для всех уже существующих интерфейсов и созданных в будущем:
# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo 1 > $f
# done
#
Debian устанавливает такие настройки по умолчанию где это только возможно.
Если вы используете ассиметричную маршрутизацию (т.е. пакеты могут приходить
с разных направлений), вам необходимо отключить такое фильтрование на
соответствующих интерфейсах.
Ведение лога полезно при настройке firewallа, но на рабочем firewallе,
всегда используйте эту возможность с "limit", чтобы избежать переполнения
ваших лог файлов.
Я крайне рекомендую использование отслеживания соединений на защищенных
системах: конечно это отнимает часть ресурсов, так как все соединения
регистрируются, но это очень полезное свойство для контролирования доступа к ваши сетям.
Вам может понадобиться загрузить "ip_conntrack.o" модуль, если ваше ядро не загружает
модули автоматически, и если он не встроен в ядро. Если вам необходимо отслеживать
сложные протоколы, вам надо будет загрузить соответствующий модуль (например "ip_conntrack_ftp.o").
# iptables -N no-conns-from-ppp0
# iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A no-conns-from-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix "Bad packet from ppp0:"
# iptables -A no-conns-from-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not from ppp0:"
# iptables -A no-conns-from-ppp0 -j DROP
# iptables -A INPUT -j no-conns-from-ppp0
# iptables -A FORWARD -j no-conns-from-ppp0
Настройка и создание хорошего firewall не входит в данный HOWTO, но мой совет
"всегда будьте минималистами". Просмотрите Security HOWTO для большей информации.
Next
Previous
Contents
|