Рассмотрим, как вообще обрабатываются пакеты IP любой машиной, которая может заниматься их маршрутизацией:
(1) IP-пакет откуда-то пришел.
Входящий пакет будет исследован, чтобы определить предназначен ли он для процесса на этой машине.
(2) Если он для этой машины, то обработан в местном масштабе.
(3) Если пакет не предназначен для этой машины, будет выполнен поиск по таблице маршрутизации для соответствующего маршрута, и пакет будет послан к соответствующему интерфейсу или пропущен, если маршрут не может быть найден.
(4) Пакеты из локальных процессов будут посланы программному обеспечению маршрутизации для пересылки к соответствующему интерфейсу.
Исходящий IP-пакет будет исследован, чтобы определить, есть ли имеющий силу маршрут для него, если нет, он будет пропущен.
(5) IP-пакет куда-то отправится.
В этой схеме поток 1-3-5 представляет нашу машину, направляющую данные между компьютером в нашей сети Ethernet на другой доступный компьютер через какую-то связь (в дальнейших примерах это будет PPP). Потоки 1-2 и 4-5 представляют ввод данных и выходные потоки сетевой программы, работающей на нашем локальном компьютере. Поток 4-3-2 представляет передачу данных по кольцевому внутреннему интерфейсу (loopback connection).
IP firewall ядра Linux способен к применению фильтрации на различных стадиях в этом процессе. То есть, Вы можете фильтровать IP-пакеты, которые приходят Вашей машине, те, которые ходят внутри нее и те, которые предназначены для отправки во внешний мир.
В ipfwadm и ipchains правило Input применяется к потоку 1, правило Forwarding к потоку 3 и правило Output к потоку 5. Позже, при обсуждении netfilter, мы увидим, какие точки перехвата изменились так, чтобы правило Input применилось в потоке 2 и правило Output в потоке 4. Это имеет важное значение для того, как Вы структурируете свой набор правил, но общий принцип остается верным для всех версий Linux firewall.
Это может сначала казаться излишне сложным, но это обеспечивает гибкость, которая позволяет создать очень сложные и мощные конфигурации.
Назад | Глобальное оглавление | Вперед |
Установка Firewall в Linux | Локальное оглавление | IP Firewall (ядра 2.0) |