Фильтрация нелегальных адресов в брандмауэреПодписка на Комментарии к "Фильтрация нелегальных адресов в брандмауэре"

Аватар zenon

Loopback-адреса.

Адреса обратной петли (127.0.0.0 - 127.255.255.255) никогда не могут ис­пользоваться за пределами интерфейса lo. Если пакеты с loopback-адресами появились на интерфейсе, отличном от lo, значит, они были подделаны (spoffed).

В следующем примере кода будет создана пользовательская цепочка bad_packets, которая будет отбрасывать адреса, перечисленные выше. Все отброшенные пакеты будут запротоколированы - хороший способ отладки неправильно сконфигурированных приложений и попыток спуффинга.

$IPT -N bad_packets
$IPT -P bad_packets ACCEPT
$IPT -A bad_packets -s 10.0.0.0/8 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 10.0.0.0/8 -j DROP
$IPT -A bad_packets -s 172.16.0.0/12 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 172.16.0.0/12 -j DROP

## Адреса диапазона 192.168.0.0 - 192.168.0.255
## могут использоваться, только если они приходят из DMZ

$IPT -A bad_packets -i $IF_EXT -s 192.168.0.0/24 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -i $IF_EXT -s 192.168.0.0/24 -j DROP
$IPT -A bad_packets -i $IF_LAN -s 192.168.0.0/24 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -i $IF_LAN -s 192.168.0.0/24 -j DROP

## Адреса диапазона 192.168.1.0 - 192.168.1.255
## могут использоваться, только если они приходят из LAN

$IPT -A bad_packets -i $IF_EXT -s 192.168.1.0/24 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -i $IF_EXT -s 192.168.1.0/24 -j DROP
$IPT -A bad_packets -i $IF_DMZ -s 192.168.1.0/24 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -i $IF_DMZ -s 192.168.1.0/24 -j DROP

## Зарезервированные, multicast, broadcast и loopback-адреса
$IPT -A bad_packets -s 169.254.0.0/16 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad packets -s 169.254.0.0/16 -j DROP
$IPT -A bad_packets -s 192.0.2.0/16 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 192.0.2.0/16 -j DROP
$IPT -A bad_packets -s 0.0.0.0/8 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 0.0.0.0/8 -j DROP
$IPT -A bad_packets -s 224.0.0.0/4 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 224.0.0.0/4 -j DROP
$IPT -A bad_packets -s 240.0.0.0/5 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 240.0.0.0/5 -j DROP
$IPT -A bad_packets -s 127.0.0.0/8 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -s 127.0.0.0/8 -j DROP

## Обычно пакеты , адресованные для
## адреса 255.255.255.255, должны быть отброшены

$IPT -A bad_packets -d 255.255.255.255 -j LOG --log-prefix "нелегальные_адреса"
$IPT -A bad_packets -d 255.255.255.255 -j DROP

Широковещательные пакеты, адресованные внешнему интерфейсу, также должны быть отброшены, поскольку они могут являться частью DoS-атаки.

Если ISP использует динамическую адресацию, уничтожение этих па­кетов может вызвать проблему, поскольку широковещательный адрес будет меняться при каждом подключении. Однако сценарий nat.sh со­держит параметры ядра, позволяющие игнорировать широковещательные ICMP-сообщения, следовательно, установка правила iptables не является жиз­ненно необходимой.

Если имеется статический внешний адрес, нужно добавить следующие правила (в этом случае внешний IP-адрес 1.2.3.17):

$IPT -A bad_packets -d 1.2.3.0 -j LOG --log-prefix "broadcast"
$IPT -A bad_packets -d 1.2.3.0 -j DROP
$IPT -A bad_packets -d 1.2.3.255 -j LOG --log-prefix "broadcast"
$IPT -A bad_packets -d 1.2.3.255 -j DROP

Все, что остается сделать, - это вставить созданную цепочку в начало це­почек INPUT, OUTPUT и FORWARD:

$IPT -I INPUT -j bad_packets
$IPT -I OUTPUT -j bad_packets
$IPT -I FORWARD -j bad_packets
Похожие материалы:

Добавить комментарий