Создание набора правил брандмауэра(Часть 1).
Метки: DHCP | DMZ | DNS | forwarding | SSH
Четверг, 2 апреля 2009 г.
Просмотров: 2861
Как и в сценарии для простой реализации сети с DMZ, первоначально определяются служебные переменные, которые будут использоваться в новом сценарии - firewall.sh. Описание каждой переменной можно найти в этом же разделе. Начало сценария будет таким:
IF_DMZ="eth2"
IF_EXT="eth0"IP_LAN="192.168.1.1"
IP_DMZ="192.168.0.1"DMZ_HTTP="192.168.0.3"
DMZ_DNS="192.168.О.2" DMZ_MAIL="192.168.0.4" ## Путь к исполнимому файлу iptables. ## Может отличаться в зависимости ## от дистрибутива Linux IPT="/usr/sbin/iptables"Защита брандмауэра.
В сценарии nat.sh доступ к брандмауэру был оставлен:
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Здесь запрещены новые исходящие соединения (цепочка OUTPUT). Пока что разрешен только трафик для уже установленных соединений (ESTABLISHED) и относящийся к ним трафик (RELATED). Создание новых соединений будет управляться другими правилами.
DNS-трафик.
Если правила IPTables содержат имена узлов (а не только IP-адреса), нужно разрешить DNS-трафик для трансляции имен в IP-адреса:
$IPT -A OUTPUT -o $IF_DMZ -p tcp -d $DMZ_DNS --dport 53 --sport 1024:65535 -j ACCEPT
$IPT -A OUTPUT -o $IF_EXT -p tcp -d <IР DNS ISP> --dport 53 --sport 1024:65535 -j ACCEPT
Правила SSH-доступа.
Предоставлять SSH-доступ к брандмауэру удаленным клиентам - крайне плохая идея. Если брандмауэр будет скомпрометирован, злоумышленник сможет контролировать всю сеть. В идеале доступ к брандмауэру должен быть ограничен лишь консолью, при этом должен быть разрешен только физический доступ к брандмауэру - никакого удаленного доступа. Но для удобства временами полезно разрешить SSH-доступ узлам внутренней сети (но не узлам нейтральной зоны):
Если возможно, доступ к брандмауэру должен быть ограничен определенными машинами:
В хорошо защищенной модели сети удаленный доступ не используется вообще. Безопасной альтернативой разрешения удаленного доступа удаленным узлам является создание специального SSH-cepвера, расположенного в нейтральной зоне. Обязательно надо, чтобы в качестве SSH-сервера использовалась отдельная машина.
Правила IPTables на брандмауэре должны быть сконфигурированы следующим образом: SSH-доступ к брандмауэру разрешается только SSH-серверу нейтральной зоны:
Соответствующее правило требуется NAT:
$IPT -A FORWARD -p tcp -i $IF_EXT -o $IF_DMZ -d$DMZ_DNS --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
SSH - это только одна из форм удаленного доступа, можно использовать и другие формы, например виртуальные частные сети (VPN).
DHCP.
Протокол DHCP (Dynamic Host Configuration Protocol) используется для динамического конфигурирования узла: назначения IP-адреса узла, адреса шлюза и других параметров. Как правило, протокол DHCP используется или в сетях провайдеров, или в больших корпоративных сетях.
В первом случае диапазон IP-адресов ограничен, что не позволяет каждому клиенту назначить реальный IP-адрес. Следовательно, провайдеру выделяется определенный диапазон реальных адресов, например 100. 70 (по количеству входящих линий) из них может использоваться для dial-up-клиентов, которые подключаются к модемному пулу провайдера, а остальные 30 могут быть использованы для других нужд (для серверов провайдера и для клиентов, использующих постоянные соединения).
В случае с корпоративной сетью ситуация чуть другая: DHCP может использоваться или для подключения удаленных клиентов, или же для удобства администратора - чтобы не настраивать все компьютеры в сети.
Протокол DHCP работает на двух портах - 68 (порт отправителя) и 67 (порт получателя). Когда DHCP-клиент подключается к сети, он посылает широковещательное сообщение DHCPDISCOVER, используя порт отправителя 68, а порт получателя - 67. Получив это сообщение, DHCP-сервер отправляет клиенту сообщение DHCPOFFER. Получив это сообщение, DHCP-клиент отправляет сообщение-запрос DHCPREQUEST. В ответ на это сообщение DHCP-сервер отправляет клиенту сообщение DHCPACK, содержащее IP-адрес и другую конфигурационную информацию.
Сначала нужно разрешить начальное сообщение DHCPDISCOVER и ответы на это сообщение - DHCPOFFER:
$IPT -A INPUT -i $IF_EXT -p udp --sport 67 --dport 68 -s 255.255.255.255 -j ACCEPT
Чтобы предотвратить попытки установки клиентами нашего ISP в сети еще одного DHCP-сервера, нужно принимать ответы только от своего DHCP-сервера:
Так как сообщения DHCPACK исходят от сервера, которому было отправлено сообщение DHCPREQUEST, они будут помечены как ESTABLISHED, следовательно, будут пропущены брандмауэром.
- Создание набора правил брандмауэра(Часть 1).