Iptables: различия между версиями

Материал из ALT Linux Wiki
(пометка к викификации)
 
(не показано 5 промежуточных версий 5 участников)
Строка 1: Строка 1:
{{MovedFromFreesourceInfo|AltLinux/iptables}}
[[Категория:Admin]]
{{викифицировать}}
{{викифицировать}}
{{DISPLAYTITLE:iptables}}


== Конфигурирование файрвола при помощи iptables ==
== Конфигурирование файрвола при помощи iptables ==
Строка 6: Строка 7:
=== К вопросу об использовании rc.firewall vs «как обычно» ===
=== К вопросу об использовании rc.firewall vs «как обычно» ===


<pre>Файл /etc/rc.d/rc.firewall изначально отсутствует, но если его создать
{{начало цитаты}}Файл /etc/rc.d/rc.firewall изначально отсутствует, но если его создать (руками или каким-то инструментом для автоматизированной настройки), он будет вызываться из /etc/rc.d/rc.sysinit.
(руками или каким-то инструментом для автоматизированной настройки), он
{{конец цитаты|источник=Sergey Vlasov}}
будет вызываться из /etc/rc.d/rc.sysinit.</pre>
''Sergey Vlasov''


<pre>> А он нужен там?
{{начало цитаты}}> А он нужен там?
Конечно нужен.
Конечно нужен.
Без него в правилах без поллитра уже через неделю не разберешься.
Без него в правилах без поллитра уже через неделю не разберешься.
А насчет rc.firewall - надо просто создать такой файл и он при
А насчет rc.firewall — надо просто создать такой файл и он при
загрузке будет подхватываться.</pre>
загрузке будет подхватываться.
''Maxim Tyurin''
{{конец цитаты|источник=Maxim Tyurin}}


<pre>[...] в незамороченных случаях (обычно) проще применять /etc/sysconfig/iptables,  
{{начало цитаты}}[] в незамороченных случаях (обычно) проще применять /etc/sysconfig/iptables, service iptables, iptables-save и iptables-restore.
service iptables, iptables-save и iptables-restore.


Бишь создать чем угодно устраивающую конфигурацию в рантайме
Бишь создать чем угодно устраивающую конфигурацию в рантайме (то есть когда iptables в ядре настроены любой последовательностью вызовов /sbin/iptables, которая привела к удовлетворительному результату) и записать командой iptables-save. Она попадёт в первый из вышеупомянутых файлов и будет использоваться сервисом iptables при загрузке.
(т.е. когда iptables в ядре настроены любой последовательностью
вызовов /sbin/iptables, которая привела к удовлетворительному
результату) и записать командой iptables-save. Она попадёт в
первый из вышеупомянутых файлов и будет использоваться сервисом
iptables при загрузке.


[про rc.firewall] опять же куча всяких древних (и даже не очень, но
[про rc.firewall] опять же куча всяких древних (и даже не очень, но слаквареобразных) мануалов рекомендует туда пихать развесистые скрипты, в которых единственное осмысленное — это параметризация. Бывают менее тривиальные конфигурации,
слаквареобразных) мануалов рекомендует туда пихать развесистые
правда, отнюдь не всегда они нужны.
скрипты, в которых единственное осмысленное -- это
{{конец цитаты|источник=[http://freesource.info/wiki//MichaelShigorin MichaelShigorin]}}
параметризация. Бывают менее тривиальные конфигурации,
правда, отнюдь не всегда они нужны.</pre>
''[http://freesource.info/wiki//MichaelShigorin MichaelShigorin]''


<pre>скрипт имеет преимущество, которого нет в sysconfig/iptables - переменные и комментарии.  
{{начало цитаты}}скрипт имеет преимущество, которого нет в sysconfig/iptables — переменные и комментарии.
я пришел к такой схеме:
я пришел к такой схеме:
* пишем скрипт (очистить_все; установить_нужное).  
* пишем скрипт (очистить_все; установить_нужное).
* запускаем.  
* запускаем.
* если понравилось - service iptables save.  
* если понравилось — service iptables save.
* скрипт остается лежать в /sbin. процедуру повторить.  
* скрипт остается лежать в /sbin. процедуру повторить.


смысла в этом целых три:
смысла в этом целых три:
* редактируя файрвол, проще работать с макросами : $lan_iface, $lan_ip, $outerface и т.д.
* редактируя файрвол, проще работать с макросами : $lan_iface, $lan_ip, $outerface и т. д. если админов более одного и/или сложные правила, то опять же легче разбираться в скрипте с комментариями, чем в голых цепочках.
  если админов более одного и/или сложные правила, то опять же легче разбираться в скрипте  
* если вдруг что-то начудил до невозможности входа по ssh, можно пнуть ящик, после ребута будет рабочая конфигурация. иначе пришлось бы подключать монитор с клавой.
  с комментариями, чем в голых цепочках.  
{{конец цитаты|источник=Nick S. Grechukh}}
* если вдруг что-то начудил до невозможности входа по ssh, можно пнуть ящик, после ребута  
  будет рабочая конфигурация. иначе пришлось бы подключать монитор с клавой.</pre>
''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}}}}

Текущая версия от 19:40, 5 сентября 2023

42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.


Конфигурирование файрвола при помощи 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] опять же куча всяких древних (и даже не очень, но слаквареобразных) мануалов рекомендует туда пихать развесистые скрипты, в которых единственное осмысленное — это параметризация. Бывают менее тривиальные конфигурации, правда, отнюдь не всегда они нужны.

— MichaelShigorin


скрипт имеет преимущество, которого нет в sysconfig/iptables — переменные и комментарии.

я пришел к такой схеме:

  • пишем скрипт (очистить_все; установить_нужное).
  • запускаем.
  • если понравилось — service iptables save.
  • скрипт остается лежать в /sbin. процедуру повторить.

смысла в этом целых три:

  • редактируя файрвол, проще работать с макросами : $lan_iface, $lan_ip, $outerface и т. д. если админов более одного и/или сложные правила, то опять же легче разбираться в скрипте с комментариями, чем в голых цепочках.
  • если вдруг что-то начудил до невозможности входа по ssh, можно пнуть ящик, после ребута будет рабочая конфигурация. иначе пришлось бы подключать монитор с клавой.

— Nick S. Grechukh

Кстати, в etcnet начиная с 0.7.9 содержится некоторая поддержка конфигурирования iptables в стиле SysV, поинтерфейсно/таблично.

Сохранение конфигурации

Столкнувшись с тем, что написанные в данной статье инструкции по сохранению конфигурации неполные, либо не работают (или лыжи не едут, или я дурак), решил написать такую инструкцию сам, взяв за основу одну из приведенных здесь цитат.

  1. пишем правила ручками, используя команду iptables
  2. проверяем, что всё работает
  3. если понравилось:
iptables-save >> /etc/sysconfig/iptables
service iptables enable
Интересно, что пока файл sysconfig/iptables пустой, сервис iptables будет стартовать с ошибкой
Примечание:

Если что-то идёт не так, можно перезагрузиться и начать заново. Если напортачили в файле, ничего страшного, по умолчанию он пустой, его можно очистить и ничего не сломается.

Примечание:

Не стоит воспринимать данную инструкцию, как истину в последней инстанции, она может оказаться неэффективной или вообще нерабочей. Я лишь пишу о том, как сделал я, потому что у меня это сработало, а то что я нашел на просторах интернета не сработало


Ссылки