Iptables: различия между версиями
(пометка к викификации) |
Pechenovv (обсуждение | вклад) |
||
(не показано 5 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
[[Категория:Admin]] | |||
{{викифицировать}} | {{викифицировать}} | ||
{{DISPLAYTITLE:iptables}} | |||
== Конфигурирование файрвола при помощи iptables == | == Конфигурирование файрвола при помощи iptables == | ||
Строка 6: | Строка 7: | ||
=== К вопросу об использовании rc.firewall vs «как обычно» === | === К вопросу об использовании rc.firewall vs «как обычно» === | ||
{{начало цитаты}}Файл /etc/rc.d/rc.firewall изначально отсутствует, но если его создать (руками или каким-то инструментом для автоматизированной настройки), он будет вызываться из /etc/rc.d/rc.sysinit. | |||
(руками или каким-то инструментом для автоматизированной настройки), он | {{конец цитаты|источник=Sergey Vlasov}} | ||
будет вызываться из /etc/rc.d/rc.sysinit. | |||
{{начало цитаты}}> А он нужен там? | |||
Конечно нужен. | Конечно нужен. | ||
Без него в правилах без поллитра уже через неделю не разберешься. | Без него в правилах без поллитра уже через неделю не разберешься. | ||
А насчет rc. | А насчет rc.firewall — надо просто создать такой файл и он при | ||
загрузке будет подхватываться. | загрузке будет подхватываться. | ||
{{конец цитаты|источник=Maxim Tyurin}} | |||
{{начало цитаты}}[…] в незамороченных случаях (обычно) проще применять /etc/sysconfig/iptables, service iptables, iptables-save и iptables-restore. | |||
service iptables, iptables-save и iptables-restore. | |||
Бишь создать чем угодно устраивающую конфигурацию в рантайме | Бишь создать чем угодно устраивающую конфигурацию в рантайме (то есть когда iptables в ядре настроены любой последовательностью вызовов /sbin/iptables, которая привела к удовлетворительному результату) и записать командой iptables-save. Она попадёт в первый из вышеупомянутых файлов и будет использоваться сервисом iptables при загрузке. | ||
( | |||
вызовов /sbin/iptables, которая привела к удовлетворительному | |||
результату) и записать командой iptables-save. | |||
первый из вышеупомянутых файлов и будет использоваться сервисом | |||
iptables при загрузке. | |||
[про rc.firewall] опять же куча всяких древних (и даже не очень, но | [про rc.firewall] опять же куча всяких древних (и даже не очень, но слаквареобразных) мануалов рекомендует туда пихать развесистые скрипты, в которых единственное осмысленное — это параметризация. Бывают менее тривиальные конфигурации, | ||
слаквареобразных) мануалов рекомендует туда пихать развесистые | правда, отнюдь не всегда они нужны. | ||
скрипты, в которых единственное | {{конец цитаты|источник=[http://freesource.info/wiki//MichaelShigorin MichaelShigorin]}} | ||
параметризация. | |||
правда, отнюдь не всегда они нужны. | |||
{{начало цитаты}}скрипт имеет преимущество, которого нет в sysconfig/iptables — переменные и комментарии. | |||
я пришел к такой схеме: | я пришел к такой схеме: | ||
* пишем скрипт (очистить_все; установить_нужное). | |||
* запускаем. | |||
* если понравилось — service iptables save. | |||
* скрипт остается лежать в /sbin. процедуру повторить. | |||
смысла в этом целых три: | смысла в этом целых три: | ||
* редактируя файрвол, проще работать с макросами : $lan_iface, $lan_ip, $outerface и т. д. если админов более одного и/или сложные правила, то опять же легче разбираться в скрипте с комментариями, чем в голых цепочках. | |||
* если вдруг что-то начудил до невозможности входа по ssh, можно пнуть ящик, после ребута будет рабочая конфигурация. иначе пришлось бы подключать монитор с клавой. | |||
{{конец цитаты|источник=Nick S. Grechukh}} | |||
Кстати, в [http://etcnet.org etcnet] начиная с 0.7.9 содержится некоторая поддержка конфигурирования <tt>iptables</tt> в стиле SysV, поинтерфейсно/таблично. | Кстати, в [http://etcnet.org etcnet] начиная с 0.7.9 содержится некоторая поддержка конфигурирования <tt>iptables</tt> в стиле SysV, поинтерфейсно/таблично. | ||
=== Сохранение конфигурации === | |||
Столкнувшись с тем, что написанные в данной статье инструкции по сохранению конфигурации неполные, либо не работают ([https://www.altlinux.org/Images.www.altlinux.org/a/a5/Iptables-save-pechenovv.png или лыжи не едут, или я дурак]), решил написать такую инструкцию сам, взяв за основу одну из приведенных здесь цитат. | |||
# пишем правила ручками, используя команду iptables | |||
# проверяем, что всё работает | |||
# если понравилось: | |||
<syntaxhighlight lang="bash"> | |||
iptables-save >> /etc/sysconfig/iptables | |||
service iptables enable | |||
</syntaxhighlight> | |||
<div style='padding:6px;border:1px solid blue;'>Интересно, что пока файл sysconfig/iptables пустой, сервис iptables будет стартовать с ошибкой</div> | |||
{{Note| | |||
Если что-то идёт не так, можно перезагрузиться и начать заново. Если напортачили в файле, ничего страшного, по умолчанию он пустой, его можно очистить и ничего не сломается. | |||
}} | |||
{{Note| | |||
Не стоит воспринимать данную инструкцию, как истину в последней инстанции, она может оказаться неэффективной или вообще нерабочей. Я лишь пишу о том, как сделал я, потому что у меня это сработало, а то что я нашел на просторах интернета не сработало | |||
}} | |||
=== Ссылки === | === Ссылки === | ||
Строка 56: | Строка 60: | ||
* [http://linux.kiev.ua/~mike/docs/iptables-sample4router http://linux.kiev.ua/~mike/docs/iptables-sample4router] (дублирую [[iptables/sample4router|здесь]]) | * [http://linux.kiev.ua/~mike/docs/iptables-sample4router http://linux.kiev.ua/~mike/docs/iptables-sample4router] (дублирую [[iptables/sample4router|здесь]]) | ||
* [http://radlinux.org http://radlinux.org] -- router appliance distribution | * [http://radlinux.org http://radlinux.org] -- router appliance distribution | ||
[[Категория:Admin]] | |||
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 22:40, 5 сентября 2023
Конфигурирование файрвола при помощи iptables
К вопросу об использовании rc.firewall vs «как обычно»
Файл /etc/rc.d/rc.firewall изначально отсутствует, но если его создать (руками или каким-то инструментом для автоматизированной настройки), он будет вызываться из /etc/rc.d/rc.sysinit.
— Sergey Vlasov
> А он нужен там?Конечно нужен. Без него в правилах без поллитра уже через неделю не разберешься. А насчет rc.firewall — надо просто создать такой файл и он при загрузке будет подхватываться.
— Maxim Tyurin
[…] в незамороченных случаях (обычно) проще применять /etc/sysconfig/iptables, service iptables, iptables-save и iptables-restore.Бишь создать чем угодно устраивающую конфигурацию в рантайме (то есть когда iptables в ядре настроены любой последовательностью вызовов /sbin/iptables, которая привела к удовлетворительному результату) и записать командой iptables-save. Она попадёт в первый из вышеупомянутых файлов и будет использоваться сервисом iptables при загрузке.
[про rc.firewall] опять же куча всяких древних (и даже не очень, но слаквареобразных) мануалов рекомендует туда пихать развесистые скрипты, в которых единственное осмысленное — это параметризация. Бывают менее тривиальные конфигурации, правда, отнюдь не всегда они нужны.
скрипт имеет преимущество, которого нет в sysconfig/iptables — переменные и комментарии.я пришел к такой схеме:
- пишем скрипт (очистить_все; установить_нужное).
- запускаем.
- если понравилось — service iptables save.
- скрипт остается лежать в /sbin. процедуру повторить.
смысла в этом целых три:
- редактируя файрвол, проще работать с макросами : $lan_iface, $lan_ip, $outerface и т. д. если админов более одного и/или сложные правила, то опять же легче разбираться в скрипте с комментариями, чем в голых цепочках.
- если вдруг что-то начудил до невозможности входа по ssh, можно пнуть ящик, после ребута будет рабочая конфигурация. иначе пришлось бы подключать монитор с клавой.
— Nick S. Grechukh
Кстати, в etcnet начиная с 0.7.9 содержится некоторая поддержка конфигурирования iptables в стиле SysV, поинтерфейсно/таблично.
Сохранение конфигурации
Столкнувшись с тем, что написанные в данной статье инструкции по сохранению конфигурации неполные, либо не работают (или лыжи не едут, или я дурак), решил написать такую инструкцию сам, взяв за основу одну из приведенных здесь цитат.
- пишем правила ручками, используя команду iptables
- проверяем, что всё работает
- если понравилось:
iptables-save >> /etc/sysconfig/iptables
service iptables enable
Если что-то идёт не так, можно перезагрузиться и начать заново. Если напортачили в файле, ничего страшного, по умолчанию он пустой, его можно очистить и ничего не сломается.
Не стоит воспринимать данную инструкцию, как истину в последней инстанции, она может оказаться неэффективной или вообще нерабочей. Я лишь пишу о том, как сделал я, потому что у меня это сработало, а то что я нашел на просторах интернета не сработало
Ссылки
- http://gazette.lrn.ru/rus/articles/index-iptables-tutorial.html
- http://linux.kiev.ua/~mike/docs/iptables-sample4router (дублирую здесь)
- http://radlinux.org -- router appliance distribution