Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Netfilter - Архитектура11 мая 2011Оглавление: 1. Netfilter 2. Архитектура В системе netfilter, пакеты пропускаются через цепочки. Цепочка является упорядоченным списком правил, а каждое правило может содержать критерии и действие или переход. Когда пакет проходит через цепочку, система netfilter по очереди проверяет, соответствует ли пакет всем критериям очередного правила, и если так, то выполняет действие. Вариантов возможных критериев очень много. Например, пакет соответствует критерию --source 192.168.1.1 если в заголовке пакета указано, что отправитель — 192.168.1.1. Самый простой тип перехода, iptables -A INPUT --source 192.168.1.1 --jump ACCEPT iptables -A INPUT --jump other_chain означают «добавить к концу цепочки INPUT следующие правила: пропустить пакеты из 192.168.1.1, а всё, что останется — отправить на анализ в цепочку other_chain». Существует пять типов стандартных цепочек, встроенных в систему:
Также можно создавать и уничтожать собственные цепочки при помощи утилиты iptables. Цепочки организованны в 4 таблицы:
Цепочки с одинаковым названием но в разных таблицах — совершенно независимые объекты. Например, raw PREROUTING и mangle PREROUTING обычно содержат разный набор правил; пакеты сначала проходят через цепочку raw PREROUTING, а потом через mangle PREROUTING. Механизм определения состоянийМеханизм определения состояний — система трассировки соединений, важная часть netfilter, при помощи которой реализуется межсетевой экран на сеансовом уровне. Система позволяет определить, к какому соединению или сеансу принадлежит пакет. Механизм определения состояний анализирует все пакеты кроме тех, которые были помечены NOTRACK в таблице raw. В системе netfilter, каждый пакет проходящий через механизм определения состояний, может иметь одно из четырёх возможных состояний:
Эта классификация пакетов во многих случаях отличается от официального описания сетевых протоколов. Например, согласно netfilter, TCP пакет ACK отвечающий на SYN — часть существующего сеанса, а по определению TCP такой пакет — всего лишь элемент открытия сеанса. Определить сеансы некоторых протоколов очень просто; например, признак сеанса UDP — клиент с порта X посылает серверу на порт Y пакеты не реже чем раз в 30 секунд. У других протоколов сеанс определить сложнее, и netfilter должен анализировать содержимое пакетов чтобы правильно определить их состояние. Просмотреть атрибуты активных подключений можно в псевдо‐файле /proc/net/nf_conntrack. Для каждого подключения указывается информация следующего вида: tcp 6 117 SYN_SENT src=192.168.1.6 dst=192.168.1.9 sport=32775 dport=22 src=192.168.1.9 dst=192.168.1.6 sport=22 dport=32775 use=2 Утилита conntrack позволяет управлять механизмом определения состояний. Просмотров: 1846
|