Чтение онлайн

ЖАНРЫ

Стахнов Алексей Александрович

Шрифт:

ipchains -A input -i $EXTERNAL_INTERFACE -s $IPADDR -j DENY -l

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

ipchains -A input -i $EXTERNAL_INTERFACE -s $LOOPBACK -j DENY ipchains -A output -i $EXTERNAL_INTERFACE -s $LOOPBACK -j DENY -l

Далее

необходимо отсечь сетевые пакеты, исходящие адреса которых попадают в диапазон IP-адресов, выделенных для использования во внутренних сетях. Маршрутизаторы не должны обрабатывать пакеты с исходящими адресами, принадлежащими внутренним сетям.

Тем же самым ограничениям должны подвергаться и исходящие сетевые пакеты, у которых адреса назначения попадают в диапазон IP-адресов, выделенных для использования во внутренних сетях, поскольку в Интернете не могут существовать адреса, предназначенные для использования исключительно в локальных сетях.

Приведенные ниже наборы правил запрещают прохождение входящих и исходящих сетевых пакетов в случае, если адрес источника или адрес назначения принадлежит диапазонам сетевых адресов классов А, В и С, выделенных для использования в локальных сетях.

# Запретить прохождение сетевых пакетов,

# которые содержат адрес источника,

# принадлежащий диапазону адресов класса А,

# предназначенных для внутреннего использования.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_A -j DENY

ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_A -j DENY

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_A -j DENY -l

ipchains -A output -i $EXTERNAL INTERFACE -d $CLASS A -j DENY -l

# Запретить прохождение сетевых пакетов,

# которые содержат адрес источника,

# принадлежащий диапазону адресов класса В,

# предназначенных для внутреннего использования.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_B -j DENY

ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_B -j DENY

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_B -j DENY -l

ipchains -A output -i $EXTERNAL_INTERFACE -d $CLASS_B -j DENY -l

# Запретить прохождение сетевых пакетов,

# которые содержат адрес источника,

# принадлежащий диапазону адресов класса С,

# предназначенных для внутреннего использования.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_C -j DENY

ipchains -A input -i $EXTERNAL_INTERFACE -d $CLASS_C -j DENY

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_C -j DENY -l

ipchains -A output -i $EXTERNAL INTERFACE -d $CLASS С -j DENY -l

Следующее правило, которое мы должны создать, необходимо для блокирования сетевых пакетов, содержащих недопустимые широковещательные адреса.

ipchains -A input -i $EXTERNAL_INTERFACE -s $BROADCAST_DEST -j DENY -l ipchains -A input -i $EXTERNAL_INTERFACE -d $BROADCAST_SRC -j DENY -l

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

# Запретить пакеты, содержащие адреса класса D.

ipchains -A input -i $EXTERNAL_INTERFACE -s $CLASS_D_MULTICAST -j DENY -l

ipchains -A output -i $EXTERNAL_INTERFACE -s $CLASS_D_MULTICAST -j REJECT -l

Групповое вещание производится с использованием протокола UDP. В сетевых пакетах, передаваемых посредством группового вещания, адрес назначения отличается от пакетов, которые передаются в процессе обычного обмена между двумя узлами. Следующее правило запрещает передачу сетевых пакетов группового вещания с локального узла:

ipchains -A output -i $EXTERNAL_INTERFACE -d $CLASS_D_MULTICAST -j REJECT -l Фильтрация ICMP-сообщений

Сообщения ICMP передаются при возникновении различных ситуаций, в том числе ошибочных. Они генерируются программами, анализирующими состояние сети, например ping или traceroute. В табл. 29.3 приведены ICMP-сообщения, которые могут представлять интерес для администратора сети.

Таблица 29.3. Часто встречающиеся типы ICMP-сообщений

Сообщения

об ошибках и управляющие сообщения

При настройке брандмауэра необходимо обеспечить прохождение четырех типов сообщений:

• Source Quench – подавление источника;

• Parameter Problem – некорректный параметр;

• Destination Unreachable (подтип Fragmentation Needed) – узел назначения недоступен (для входящих сообщений);

• Destination Unreachable (подтип Fragmentation Needed) – узел назначения недоступен (для исходящих сообщений).

Еще четыре типа ICMP-сообщений также могут быть разрешены для прохождения через брандмауэр. Это Echo Request (эхо-запрос), Echo Reply (эхо-ответ), различные подтипы исходящих сообщений Destination Unreachable, а также сообщение Time Exceeded (превышение времени). Остальные сообщения желательно игнорировать, чтобы они были удалены в соответствии с политикой по умолчанию.

Из всех типов сообщений, которые следует игнорировать, в таблице приведено только сообщение Redirect (перенаправление). Данное сообщение может быть использовано для организации атаки с целью вывода из строя сервисных средств. Остальные типы сообщений в основном предназначены для организации взаимодействия маршрутизаторов.

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

Управляющее сообщение Source Quench

ICMP-сообщение типа Source Quench (подавление источника) передается в тех случаях, когда маршрутизатор передает пакеты быстрее, чем принимающий узел может их обработать. Source Quench – одно из простейших средств контроля обмена данными на сетевом уровне. Обычно такими сообщениями обмениваются компьютеры, непосредственно связанные между собой.

Следующие правила разрешают прохождение входящих и исходящих ICMP-сообщений Source Quench:

ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 4 -d $IPADDR -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 4 -d $IPADDR -j ACCEPT

Если компьютер, которому предназначены пакеты, возвращает сообщение Source Quench, передающий узел должен снизить скорость обмена. Со временем он начинает повышать скорость передачи данных и делает это до тех пор, пока не получает следующее сообщение Source Quench.

Сообщение Parameter Problem

ICMP-сообщение типа Parameter Problem (некорректный параметр) возвращается в том случае, когда в заголовке сетевого пакета содержится недопустимая запись, либо если контрольная сумма заголовка сетевого пакета не соответствует контрольной сумме, указанной передающим хостом.

Следующие правила разрешают прохождение входящих и исходящих ICMP-сообщений Parameter Problem:

ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 12 -d $IPADDR -j ACCEPT pchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 12 -d $IPADDR -j ACCEPT

Сообщение об ошибке Destination Unreachable

ICMP-сообщение типа Destination Unreachable (узел назначения недоступен) представляет собой сообщение об ошибке. В заголовке пакета данного типа содержится код, обозначающий ошибку, которая имела место.

Следующие правила разрешают прохождение входящих и исходящих ICMP-сообщений Destination Unreachable:

ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 3 -d $IPADDR -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 3 -d $IPADDR -j ACCEPT

С точки зрения безопасности – достаточно неоднозначный пакет, поскольку можно использовать такого типа сообщения для сбора информации об адресах узлов и портах. Кроме того, сообщения Destination Unreachable могут быть использованы для организации атаки с целью вывода узла из строя.

Тем не менее, подтип Fragmentation Needed сообщения Destination Unreachable необходим для нормальной работы сетевых средств. С его помощью взаимодействующие узлы договариваются об особенностях разбиения передаваемых сетевых пакетов на фрагменты.

Так же, если требуется, чтобы компьютеры вашей локальной сети отвечали на входящие запросы программы traceroute, необходимо разрешить передачу исходящих пакетов, содержащих подтип Port Unreachable сообщения Destination Unreachable.

Сообщение Time Exceeded

ICMP-сообщение типа Time Exceeded (превышение времени) передает сведения о том, что число узлов, через которые проходил сетевой пакет по пути его следования, превысило максимально допустимое значение. В настоящее время сообщение Time Exceeded обычно передается в ответ на U DP-запрос программы traceroute.

Поделиться с друзьями: