Исходный текст: http://uanic.kiev.ua/Firewall_rules.phpНесколько советов по написанию правил firewall на пограничных (внешних) маршрутизаторах:
- запрещаем всё кроме явно разрешённого трафика;
- запрещаем доступ со стороны Интернета от несуществующий сетей "INTERNET PROTOCOL V4 ADDRESS SPACE";
- запрещаем доступ со стороны Интернета от сетей "Address Allocation for Private Internets", RFC 1918, February 1996;
- запрещаем доступ со стороны Интернета от сетей "Category: Informational Special-Use IPv4 Addresses", RFC 3330, September 2002;
- создаём правила защиты от spoofing;
- пишем правила фильтрации icmp протокола "ICMP TYPE NUMBERS";
- ограничиваем доступ к самому firewall’y;
- разрешаем лишь необходимый трафик, при этом фильтруя по протоколу, адресу источника (назначения), порту источника (назначения), направлению (вход, выход), сетевому интерфейсу, флагам и опциям IP\TCP протокола;
- фиксируем запрещенные пакеты syslog;
Придерживаясь этих советов, мы получили список сетей, от которых запретили доступ и были очень удивлены изменениям счётчиков.
Список сетей:
--- RFC1918
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
--- RFC3330
0.0.0.0/8
10.0.0.0/8
14.0.0.0/8
24.0.0.0/8
39.0.0.0/8
127.0.0.0/8
128.0.0.0/16
169.254.0.0/16
172.16.0.0/12
191.255.0.0/16
192.0.0.0/24
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
198.18.0.0/15
223.255.255.0/24
224.0.0.0/4
240.0.0.0/4
--- и INTERNET PROTOCOL V4 ADDRESS SPACE (last updated 2007-01-16)
0.0.0.0/7
2.0.0.0/8
5.0.0.0/8
7.0.0.0/8
23.0.0.0/8
27.0.0.0/8
31.0.0.0/8
37.0.0.0/8
39.0.0.0/8
42.0.0.0/8
92.0.0.0/6
100.0.0.0/6
104.0.0.0/5
112.0.0.0/6
127.0.0.0/8
173.0.0.0/8
174.0.0.0/7
176.0.0.0/5
184.0.0.0/6
197.0.0.0/8
223.0.0.0/8
224.0.0.0/3
Оптимизировав этот список, получаем следующее:
--- deny block net
0.0.0.0/7
2.0.0.0/8
5.0.0.0/8
7.0.0.0/8
10.0.0.0/8
14.0.0.0/8
23.0.0.0/8
24.0.0.0/8
27.0.0.0/8
31.0.0.0/8
37.0.0.0/8
39.0.0.0/8
42.0.0.0/8
92.0.0.0/6
100.0.0.0/6
104.0.0.0/5
112.0.0.0/6
127.0.0.0/8
128.0.0.0/16
169.254.0.0/16
172.16.0.0/12
173.0.0.0/8
174.0.0.0/7
176.0.0.0/5
184.0.0.0/6
191.255.0.0/16
192.0.0.0/24
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
197.0.0.0/8
198.18.0.0/15
223.0.0.0/8
224.0.0.0/3
---
Для периодического обновления списка "INTERNET PROTOCOL V4 ADDRESS SPACE" я использовал простой script:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/sh
file="ipv4-address-space"
# Download file list IPv4 space address
ftp -V http://www.iana.org/assignments/$file
cat $file | grep IANA | grep Reserved | grep -v "Formerly Stanford University" > $file.1
cat $file | grep IANA | grep Multicast >> $file.1
cat $file.1 | awk '{print $1}' > $file.2
rm $file.1
sed "s/\//.0.0.0\//g" $file.2 > $file.3
rm $file.2
cat $file.3 | aggregate -q > IP4_space.txt
rm $file.3
rm $file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
После добавления в файл 'IP4_space.txt' списка сетей из RFC (1918 and 3330) оптимизировал его командой 'cat IP4_space.txt | aggregate -q'.
aggregate - port in FreeBSD (/usr/ports/net-mgmt/aggregate/)