Показать полную графическую версию : несколько вопросов по iptables
Вопрос по пользовательским цепочкам
Создаём например свою цепочку "-N tcp_packets" вопрос в том куда она вклинится на пути прохождения ракетов? А то вроде в доке пример приводится а так не понятно - стандартных то 5 цепей и пакет по ним идёт в жёсткорегламентированной форме, а куда пользовательская цепрочка вставляется?
Заранее спасибо за твет.
must die
23-01-2007, 10:11
Перечитайте еще раз внимательно iptables tutorial (раздел: прохождение таблиц и цепочек), там говорится несколько иное.
По умолчанию новая цепочка добавляется в таблицу filter.
Перечитайте еще раз внимательно iptables tutorial (раздел: прохождение таблиц и цепочек), там говорится несколько иное.так вот читаю (http://www.opennet.ru/docs/RUS/iptables/), открыт он у меня :) Несовсем понял про что там иное говорится?По умолчанию новая цепочка добавляется в таблицу filterНе совсем понял - судя по чтению вышеприведённой (самой распространённой) доки не таблицы состоят из цепочек, а в каждой из цепочек прохождения пакетов есть свои таблицы. Да и как она может добавиться в таблицу filter если их несколько? (в цепочках FORWARD и INPUT) Или я что-то недовкурил?
Управление на созданную вами цепочку передается с помощью ключа "-j", например:
iptables -A INPUT -p tcp -j tcp_packets из любого "места" фаервола.
must die
23-01-2007, 11:15
tolll
Глава 3. Порядок прохождения таблиц и цепочек
В этой главе мы рассмотрим порядок прохождения таблиц и цепочек в каждой таблице.
must die3.1. Общие положения
Когда пакет приходит на наш брандмауэр, то он сперва попадает на сетевое устройство, перехватывается соответствующим драйвером и далее передается в ядро. Далее пакет проходит ряд таблиц и затем передается либо локальному приложению, либо переправляется на другую машину.там же далее нписано: "Порядок следования пакета приводится ниже" и далее рассматривается прохождение пакета по таблицам в рамках той или иной цепочки. Т.е. в зависимости от того куда плывёт пакет (input, output, forwarding, pre\postrouting) он будет проходить соотв-й ряд таблиц, для каждой цепочки свой. Я правильно понимаю? (мне так сказать что бы полностью философию понять)
BuGfiXиз любого "места" фаерволат.е. когда я создаю цепочку командой "-N" она пока никуда не попадает в обработку пакетов до тех пор пока я в той или иной таблице (опять же любой или предпоч. filter) явно не укажу что пакет надо передать на обработку в эту пользовательскую_цепочку командой "-j tcp_packets" скажем, так? А как тогда оформляется конец этой цепочки - т.е. каким способом файер поймёт что это была последняя команда (строка) в данной цепочки и вернётся назад в исходную? (в самом файле то команды идут непрерывно, вроде разделителей там нет)
это кстати ещё один вопрос у меня :) как iptables узнаёт по конфиг файлу где конец цепочки - там же записи могут идти непопорядку... Или она анализирует их и потом в памяти строит уже таблицы в соотв-и с этим файлом где конец цепочки это просто последнее правило которое iptables "нашла" в конфиг-файле для данной цепочки?
когда я создаю цепочку командой "-N" она пока никуда не попадает в обработку пакетов до тех пор пока я в той или иной таблице (опять же любой или предпоч. filter) явно не укажу что пакет надо передать на обработку в эту пользовательскую_цепочку командой "-j tcp_packets" скажем, так?
да, так.
каким способом файер поймёт что это была последняя команда
Про это написано в пукте 6.5 (http://www.opennet.ru/docs/RUS/iptables/#TARGETS)
Если пакет достиг конца цепочки то он будет возвращен в вызывающую цепочку (в нашем случае это цепочка 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
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
tolll
Не знаю как там RH :-)
Но попробую предположить, что при изменении уровня безопасности, в этот файл вносятся изменения.
При старте системе правила загружаются из этого файла.
Зачем вам изучать синтаксис этого файла?
Просмотреть, текущую конфигурацию - iptables --list.
Внесли изменения, сохраните /etc/init.d/iptables save (ну или что-нибудь в этом духе).
must dieПри старте системе правила загружаются из этого файла.понятно, спасибо!Зачем вам изучать синтаксис этого файла?ну что бы понять как система в целом работает :)
Не подскажет ли кто ещё несколько моментов:
1. Есть набор допустимых ip адресов, который фигурирует в разных цепочках-таблицах. Нельзя ли его вогнать в сетс какой-н что бы потом просто по $var на него ссылаться?
2. Если вбить команду
iptables --list
в итоге таблицы выводятся нескоклько медленно что ли.... иногда вывод минут 5 может занимать в зависимости от навароченности таблицы. Так и должно быть?
Заранее спасибо!
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. Вместо
iptables --list
используйте
iptables --list -n ,
все будет выводиться гораздо быстрее ;-)
BuGfiXЕсли правила iptables указаны в обычном sh-скрипте - то никто не мешает Вам использовать переменные, напримерв случае когда диапазон ip адресов вся сеть понятно, а вот если есть группа ip-шников из абсолютно разных подсетей, можно ли их как в одну переменную вогнать?
Насколько я знаю, синтаксис iptables не позволяет задавать несколько source или destination адресов в одном правиле.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.