Next Previous Contents

## 3. Что такое - фильтр пакетов?

Фильтр пакетов это программа которая просматривает заголовки пакетов по мере их прохождения, и решает дальнейшую судьбу всего пакета. Фильтр может сбросить DROP пакет (т.е. как будто пакет и не приходил вовсе), принять ACCEPT пакет (т.е. пакет может пройти дальше), или сделать с ним что-то еще более сложное.

Под Linux, фильтр пакетов встроен в ядро (как модуль, или как неотъемлемая часть ядра), и мы можем делать с пакетами несколько хитроумных вещей, но основной принцип в просмотре заголовков пакетов и решении их дальнейшей судьбы сохраняется.

## 3.1 Почему я должен использовать фильтр пакетов?

Управление. Безопасность. Бдительность.

Управление:

  когда вы используете linux для соединения вашей внутренней сети с другой сетью (скажем, с Интернетом) вы имеете возможность разрешать и запрещать отдельные типы траффика. Например, заголовок пакета содержит адрес назначения пакета, так что вы можете запретить пакеты идущие в определенные участки другой сети. Другой пример, я использую Netscape для доступа к архивам Дилберта. Netscape постоянно загружает рекламу doubleclick.net баннеры которой находятся на страницах этих архивов, что отнимает мое время. Запрет через фильтр пакетов на прохождение всех пакетов к doubleclick.net или обратно, решает эту проблему (хотя есть другие более лучшие пути решения этой проблемы: ищи Junkbuster)

Безопасность:

  когда ваша linux машина, единственная преграда, между хаосом Интернета и вашей классной и правильной сетью, было бы хорошо знать что вы можете запретить то что ломиться к вам. Например, вы можете разрешить все что идет из вашей сети, и позаботиться о всем известном 'Ping of Death' приходящего от злобных внешних пользователей. Другой пример, вы не хотите чтобы внешние пользователи соединялись с вашей машиной по telnet протоколу, даже несмотря на то что все аккаунты защищены паролями. Может быть вы хотите (как большинство людей) быть наблюдателем в Интернете, а не сервером(желая того или нет). Просто не позвольте никому соединяться с вашим компьютером, запретив в фильтре пакетов все входящие пакеты используемые при установке соединения.

Бдительность:

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

## 3.2 Как я могу сделать фильтрование пакетов в Linux?

Ядра Linux имеют способность отфильтровывать пакеты еще с 1.1 серий. Первое поколение фильтров, основанное на ipfw от BSD, было спортированно Alan Cox в конце 1994г. Оно было улучшено Jos Vos и другими в Linux 2.0; пользовательская утилита "ipfwadm" контролировала правила фильтра в ядре. В середине 1998, для Linux 2.2, я с помощью Michael Neuling, переработал ядро достаточно основательно, и представил новую утилиту для управления фильтром - "ipchains". Наконец, в середине 1999, код ядра был снова полностью преписан для 2.4 версии, появилась утилита четвертого поколения "iptables". Это именна та утилита, которая послужила поводом для написания этого HOWTO.

Вам необходимо ядро, которое имеет netfilter-инфраструктуру: netfilter - это основа внутри Linux ядра, в которую могут встраиваться другие компоненты (такие как модуль iptables). Это означает что вам необходимо ядро 2.3.15 или выше, и вам необходимо ответить 'Y' на опцию CONFIG_NETFILTER при конфигурировании ядра.

Утилита `iptables` взаимодействует с ядром и указывает ему какие пакеты фильтровать. Несмотря на то что вы программист или просто любопытный, но именно с помощью этой программы вы будете управлять фильтром пакетов.

### iptables

Утилита `iptables` вставляет и удаляет правила из таблицы фильтра пакетов ядра. Это означает, что, чтобы вы не устанавливали или настраивали это будет потеряно при перезагрузке; смотри Делаем правила постоянными для того чтобы гарантировать что правила восстановятся после перезагрузки машины.

`iptables` это заменя для `ipfwadm` и `ipchains`: смотри Применение ipchains и ipfwadm для того чтобы избежать использования iptables если вы используете одно из вышеуказанных.

### Делаем правила постоянными

Ваша текущая настройка firewall храниться в ядре, и соответственна будет потеряна при перезагрузке системы. Написание iptables-save и iptables-restore уже естьв моем TODO списке. Когда они будут созданы, они будут отличными инструментами - обещаю (на момент перевода эти утилиты уже созданы прим. перевод.).

Пока, вставляйте необходимые команды нужные для настройки вашего firewall в инициализирующий скрипт. Убедитесь, что вы создали нечно продвинутое.. такое - чтобы реагировало на ошибки при исполнении этого скрипта (обычно `exec /sbin/sulogin').

Next Previous Contents