Физическое размещение параметров форвардинга в iptables

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

zubarev
Сообщения: 119
ОС: Fedora Core

Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Товарищи, а кто знет, где ФИЗИЧЕСКИ (т.е. в каком файле) сохраняется информация, задаваемая стандартными командами iptables?
Например, при настройке форвардинга используем
# iptables -A FORWARD -s xxx.xxx.xxx.xxx/xx -j ACCEPT

Используя iptables-save можно сохранить iptables в файл
iptables-save -c > /etc/iptables-save
и потом можно открыть этот файл в любом текстовом редакторе и проверить наличие строк, содеожащих введенные команды.
А где именно вся инфа из iptables хранится ДО указанной операции?

В документации вычитал, что например команда, задающая правила форвардинга выполняется уже не в "пространстве пользователя", а "в пространстве ядра". Звучит красиво, но вопрос не снимает..
Так или наче физически эта инфа ДОЛЖНА быть представлена в каком-то файле на диске.

У меня в системе (дистр Федора) есть несколько одноименых файлов
/etc/rc.d/init.d/iptables
/etc/init.d/iptables
/etc/sysconfig/iptables
/usr/share/logwatch/scripts/services/iptables
В них, как легко убедиться, сравнивая их с iptables-save интересующих меня строк нет.
(в данном конкретном примере - это строка iptables -A FORWARD -s xxx.xxx.xxx.xxx/xxx -j ACCEPT)

Так где все это "есьм"?
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Физическое размещение параметров форвардинга в iptables

Сообщение Uncle_Theodore »

Нигде она не сохраняется. Вообще, ядро очень редко работает с физическими файлами на жестком диске, и для этого есть множество причин. Таблица правил хранится в структурах ядра, как например, таблица процессов или открытых файлов. Команда iptables позволяет смотреть на нее и изменять по надобности.
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Uncle_Theodore писал(а):
07.12.2007 21:42
...Таблица правил хранится в структурах ядра...


Эти структуры ядра как конкретный объект материального мира представлены в целостном виде (физически) только в оперативке?
Если да, то откуда система берет эту информацию при загрузке?

Вы уж простите за назойливость, но мне по "статусу положено" :)
(я интересующийся новичок)
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Физическое размещение параметров форвардинга в iptables

Сообщение Uncle_Theodore »

zubarev писал(а):
07.12.2007 22:10
Uncle_Theodore писал(а):
07.12.2007 21:42
...Таблица правил хранится в структурах ядра...


Эти структуры ядра как конкретный объект материального мира представлены в целостном виде (физически) только в оперативке?
Если да, то откуда система берет эту информацию при загрузке?

Вы уж простите за назойливость, но мне по "статусу положено" :)
(я интересующийся новичок)

Ниоткуда. При перезагрузке таблицы фильтров чисты как поцелуй ребенка.
Если один их загрузочных скриптов не считает их с диска и не установит правила командой iptables.
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Ну а когда в файлах
/etc/sysconfig/iptables-config
/etc/rc.d/init.d/iptables
значения параметров
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
меняюем на "yes", то они по логике должны сохраняться при перезагрузке / останове системы ?

Если да, то где ?
Если нет, то как тогда эти строки понимать?
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Физическое размещение параметров форвардинга в iptables

Сообщение Uncle_Theodore »

А Вы почитайте man ip-tables-save многое прояснится... :)
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Прочитал.

Привести его здесь или не надо?

Приведу все же. Очень хочется:

Код: Выделить всё

[root]# man ip-tables-save
Ничего про ip-tables-save в руководстве нет


Это не я предложение сочинил.
Это сама система в консоли мне вернула:
Ничего про ip-tables-save в руководстве нет
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Физическое размещение параметров форвардинга в iptables

Сообщение Uncle_Theodore »

В смысле, сорри. :) Нету там дефиса.
man iptables-save
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Физическое размещение параметров форвардинга в iptables

Сообщение Corsair »

iptables-save

ЗЫ: чуток опоздал=)
Жестокий стоячий админ (с) коллега
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Фишка в том, что утилита сохранения называется iptables-save.
Там дефис есть.
Игра слов :)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Физическое размещение параметров форвардинга в iptables

Сообщение sash-kan »

zubarev писал(а):
07.12.2007 22:23
Если да, то где?
так Вы же сами и привели название скрипта, написанного дистрибутивостроителями (/etc/rc.d/init.d/iptables). вот и посмотрите в нем, куда дистрибутивостроители запридумали сохранять текущую конфигурацию netfilter-а.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Так я и привел названия всех файлов (в том скрипте некоторые из них и прописаны). Там и подсмотрел.

