Firewall под Юниксами - настройка и использование

Спецвыпуск Хакера, номер #005, стр. 005-088-2

Иногда, когда в твоем файле правил содержится большое количество условий, то будет возникать задержка при проходе пакетов из-за того, что IPFilter будет просматривать все строчки до конца. Чтобы этого избежать, можно использовать ключевое слово 'quick':

block in quick all

pass in all

Если пакет удовлетворяет правилу и в правиле присутствует ключевое слово 'quick', то IPFilter не будет продолжать дальнейшее чтение, а сразу применит к пакету заданное правило.

Фильтровка по IP-адресам

Для фильтровки по заданным адресам существуют ключевые слова 'from' и 'to'. Слово 'any' подразумевает любой возможный IP-адрес. Пример правила:

block in quick all from 192.168.0.0/16 to any

Фильтровка по протоколам

Для фильтровки пакетов по протоколам используется ключевое слово 'proto'. Эта фича очень полезна для предотвращения некоторых типов атак. Вот пример блокировки ICMP пакетов:

block in quick proto icmp any to any

Такое правило будет блокировать ВСЕ ICMP пакеты, что не очень правильно, так как ICMP выполняет много важных задач в работе сети. Нам требуется запретить только ICMP пакеты типа Echo Request (8), которые чаще всего используются для флуд-атак. Для решения этой задачи существует ключевое слово 'icmp-type':

block in quick proto icmp from any to any icmp-type 8

Теперь пинга от нас никто не дождется ;). Далее следует неполный список основных типов и кодов ICMP пакетов, а также их описание.

0 - echo reply (ответ на ping)

3 - цель не доступна

3 (код 0) - сеть не доступна

3 (код 1) - узел не доступен

3 (код 2) - протокол не доступен

3 (код 3) - порт не доступен

4 (код 4) - временная приостановка передачи

5 - перенаправление

5 (код 0) - перенаправление для сети

5 (код 1) - перенаправление для узла

8 - echo request (запрос на ping)

Код для типа ICMP-пакета задается ключевым словом 'code'. В качестве примера запретим пакеты 5-го типа с кодом 1. Дело в том, что в атаке Winfreez используется флуд ICMP пакетами именно этого типа и кода с адреса маршрутизатора. При этом у атакуемого хоста быстро изменяется таблица маршрутизации, результатом чего является подвисание машины. Итак, наше запрещающее правило будет выглядеть следующим образом:

block in quick proto icmp from any to any icmp-type 5 code 1

Фильтровка по интерфейсам

Данная возможность позволяет фильтровать пакеты, идущие с разных сетевых интерфейсов. Для этого существует ключевое слово 'on':

block in quick on ppp0 proto igmp from any to any

Данное правило запретит все IGMP пакеты, идущие с сетевого интерфейса ppp0.

Если ты не знаешь имена своих сетевых интерфейсов, воспользуйся командой ifconfig:

[zlob]: ifconfig -a

lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 32972

inet 127.0.0.1 netmask 0xff000000

de0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500

media: Ethernet 10baseT

status: active

inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255

ne0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500

Назад на стр. 005-088-1  Содержание  Вперед на стр. 005-088-3

ttfb: 2.9029846191406 ms