Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.

Продает интернет магазин мотоэкипировки товар для занятий профессиональным спортом.


Книги по Linux (с отзывами читателей)

Библиотека сайта или "Мой Linux Documentation Project"

Next Previous Contents

6. Как пакеты проходят фильтры

Ядро запускается с тремя списками правил в таблице фильтра пакетов; эти списки называются firewall chains или просто chains (цепочки). Три цепочки называются так: INPUT, OUTPUT и FORWARD.

Это сильно отличается от того как работали ядра серий 2.0 и 2.2

Для фанатов ASCII-графики, цепочки устроены примерно так:

                          _____
Входящий                 /     \         Исходящий
       -->[Routing ]--->|FORWARD|------->
          [Decision]     \_____/        ^
               |                        |
               v                      ____
              ___                    /    \
             /   \                  |OUTPUT|
            |INPUT|                  \____/
             \___/                      ^
               |                        |
                --> локальные процессы -

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

Цепочка - это набор определенных правил. Каждое правило говорит "если заголовок пакета выглядит так, значит надо делать с пакетом то-то". Если правило не совпадает с пакетом, пакет переходит к следующему правилу в данной цепочке. Наконец, если в цепочке не осталось больше правил совсем, ядро проверяет установленный policy (правило действующее по умолчанию для всей цепочки) для данной цепочки, чтобы решить что делать с пакетом дальше. В защищенных системах, policy обычно говорит ядру - разрушить пакет (DROP).

  1. Когда пакет приходит (скажем, через Ethernet карту) ядро сперва просматривает адрес назначения пакета: это называется "маршрутизацией".
  2. Если пакет предназначен для этой машины, пакет проходит через диаграмму в цепочку INPUT. Если это так то любой процесс ожидающий данный пакет получит его.
  3. Иначе, если в ядре отключена возможность маршрутизации, или если ядро не знает как этот пакет маршрутизировать, пакет разрушается. Если маршрутизация разрешена, и пакет предназначен для другого сетевого интерфейса (если вы имеете его), пакет идет по нашей диаграмме прямо в цепочку FORWARD. если он разрешен (ACCEPT), он будет маршрутизирован.
  4. Наконец, программа работающая на самой машине может посылать пакеты. Такие пакеты будут проходить через цепочку OUTPUT: если цепочка разрешает (ACCEPT) их, значит пакет продолжает свой путь на интерфейс для которого он предназначен.


Next Previous Contents


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют