FreeBSD: firewall для web сервера за 5 минут

В данном топике мы за 5 минут настроим firewall на FreeBSD. Так как в моем случае сервер работает на xen, никаких усложнений в плане защиты от ddos, syn флуда и прочего я расписывать не буду, т.к. внутри виртуальной машины это делать бессмысленно. По всем этим вещам рекомендую, например, данное руководство Wouter Coene The OpenBSD Packet Filter HOWTO, ну и разумеется FAQ.

Правим /etc/rc.conf:

pf_enable="YES"


Создаем/правим файл /etc/pf.conf:

# re0 - сетевой интерфейс
net_if1="re0"

# пропускаем все на локальном интерфейсе
set skip on lo

# список tcp портов, которые будут открыты со внешки
tcp_services = "{22, 80, 8080, 443}"

# блокируем все входящие соединения, но разрешаем исходящие
block in all
pass out all

# разрешаем доступ со внешки к вышеперечисленным портам
# ключевое слово quick означает, что после этого правила
# никакие другие правила к пакетам применяться не будут
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port $tcp_services


Стартуем (кстати, если делаете это на удаленном сервере, ssh соединение будет разорвано после старта pf).

/etc/rc.d/pf start


Вот такой минимализм. Работают только определенные TCP порты, ICMP отключен.

Также пример настроек для работы ftp сервера в пассивном режиме:

net_if1="re0"

set skip on lo

tcp_services = "{20, 21, 22, 1222, 80, 8080, 443, 6969, 5222, 5223, 9090, 9091}"

block in all
pass out all

pass in quick on $net_if1 inet proto tcp from any to $net_if1 port $tcp_services
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port 49512 >< 65535

Комментарии (5)

RSS свернуть / развернуть
+
0
Подобные конструкции встречаются и в сетевых фильтрах для Linux:

ALLOWED_PORTS_INTERNET="80 8022"

...

for PORT in $ALLOWED_PORTS_INTERNET; do
      $IPTABLES -A INPUT -p tcp --dport $PORT -j ACCEPT
      $IPTABLES -A INPUT -p udp --dport $PORT -j ACCEPT
done
avatar

yababay

  • 13 ноября 2011, 17:36
+
0
По мне pf обладает более упрощенным синтаксисом, в FreeBSD вообще несколько фаерволов на выбор.
avatar

Sergei_T

  • 14 ноября 2011, 08:41
+
0
Это да, давно слышу много лестного о pf. Интересно, на Linux оно установится?
avatar

yababay

  • 14 ноября 2011, 09:32
+
0
Такие вещи должны работать на уровне ядра, так что нет.
Да в качестве web сервера FreeBSD очень хорош.
avatar

Sergei_T

  • 14 ноября 2011, 09:48
+
0
Кстати, если лень заморачиваться с iptables, есть обертка shorewall или guiшный firewall builder.
avatar

Sergei_T

  • 14 ноября 2011, 10:08

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.