Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #58, СЕНТЯБРЬ 2005 г.

Как работает брандмауэр

nezumi

Спецвыпуск: Хакер, номер #058, стр. 058-066-1


Пакетные фильтры и прокси

Прежде чем воевать с брандмауэром (он же firewall), стоит разобраться, что это такое и зачем оно нужно. Практически все локальные брандмауэры представляют собой тривиальные пакетные фильтры, сидящие на интерфейсе и пропускающие сетевой трафик через себя. Методы фильтрации самые разнообразные, но далеко не безупречные.

Первые локальные сети подключались к интернету кишками наружу, то есть напрямую. Все узлы получали действительные IP-адреса, видимые отовсюду. И если в локалке имелся SQL/WEB/FTP-сервер или "расшаренные" ресурсы, к ним мог подключаться кто угодно. Пароли на доступ, как водится, отсутствовали или выбирались довольно предсказуемым образом, что делало атаку тривиальной. Вот тогда-то брандмауэры и появились.

Брандмауэр стоит между интернетом и локальной сетью, внутрь которой никого не пускает, то есть подключиться к расшаренным ресурсам или корпоративному серверу снаружи уже не получится. Если же сервер должен быть виден извне локальной сети, он располагается в так называемой демилитаризованной зоне, или, сокращенно, DMZ, причем доступ из DMZ в локальную сеть обычно закрыт. Даже если хакер поразит DMZ-сервер, он все равно не сможет проникнуть в остальные компьютеры. Еще брандмауэр может ограничить выход в интернет, например запретить сотрудникам компании заходить на сервера типа www.porno.com или заблокировать некоторые порты, скажем на 4662 - стандартный порт Осла.

Какие брандмауэры бывают

Все брандмауэры делятся на два типа: пакетные фильтры и фильтры уровня приложений (они же proxy). Пакетный фильтр - это обычный роутер (он же маршрутизатор), маршрутизирующий или не маршрутизирующий TCP/IP-пакеты согласно установленной системе правил. Поэтому, если в локальной сети уже присутствует роутер (а без него никак), приобретать дополнительный пакетный фильтр не нужно.

Фильтры уровня приложений - это обычные proxy. На компьютер, "смотрящий" в интернет, устанавливается proxy-сервер (например любимый Etlin HTTP-Proxy), и все остальные компьютеры работают уже через него. В отличие от варианта с маршрутизатором, компьютеры, огражденные proxy-сервером, уже не получают реальных IP, и внешний наблюдатель видит лишь один узел - proxy. Это усиливает защищенность сети и избавляет от обязанности ломать голову над конфигурацией пакетного фильтра. Просто установил proxy - и все, но... Далеко не все приложения поддерживают работу через proxy. Например, Осел поддерживает, а Shareza - нет. К тому же "запроксированные" компьютеры не могут принимать входящих подключений.

Частично эта проблема снимается трансляторами сетевых адресов (Network Address Translation, или NAT сокращенно), ретранслирующих поступающие пакеты на заданный порт такой-то машины, но тут не все просто. Вот например тот же Осел. Через Proxy он работает в ущербном режиме, и многие серверы вообще не пускают его или пускают, но с низким ID. Если же поставить NAT и ретранслировать пакеты через Proxy, то все будет работать, но только на одном узле. Одновременный запуск Осла на двух или более машинах окажется невозможным, так как извне все локальные машины имеют один и тот же IP-адрес!

Содержание  Вперед на стр. 058-066-2