Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Блокирование адресов в брандмауэре.

Рубрика: Безопасность -> Брандмауэр
Метки: |
Среда, 8 апреля 2009 г.
Просмотров: 7906

     Блокирование нежелательных узлов.

     Временами возникает необходимость заблокировать нежелательные узлы или даже всю не­желательную сеть. Для этого лучше всего подходит цель DROP. Надо помнить, что цепочка INPUT содержит пакеты, предназначенные только для машины брандмауэра. Следовательно, нужно контролировать обе цепоч­ки - INPUT и FORWARD, если нужно заблокировать прием данных от нежелательного узла:

$IPT -I INPUT -s 10.20.30.40 -j DROP

$IPT -I FORWARD -s 10.20.30.40 -j DROP


     Для блокировки отправки данных нежелательному узлу нужно исполь­зовать цепочки OUTPUT и FORWARD, но в этом случае адрес нежелательного узла будет адресом получателя, то есть будет использоваться опция -d, а не -s:

$IPT -I OUTPUT -d 10.20.30.40 -j DROP

$IPT -I FORWARD -d 10.20.30.40 -j DROP

     Не больно то захочется вручную прописывать каждый блокируемый узел. Проще всего занести эти узлы в какой-нибудь файл, к примеру, /usr/local/etc/hosts.deny, а затем заблокировать все узлы, указан­ные в этом файле:

for host in 'cat /usr/local/etc/hosts.deny';

do

     $IPT -I INPUT -s $host -j DROP

     $IPT -I FORWARD -s $host -j DROP

     $IPT -I OUTPUT -d $host -j DROP

     $IPT -I FORWARD -d $host -j DROP

done

     Рекламные серверы.

     Нужно определить какие узлы являются нежелательными. В первую очередь это рекламные узлы. Список рекламных серверов приводить не буду, так как он очень большой. На сайте http://pgl.yoyo.org/adservers/ можно найти адреса более 1000 рекламных серверов, причем в разных фор­матах. Также в Интернете можно найти много различных списков этих адресов.

Лучше всего использовать текстовый формат - можно просто поместить эти адреса в файл /usr/local/etc/hosts.deny, и они будут блокиро­ваны.

     Фильтрация нелегальных адресов. Внутренние адреса.     

Отдельные диапазоны IP-адресов должны быть всегда блокированы, так как они используются только для специальных целей (внутренние адреса, мультикастинг или экспериментальные адреса).

     Внутренние адреса.

     Внутренние IP-адреса не могут передаваться в Интернет, следовательно, если будут приходить пакеты с внутренними адресами на внешний интерфейсе брандмауэра, значит удаленное приложение неправильно настроено (или неправильно написано) или же крекер пытается отправить паке­ты в локальную сеть, подделав IP-адреса. Следовательно, внутренние адреса долж­ны быть блокированы на внешнем интерфейсе.

     Следующие IP-адреса установлены организацией IANA как внутренние:

  • 10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
  • 172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
  • 192.168.0.0 - 192.168.255.255 (192.168.0.0/16)

     Некоторые провайдеры используют в своих внутренних сетях внутренние адреса, это можно увидеть, запустив traceroute:

# traceroute -n google.com

traceroute to google.com (216.239.57.99), 46 hops max, 38 byte packets

1 192.168.0.1 0.440 ms 0.152 ms 0.357 ms

2 192.168.20.41 0.552 ms 0.573 ms 0.589 ms

3 10.148.144.1 4.377 ms 5.628 ms 4.392 ms

4 213.106.238.113 7.373 ms 7.351 ms 7.526 ms

     В этом примере переход 2 - это брандмауэр, а переход 3 - это кабельный модем. В этом случае блокирование внутренних адресов может вызвать проблему, следовательно, перед блокированием нужно убедиться, что это не вызовет ни­каких проблем.

     MULTICAST-адреса.

     IP-адреса класса D (224.0.0.0 - 239.255.255.255) используются в качестве ад­ресов получателя для узлов, принимающих участие в групповых рассылках (к примеру, потоковое аудио). Данные адреса никогда не используются в ка­честве адресов отправителя.

     Unicast-адреса.

     Unicast-адреса класса А (0.0.0.0 - 0.255.255.255) также не используются в качестве адреса отправителя.

     Зарезервированные адреса.

     Адреса (240.0.0.0 - 255.255.255.255), относящиеся к классу Е, зарезервирова­ны организацией IANA как экспериментальные. Следовательно, их нельзя исполь­зовать в качестве адресов отправителя/получателя.

     Адреса из диапазона (192.0.2.0 - 192.0.2.255) также зарезервиро­ваны для тестовых сетей, а адреса диапазона (169.254.0.0 - 169.254.255.255) зарезервированы для автоматического назначения в случае ошибки DHCP. И те, и другие не могут использоваться в качестве адресов отправителя/получателя.