несколько вопросов по iptables
Вопрос по пользовательским цепочкам
Создаём например свою цепочку "-N tcp_packets" вопрос в том куда она вклинится на пути прохождения ракетов? А то вроде в доке пример приводится а так не понятно - стандартных то 5 цепей и пакет по ним идёт в жёсткорегламентированной форме, а куда пользовательская цепрочка вставляется?
Заранее спасибо за твет.
|
must die |
23-01-2007 10:11 540060 |
Перечитайте еще раз внимательно iptables tutorial (раздел: прохождение таблиц и цепочек), там говорится несколько иное.
По умолчанию новая цепочка добавляется в таблицу filter.
|
Цитата:
Перечитайте еще раз внимательно iptables tutorial (раздел: прохождение таблиц и цепочек), там говорится несколько иное.
|
так вот читаю ( http://www.opennet.ru/docs/RUS/iptables/), открыт он у меня :) Несовсем понял про что там иное говорится?
Цитата:
По умолчанию новая цепочка добавляется в таблицу filter
|
Не совсем понял - судя по чтению вышеприведённой (самой распространённой) доки не таблицы состоят из цепочек, а в каждой из цепочек прохождения пакетов есть свои таблицы. Да и как она может добавиться в таблицу filter если их несколько? (в цепочках FORWARD и INPUT) Или я что-то недовкурил?
|
BuGfiX |
23-01-2007 11:08 540080 |
Управление на созданную вами цепочку передается с помощью ключа "-j", например:
Код:
iptables -A INPUT -p tcp -j tcp_packets
из любого "места" фаервола.
|
must die |
23-01-2007 11:15 540083 |
tolll
Глава 3. Порядок прохождения таблиц и цепочек
В этой главе мы рассмотрим порядок прохождения таблиц и цепочек в каждой таблице.
|
must die
Цитата:
3.1. Общие положения
Когда пакет приходит на наш брандмауэр, то он сперва попадает на сетевое устройство, перехватывается соответствующим драйвером и далее передается в ядро. Далее пакет проходит ряд таблиц и затем передается либо локальному приложению, либо переправляется на другую машину.
|
там же далее нписано: "Порядок следования пакета приводится ниже" и далее рассматривается прохождение пакета по таблицам в рамках той или иной цепочки. Т.е. в зависимости от того куда плывёт пакет (input, output, forwarding, pre\postrouting) он будет проходить соотв-й ряд таблиц, для каждой цепочки свой. Я правильно понимаю? (мне так сказать что бы полностью философию понять)
BuGfiX
Цитата:
из любого "места" фаервола
|
т.е. когда я создаю цепочку командой "-N" она пока никуда не попадает в обработку пакетов до тех пор пока я в той или иной таблице (опять же любой или предпоч. filter) явно не укажу что пакет надо передать на обработку в эту пользовательскую_цепочку командой "-j tcp_packets" скажем, так? А как тогда оформляется конец этой цепочки - т.е. каким способом файер поймёт что это была последняя команда (строка) в данной цепочки и вернётся назад в исходную? (в самом файле то команды идут непрерывно, вроде разделителей там нет)
|
это кстати ещё один вопрос у меня :) как iptables узнаёт по конфиг файлу где конец цепочки - там же записи могут идти непопорядку... Или она анализирует их и потом в памяти строит уже таблицы в соотв-и с этим файлом где конец цепочки это просто последнее правило которое iptables "нашла" в конфиг-файле для данной цепочки?
|
BuGfiX |
23-01-2007 11:49 540096 |
Цитата:
когда я создаю цепочку командой "-N" она пока никуда не попадает в обработку пакетов до тех пор пока я в той или иной таблице (опять же любой или предпоч. filter) явно не укажу что пакет надо передать на обработку в эту пользовательскую_цепочку командой "-j tcp_packets" скажем, так?
|
да, так.
Цитата:
каким способом файер поймёт что это была последняя команда
|
Про это написано в пукте 6.5
Цитата:
Если пакет достиг конца цепочки то он будет возвращен в вызывающую цепочку (в нашем случае это цепочка INPUT) и движение пакета продолжится с правила, следующего за правилом, вызвавшем переход. Если к пакету во вложенной цепочке будет применено действие ACCEPT, то автоматически пакет будет считаться принятым и в вызывающей цепочке и уже не будет продолжать движение по вызывающим цепочкам. Однако пакет пойдет по другим цепочкам в других таблицах.
|
Цитата:
Или она анализирует их и потом в памяти строит уже таблицы в соотв-и с этим файлом где конец цепочки это просто последнее правило которое iptables "нашла" в конфиг-файле?
|
Грубо говоря, так и есть.
|
BuGfiX
must die
Big Thx!!! :)
|
Вот ещё вопрос возник
где описано в каких файлах какие настройки хранятся по iptables? А то в how-to что то смутное
+ у еня допустим redhat (8-ка) - там при установке указ-ся уровень без-ти и соот-но в файле /etc/sysconfig/iptables появляются записи с непонятным синтаксисом типа rh-lokkit и т.д. Это что такое?
|
must die |
25-01-2007 22:34 541426 |
tolll
RH-lokkit - это цепочка iptables, она заполняется в соответствии с указанным при установке уровнем безопасности. Чем именно - ищите в документации к своему дистрибутиву.
В /etc/sysconfig/iptables сохраняются правила с помощью команды iptables-save (почитайте об этом в руководстве, там все понятно).
|
must die
Цитата:
В /etc/sysconfig/iptables сохраняются правила с помощью команды iptables-save (почитайте об этом в руководстве, там все понятно).
|
понял, а вот при загрузке (если по дефолту всё оставить) системы правила тже берутся именно из этого файла? Почему спрашиваю, т.к. в мануале скзано тоже что "сохраняются командой....", но при загрузке системы они откуда то берутся? из этого файла? (если другие в rc.local не указаны)
И ещё вопрос , что такое там означает например INPUT ACCEPT - [0:0] - в скобочках что такое?
|
must die |
26-01-2007 10:42 541589 |
tolll
Не знаю как там RH :-)
Но попробую предположить, что при изменении уровня безопасности, в этот файл вносятся изменения.
При старте системе правила загружаются из этого файла.
Зачем вам изучать синтаксис этого файла?
Просмотреть, текущую конфигурацию - iptables --list.
Внесли изменения, сохраните /etc/init.d/iptables save (ну или что-нибудь в этом духе).
|
must die
Цитата:
При старте системе правила загружаются из этого файла.
|
понятно, спасибо!
Цитата:
Зачем вам изучать синтаксис этого файла?
|
ну что бы понять как система в целом работает :)
|
Не подскажет ли кто ещё несколько моментов:
1. Есть набор допустимых ip адресов, который фигурирует в разных цепочках-таблицах. Нельзя ли его вогнать в сетс какой-н что бы потом просто по $var на него ссылаться?
2. Если вбить команду
iptables --list
в итоге таблицы выводятся нескоклько медленно что ли.... иногда вывод минут 5 может занимать в зависимости от навароченности таблицы. Так и должно быть?
Заранее спасибо!
|
BuGfiX |
05-03-2007 17:38 558201 |
1. Если правила iptables указаны в обычном sh-скрипте - то никто не мешает Вам использовать переменные, например:
Код:
#!/bin/sh
LOCALNET="192.168.1.0/24"
IPT="/usr/sbin/iptables"
$IPT -A FORWARD -p tcp -s $LOCALNET --dport 80 -j ACCEPT
2. Вместо
используйте
,
все будет выводиться гораздо быстрее ;-)
|
BuGfiX
Цитата:
Если правила iptables указаны в обычном sh-скрипте - то никто не мешает Вам использовать переменные, например
|
в случае когда диапазон ip адресов вся сеть понятно, а вот если есть группа ip-шников из абсолютно разных подсетей, можно ли их как в одну переменную вогнать?
|
BuGfiX |
12-03-2007 11:52 560545 |
Насколько я знаю, синтаксис iptables не позволяет задавать несколько source или destination адресов в одном правиле.
|
Время: 06:35.
© OSzone.net 2001-