Смекни!
smekni.com

Firewall (стр. 2 из 6)

В целях получения более гибкой системы правила фильтрации пакетов составляются для каждого сетевого интерфейса, в них учитываются IP-адреса источника и получателя, номера портов TCP и UDP, флаги TCP-соединений и ICM-сообщений. Причем правила для входящих и исходящих пакетов различаются. Это значит, что при настройке фильтрующего бранд­мауэра правила для конкретного сетевого интерфейса представляются как отдельные правила для входящей и исходящей информации, поскольку вхо­дящие и исходящие пакеты обрабатываются брандмауэром независимо друг от друга. Списки правил, которые управляют фильтрацией сетевых пакетов поступающих извне в локальную сеть и отправляемых из локальной сети в Интернет, принято называть цепочками (chains). Термин "цепочка" исполь­зуется потому, что при проверке пакета правила применяются последова­тельно одно за другим, пока не обнаружится подходящее правило для сете­вого пакета или список правил не будет исчерпан.

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

3.1.1. Фильтрация входящих пакетов

Рассмотрение построения брандмауэра логично начать со входящих паке­тов. Поскольку именно извне обычно происходит проникновение в сеть.

Итак, основной, но не единственной задачей сетевого экрана является фильт­рация пакетов. В Linux уже встроен Firewall, и его не надо устанавливать отдельно. Это iptables и ipchains. Iptables и ipchains позволяют контролировать трафик, который проходит сквозь компьютер по протоколам TCP, UDP и ICMP. Так как TCP является транспортом для всех основных протоколов Ин­тернета: FTP, HTTP, РОРЗ и др., то фильтрация TCP по­зволяет защищать все эти сервисы.

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

· без предупреждения;

· с посылкой на компьютер отправителя, сообщая об ошибке.

Последний вариант не приветствуется среди пользователей, потому что незачем направлять злоумышленнику лишние пакеты. Лучше оставить действие без внимания, и злоумышленник будет думать, что сервис просто недоступен. Но в этом случае легальные пользователи могут ощутить неудобства при наличии просчета в конфигури­ровании сетевого экрана. Допустим, что заблокирован доступ к 80 порту. Если пользователь обратится к Web-серверу, то программа, не получив ответа о запрете, будет находиться в состоянии ожидания до истече­ния Timeout. Для некоторых программ это значение может быть бесконеч­ным, и они зависнут.

К тому же, отправка сообщений с ошибками идет по протоколу ICMP. Недобросовестный пользователь может использовать эти особенности для реализации атаки "Отказ от обслуживания" и переполнить канал ненужными ответа­ми. Атака DoS может быть направлена не только на трафик. Доста­точно в цикле запускать запросы на установку соединения с запрещенным портом, а компьютер будет тратить ресурсы на проверку пакетов и от­правку ICMP-ответов. Если пакеты будут идти слишком часто, то сервер мо­жет не справиться с нагрузкой и перестанет отвечать на запросы авторизо­ванных пользователей.

При настройке правил можно использовать два варианта фильтра:

1. Разрешено все, что не запрещено.

2. Запрещено все, что не разрешено.

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

Если двигаться от разрешения, то по умолчанию все позволено. Администра­тор может забыть или просто не закрыть некий доступ и увидеть свою ошиб­ку только после того, как злоумышленник проникнет в систему.

3.1.2. Параметры фильтрации

Основными параметрами пакета, по которым производится фильтрация, являются номер порта источника или приемника, адрес отправителя или на­значения и протокол.

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

Можно задаться вопросом, зачем же фильтровать то, что уходит из сети? На первый взгляд бессмыслен­но, но смысл есть и достаточно большой. У исходящего трафика могут быть враги, такие как:

· троянские программы, которые могут отправлять в сеть конфиденциаль­ную информацию или соединяться со злоумышленником или с его сервером, чтобы брать команды с какого-нибудь файла;

· cпециализированные программы для обхода правил. Допустим, что доступ к определенному порту извне запрещен. Злоумышленник может поместить на сервере программу, которая будет перенаправлять трафик с разрешен­ного порта на запрещенный, наподобие туннелирования OpenSSL.

Возможных лазеек для проникновения очень много, задача закрыть максимальное их количество. Для этого под контролем должен быть трафик в обоих направлениях.

3.2. Протоколы

TCP используется как базовый для передачи данных таких протоколов, как HTTP, FTP и др. Запрещать его не имеет смысла, потому что это основа, без которой пользователь лишится всех удобств, предоставляемых всемирной сетью. Для передачи данных сначала TCP устанавливает соединение с удаленным хостом, и только потом происходит обмен информацией. Благодаря этому подделка IP-адреса любого участника соединения усложняется, а иногда ста­новится и невозможной.

Протокол UDP находится на одном уровне с TCP, но передает данные без установки соединения. Это значит, что пакет просто посылается в сеть на оп­ределенный адрес, и нет гарантии, что он дошел до адресата. Здесь нет ника­кой защиты от подделки IP-адреса, поэтому в качестве отправителя зло­умышленник может указать что угодно, и сервер не увидит подвоха. Ес­ли нет особой надобности, то обычно запрещают прохождение таких пакетов в обе стороны.

Протокол ICMP используется для обмена управляющими сообщениями. Че­рез него команда ping проверяет соединение с компьютером, а оборудование или программы сообщают друг другу об ошибках. Если этот протокол ис­пользовать только по назначению, то он очень удобен. Но в жизни все далеко от идеала, и ICMP уже не раз становился объектом для DoS-атак. Если обмен управ­ляющими сообщениями необходим в работе, нужно попробовать найти дру­гую программу, но избавится от использования ICMP.

3.3. Фильтрация портов

Первое, на что надо обратить внимание — это, конечно же, порты. Допус­тим, что есть Web-сервер, к которому имеют доступ все пользователи. Предположим, что на нем работают абсолютно безопасные сценарии, или статичные документы HTML. Помимо это­го, все программы содержат самые последние обновления и не имеют уязвимостей. Получается, что сервер безопасен! Но до поры до времени. Для обновления содержимого необходим какой-то доступ для закачки файлов, ведь бегать с дисками к Web-серверу никто не будет. Чаще всего для работы с файлами открывают FTP-сервис, а вот это уже дыра.

Для доступа по FTP можно установить наиболее защищенные программы и самые сложные пароли, но злоумышленник рано или поздно сумеет взломать этот сер­вис. Пароль можно подобрать, украсть с компьютера пользователя или заста­вить самого сказать через социальную инженерию, существуют и другие ме­тоды. Любой канал, через который можно проникнуть в систему, стано­вится уязвимым, потому что именно его будет взламывать злоумышленник, и как раз на это будут потрачены все усилия. У одного не получится, у вто­рого, а сотый случайно войдет с первого раза и уничтожит все, что попадется под руку.

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

Нужно запретить все порты и после этого открыть только то, что необ­ходимо. На сервере, который охраняет целую сеть, это сделать сложно, пото­му что разные компьютеры требуют различные сервисы. Открыть их все — значит разрешить работать со всеми портами на любой машине. Конечно же, можно помимо портов использовать в правилах IP-адреса, но дополнитель­ным вариантом защиты будет использование сетевого экрана на каждом ком­пьютере внутри сети. В этом случае каждый из них будет охраняться в зависимости от выполняемых задач. Если это Web-сервер, то из Интернета будет виден только 80 порт, для FTP — 21-й порт.

3.4. Фильтрация адресов

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