NIX-ПРЕДОХРАНИЛОВО

вся правда об ipchains

Спецвыпуск Xakep, номер #024, стр. 024-022-1


Tony (tony@nifti.unn.ru), ICQ: 165066287

Что, дружище, пропало желание? Заплати налоги и живи спокойно. К несчастью, если тебя задолбали стада отморозков, в изобилии пасущихся на просторах Интернета и желающих поиметь тебя и твой Инет, то этот трюк с налогами не пройдет, и тебе пора ставить и конфигурировать firewall. Для любителей покувыркаться с фонетикой есть другое название - брандмауэр, а твой преподаватель информатики называет его межсетевым экраном.

ЧТО ТАКОЕ FIREWALL?

В общем смысле - это софтина или железяка, которая фильтрует проходящие через нее ip-пакеты, используя при этом набор правил, составленных разработчиками и дополненных тобою. Фильтрация пакетов заключается в том, что файрволл смотрит в заголовок пакета (между прочим, он еще может анализировать содержимое пакета, т.е., собственно говоря, саму передаваемую информацию), сопоставляет его с заданными правилами и разрешает или запрещает прохождение пакета внутрь сети, во внешний мир или к локальным процессам. Не упущу очередной повод пнуть Билла в причинное место - в Linux'e механизм файрволла встроен в ядро и является неотъемлемой частью операционки, в отличие от виндузы, где за хороший межсетовой экран приходится платить нехилое количество америкосских президентов (ну... в Буржундии так считают :)). Управление этим механизмом осуществляется при помощи специализированного софта. В ядрах, начиная с 2.1.х, используется утилита ipchains, начиная с ядер 2.4.х, появилась новая прога - iptables, функционирующая на тех же принципах. Кроме фильтрации пакетов ipchains позволяет также конфигурировать несколько полезных вещей: маскарадинг (подмена параметров в заголовках ip-пакетов) и прозрачное проксирование (переадресация ip-пакетов на другой порт).

КАК ЗАПУСТИТЬ ЕГО?

Очень просто, достаточно записать символ «1» в файл «/proc/sys/net/ipv4/ip_forward»; соответственно, для того чтобы остановить, необходимо записать туда же символ «0»: «echo 1 > /proc/sys/net/ipv4/ip_forward». Имеет смысл записать эту команду в один из стартовых скриптов. Что-то не работает? Проверить это просто - если есть файл "/proc/net/ip_fwchains" то все чики-пуки. Если нет, то необходимо сконфигурировать ядро для работы с фаерволлом, а дальше действовать по инструкции номер 609258/инд. 8965 МО РФ для компиляции и установки ядра :)). Опции ядра, которые необходимо сконфигурировать, следующие: "CONFIG_FIREWALL = y", "CONFIG_IP_FIREWALL = y", "CONFIG_IP_FIREWALL_NETLINK = y" (направляет копии пакетов программам мониторинга), "CONFIG_IP_MASQUERADE = y" (включает маскарадинг), "CONFIG_IP_TRANSPARET_PROXY = y" (включает прозрачный прокси).

КАК РАБОТАЕТ FIREWALL?

По умолчанию имеются три встроенные цепочки (chains) правил (rules): входная (input), выходная (output) и пересылочная (forward). Можно дополнять их своими цепочками. Каждая цепочка состоит из правил. Каждое правило содержит условие и действие, которое необходимо произвести с пакетом, если он удовлетворяет условию. Если пакет не соответствует условию, то проверяется следующее правило цепочки. Если все условия исчерпаны, задействуется политика (policy) цепочки.

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