zubarev писал(а):
07.12.2007 20:50
У меня в системе есть несколько одноименых файлов
/etc/rc.d/init.d/iptables
/etc/init.d/iptables
/etc/sysconfig/iptables
/usr/share/logwatch/scripts/services/iptables


Но в них явно не вся инфа, что в iptables.
Вообще, если я правильно понял то, что сказал Uncle_Theodore:

"...Ниоткуда [они не берутся]. При перезагрузке таблицы фильтров чисты как поцелуй ребенка. Если один их загрузочных скриптов не считает их с диска и не установит правила командой iptables..."

и в соотв. с тем, что я сегодня вычитал в манах, то правильный ответ на мой вопрос должен бвть таким:

Различные фрагменты кода, из которых состоят правила ип-таблиц физически разнесены по разным файлам, хранящимся на жестком диске.
Из этих файлов как бы "по кусочкам" они собираются в пространстве ядра в целостную работающую структуру.
Например, из /etc/services берутся номера портов, из /proc/sys/net/ipv4/ip_forward - состояние форвардинга - включен/выключен (как я понял, это просто файл-флаг, содержащий только 1 или 0) и т.п.
Поэтому посмотреть их в удобном для прочтения виде (целиком) мы можем только лишь с пом. спец. утилит типа iptables-save.
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

И еще в тему - если можно, хотел бы еще кое-что уточнить у наших гуру.
Вот в этих (и им подобных) файлах:
/etc/sysconfig/iptables-config
/etc/rc.d/init.d/iptables
значения параметров

IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"

выставлены по умолчанию на "нет"
Если мы их меняем на "yes", то при перезагрузке сохраняется только то, что касается записей именно в этом/этих файле(-ах) и никак не влияет на аналогичные параметры в остальных подобных?
А после перезагрузки в сформированные в структурах ядра iptables попадет то, что прописано в этих файлах?
И соответственно, если флаги yes в указанных файлах сбросить, то значения их параметров (измененые в текущем сеансе) сохранены не будут, и после перезагрузки они будут содержать значения по умолчанию?
Так?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Физическое размещение параметров форвардинга в iptables

Сообщение diesel »

zubarev писал(а):
09.12.2007 01:08
Если мы их меняем на "yes", то при перезагрузке сохраняется только то, что касается записей именно в этом/этих файле(-ах) и никак не влияет на аналогичные параметры в остальных подобных?

если при перезапуске системы запускается iptables-save и сохраняется ее вывод, чтобы восстановить при загрузке, то сохранится текущее состояние правил iptables в таблицах ядра. т.е. сохранятся все работающие правила не зависимо от источника, ядро про источник не знает.
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Физическое размещение параметров форвардинга в iptables

Сообщение Uncle_Theodore »

В общем, наверное, с начала надо объяснить. Я после первого поста подумал, что вопрос состоит в том, держит ли работающее ядро таблицу фильтров в файле на жестком диске или нет. То есть, вот я ввел команду c iptables trali-vali с терминала -- изменилось ли что-то на жестком диске или нет? Ответ, конечно, отрицательный. Работающее ядро держит таблицы фильтров в памяти, а не на диске.
Единственным способом изменить таблицы фильтров является команда iptables. Поэтому загрузочные скрипты при старте системы могут заргузить правила из какого-нибудь файла, этой самой командой iptables. Из какого файла они эти правила возьмут, и какой скрипт этим занимается, -- зависит от дистра.
В любой момент таблицы фильтров можно скопировать с работающего ядра командой iptables-save. Она выводит правила в терминал, но можно перенаправить этот вывод в файл и воспользоваться потом этим файлом для установки правил при последующей загрузке. Опять-таки, какой скрипт это делает и где размещает записанные правила -- зависит от дистра.
Вот так примерно.
Спасибо сказали:
zubarev
Сообщения: 119
ОС: Fedora Core

Re: Физическое размещение параметров форвардинга в iptables

Сообщение zubarev »

Спасибо.
Буду постепенно вгрызаться в iptables поглубже.
Кстати, пробовал сравнивать сохраненные с пом. iptables-save в разные моменты таблицы.
Получается довольно много различий, хотя вручную (с консоли) ничего и не правил.
Видимо, это связано с динамическими ай-пи на внешнем интерфейсе?
Если так, то прямолинейно скриптом загрузить СЕГОДНЯ iptables, которые работали ВЧЕРА может и не дать нужного результата?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Физическое размещение параметров форвардинга в iptables

Сообщение diesel »

zubarev писал(а):
09.12.2007 18:25
Видимо, это связано с динамическими ай-пи на внешнем интерфейсе?
Если так, то прямолинейно скриптом загрузить СЕГОДНЯ iptables, которые работали ВЧЕРА может и не дать нужного результата?

а чем отличается? сохраните несколько выводов iptables-save, посмотрите на diff между файлами .....
Спасибо сказали: