Физическое размещение параметров форвардинга в iptables
Модератор: Bizdelnick
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Физическое размещение параметров форвардинга в iptables
Товарищи, а кто знет, где ФИЗИЧЕСКИ (т.е. в каком файле) сохраняется информация, задаваемая стандартными командами 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)
Так где все это "есьм"?
Например, при настройке форвардинга используем
# 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
Нигде она не сохраняется. Вообще, ядро очень редко работает с физическими файлами на жестком диске, и для этого есть множество причин. Таблица правил хранится в структурах ядра, как например, таблица процессов или открытых файлов. Команда iptables позволяет смотреть на нее и изменять по надобности.
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
Эти структуры ядра как конкретный объект материального мира представлены в целостном виде (физически) только в оперативке?
Если да, то откуда система берет эту информацию при загрузке?
Вы уж простите за назойливость, но мне по "статусу положено"
(я интересующийся новичок)
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Физическое размещение параметров форвардинга в iptables
zubarev писал(а): ↑07.12.2007 22:10
Эти структуры ядра как конкретный объект материального мира представлены в целостном виде (физически) только в оперативке?
Если да, то откуда система берет эту информацию при загрузке?
Вы уж простите за назойливость, но мне по "статусу положено"
(я интересующийся новичок)
Ниоткуда. При перезагрузке таблицы фильтров чисты как поцелуй ребенка.
Если один их загрузочных скриптов не считает их с диска и не установит правила командой iptables.
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
Ну а когда в файлах
/etc/sysconfig/iptables-config
/etc/rc.d/init.d/iptables
значения параметров
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
меняюем на "yes", то они по логике должны сохраняться при перезагрузке / останове системы ?
Если да, то где ?
Если нет, то как тогда эти строки понимать?
/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
А Вы почитайте man ip-tables-save многое прояснится... 
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
Прочитал.
Привести его здесь или не надо?
Приведу все же. Очень хочется:
Это не я предложение сочинил.
Это сама система в консоли мне вернула:
Ничего про ip-tables-save в руководстве нет
Привести его здесь или не надо?
Приведу все же. Очень хочется:
Код: Выделить всё
[root]# man ip-tables-save
Ничего про ip-tables-save в руководстве нетЭто не я предложение сочинил.
Это сама система в консоли мне вернула:
Ничего про ip-tables-save в руководстве нет
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Физическое размещение параметров форвардинга в iptables
В смысле, сорри.
Нету там дефиса.
man iptables-save
man iptables-save
-
Corsair
- Сообщения: 842
- Статус: Местный "тролль"
- ОС: Fedora
Re: Физическое размещение параметров форвардинга в iptables
iptables-save
ЗЫ: чуток опоздал=)
ЗЫ: чуток опоздал=)
Жестокий стоячий админ (с) коллега
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
Фишка в том, что утилита сохранения называется iptables-save.
Там дефис есть.
Игра слов
Там дефис есть.
Игра слов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Физическое размещение параметров форвардинга в iptables
так Вы же сами и привели название скрипта, написанного дистрибутивостроителями (/etc/rc.d/init.d/iptables). вот и посмотрите в нем, куда дистрибутивостроители запридумали сохранять текущую конфигурацию netfilter-а.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
Так я и привел названия всех файлов (в том скрипте некоторые из них и прописаны). Там и подсмотрел.
Но в них явно не вся инфа, что в iptables.
Вообще, если я правильно понял то, что сказал Uncle_Theodore:
"...Ниоткуда [они не берутся]. При перезагрузке таблицы фильтров чисты как поцелуй ребенка. Если один их загрузочных скриптов не считает их с диска и не установит правила командой iptables..."
и в соотв. с тем, что я сегодня вычитал в манах, то правильный ответ на мой вопрос должен бвть таким:
Различные фрагменты кода, из которых состоят правила ип-таблиц физически разнесены по разным файлам, хранящимся на жестком диске.
Из этих файлов как бы "по кусочкам" они собираются в пространстве ядра в целостную работающую структуру.
Например, из /etc/services берутся номера портов, из /proc/sys/net/ipv4/ip_forward - состояние форвардинга - включен/выключен (как я понял, это просто файл-флаг, содержащий только 1 или 0) и т.п.
Поэтому посмотреть их в удобном для прочтения виде (целиком) мы можем только лишь с пом. спец. утилит типа iptables-save.
Но в них явно не вся инфа, что в iptables.
Вообще, если я правильно понял то, что сказал Uncle_Theodore:
"...Ниоткуда [они не берутся]. При перезагрузке таблицы фильтров чисты как поцелуй ребенка. Если один их загрузочных скриптов не считает их с диска и не установит правила командой iptables..."
и в соотв. с тем, что я сегодня вычитал в манах, то правильный ответ на мой вопрос должен бвть таким:
Различные фрагменты кода, из которых состоят правила ип-таблиц физически разнесены по разным файлам, хранящимся на жестком диске.
Из этих файлов как бы "по кусочкам" они собираются в пространстве ядра в целостную работающую структуру.
Например, из /etc/services берутся номера портов, из /proc/sys/net/ipv4/ip_forward - состояние форвардинга - включен/выключен (как я понял, это просто файл-флаг, содержащий только 1 или 0) и т.п.
Поэтому посмотреть их в удобном для прочтения виде (целиком) мы можем только лишь с пом. спец. утилит типа iptables-save.
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
И еще в тему - если можно, хотел бы еще кое-что уточнить у наших гуру.
Вот в этих (и им подобных) файлах:
/etc/sysconfig/iptables-config
/etc/rc.d/init.d/iptables
значения параметров
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
выставлены по умолчанию на "нет"
Если мы их меняем на "yes", то при перезагрузке сохраняется только то, что касается записей именно в этом/этих файле(-ах) и никак не влияет на аналогичные параметры в остальных подобных?
А после перезагрузки в сформированные в структурах ядра iptables попадет то, что прописано в этих файлах?
И соответственно, если флаги yes в указанных файлах сбросить, то значения их параметров (измененые в текущем сеансе) сохранены не будут, и после перезагрузки они будут содержать значения по умолчанию?
Так?
Вот в этих (и им подобных) файлах:
/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
если при перезапуске системы запускается iptables-save и сохраняется ее вывод, чтобы восстановить при загрузке, то сохранится текущее состояние правил iptables в таблицах ядра. т.е. сохранятся все работающие правила не зависимо от источника, ядро про источник не знает.
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Физическое размещение параметров форвардинга в iptables
В общем, наверное, с начала надо объяснить. Я после первого поста подумал, что вопрос состоит в том, держит ли работающее ядро таблицу фильтров в файле на жестком диске или нет. То есть, вот я ввел команду c iptables trali-vali с терминала -- изменилось ли что-то на жестком диске или нет? Ответ, конечно, отрицательный. Работающее ядро держит таблицы фильтров в памяти, а не на диске.
Единственным способом изменить таблицы фильтров является команда iptables. Поэтому загрузочные скрипты при старте системы могут заргузить правила из какого-нибудь файла, этой самой командой iptables. Из какого файла они эти правила возьмут, и какой скрипт этим занимается, -- зависит от дистра.
В любой момент таблицы фильтров можно скопировать с работающего ядра командой iptables-save. Она выводит правила в терминал, но можно перенаправить этот вывод в файл и воспользоваться потом этим файлом для установки правил при последующей загрузке. Опять-таки, какой скрипт это делает и где размещает записанные правила -- зависит от дистра.
Вот так примерно.
Единственным способом изменить таблицы фильтров является команда iptables. Поэтому загрузочные скрипты при старте системы могут заргузить правила из какого-нибудь файла, этой самой командой iptables. Из какого файла они эти правила возьмут, и какой скрипт этим занимается, -- зависит от дистра.
В любой момент таблицы фильтров можно скопировать с работающего ядра командой iptables-save. Она выводит правила в терминал, но можно перенаправить этот вывод в файл и воспользоваться потом этим файлом для установки правил при последующей загрузке. Опять-таки, какой скрипт это делает и где размещает записанные правила -- зависит от дистра.
Вот так примерно.
-
zubarev
- Сообщения: 119
- ОС: Fedora Core
Re: Физическое размещение параметров форвардинга в iptables
Спасибо.
Буду постепенно вгрызаться в iptables поглубже.
Кстати, пробовал сравнивать сохраненные с пом. iptables-save в разные моменты таблицы.
Получается довольно много различий, хотя вручную (с консоли) ничего и не правил.
Видимо, это связано с динамическими ай-пи на внешнем интерфейсе?
Если так, то прямолинейно скриптом загрузить СЕГОДНЯ iptables, которые работали ВЧЕРА может и не дать нужного результата?
Буду постепенно вгрызаться в iptables поглубже.
Кстати, пробовал сравнивать сохраненные с пом. iptables-save в разные моменты таблицы.
Получается довольно много различий, хотя вручную (с консоли) ничего и не правил.
Видимо, это связано с динамическими ай-пи на внешнем интерфейсе?
Если так, то прямолинейно скриптом загрузить СЕГОДНЯ iptables, которые работали ВЧЕРА может и не дать нужного результата?
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Физическое размещение параметров форвардинга в iptables
а чем отличается? сохраните несколько выводов iptables-save, посмотрите на diff между файлами .....