<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://aidalinux.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Iptables</id>
	<title>Iptables - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://aidalinux.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Iptables"/>
	<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Iptables&amp;action=history"/>
	<updated>2026-04-04T12:20:34Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Iptables&amp;diff=175&amp;oldid=prev</id>
		<title>Langator в 22:14, 17 апреля 2011</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Iptables&amp;diff=175&amp;oldid=prev"/>
		<updated>2011-04-17T22:14:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 22:14, 17 апреля 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- Запомнить конфигурацию файрвола можно командой &amp;lt;tt&amp;gt;iptables-save&amp;lt;/tt&amp;gt;, восстановить &amp;lt;tt&amp;gt;iptables-restore&amp;lt;/tt&amp;gt;, хранится она в &amp;lt;tt&amp;gt;/etc/sysconfig/iptables&amp;lt;/tt&amp;gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Добавление и удаления правил ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Добавление и удаления правил ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;- &lt;/del&gt;Если ошиблись, то удаляем, изменяем и прописываем заново  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Если ошиблись, то удаляем, изменяем и прописываем заново  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; iptables -t nat -D POSTROUTING 1&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; iptables -t nat -D POSTROUTING 1&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l733&quot; &gt;Строка 733:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 731:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://www.ingineer.ru/linux/ Пошаговое конфигурирование iptables]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://www.ingineer.ru/linux/ Пошаговое конфигурирование iptables]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Руководства]] [[Категория:Net]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Руководства]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Категория:Iptables]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Net]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Iptables&amp;diff=125&amp;oldid=prev</id>
		<title>Langator: Новая страница: «- Запомнить конфигурацию файрвола можно командой &lt;tt&gt;iptables-save&lt;/tt&gt;, восстановить &lt;tt&gt;iptables-restore&lt;/tt&gt;...»</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Iptables&amp;diff=125&amp;oldid=prev"/>
		<updated>2011-04-08T18:45:24Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «- Запомнить конфигурацию файрвола можно командой &amp;lt;tt&amp;gt;iptables-save&amp;lt;/tt&amp;gt;, восстановить &amp;lt;tt&amp;gt;iptables-restore&amp;lt;/tt&amp;gt;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;- Запомнить конфигурацию файрвола можно командой &amp;lt;tt&amp;gt;iptables-save&amp;lt;/tt&amp;gt;, восстановить &amp;lt;tt&amp;gt;iptables-restore&amp;lt;/tt&amp;gt;, хранится она в &amp;lt;tt&amp;gt;/etc/sysconfig/iptables&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Добавление и удаления правил ==&lt;br /&gt;
- Если ошиблись, то удаляем, изменяем и прописываем заново &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; iptables -t nat -D POSTROUTING 1&amp;lt;/source&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
где 1 это номер правила по порядку, или удаляем все правила из таблицы POSTROUTING &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables -t nat -F POSTROUTING&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также удалить конкретное правило можно использовав директиву -D вместо -A: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- В целях отладки можно добавить правило на пропуск пингов от клиентов во внешний мир &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables -t nat -A POSTROUTING -o eth1 -p icmp -j SNAT --to-source 192.168.100.18&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Прямой доступ в Интернет ==&lt;br /&gt;
Добавим правило прямого доступа (без прокси сервера) к Интернет для адреса 10.0.0.244 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables -t nat -A POSTROUTING -s 10.0.0.244 -o eth1 -j SNAT --to 192.168.100.18&amp;lt;/source&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
или для всей подсети &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Проверяем добавленную запись &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables -t nat -L&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ограничение доступа в локальную сеть ==&lt;br /&gt;
&lt;br /&gt;
=== Частичная блокировка ===&lt;br /&gt;
Для того, чтобы ограничить доступ в нашу сеть извне не навредив, нужно иметь представление какие ресурсы используют приложения, работающие на сервере. Для этого убедимся, что все службы сервера запущены (httpd, named  и т.д.) и определим открытые порты.&lt;br /&gt;
&lt;br /&gt;
Пусть внешний интерфейс eth1 имеет адрес 81.81.81.81.&lt;br /&gt;
&lt;br /&gt;
Проверим открытые порты командой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;netcat -v -w 4 -z 81.81.81.81 1-1023 | grep succeed&amp;lt;/source&amp;gt;&lt;br /&gt;
либо&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;nmap -sT -O 81.81.81.81&amp;lt;/source&amp;gt;&lt;br /&gt;
где &amp;quot;-О&amp;quot; это заглавная латинская буква &amp;quot;О&amp;quot;. Посмотрим кто сопоставлен, к примеру, с портом 111:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/services | grep 111&lt;br /&gt;
&lt;br /&gt;
sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP&lt;br /&gt;
sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Посмотрим, кто его прослушивает:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
netstat -anp | grep 111&lt;br /&gt;
&lt;br /&gt;
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2457/portmap&lt;br /&gt;
udp 0 0 0.0.0.0:111 0.0.0.0:* 2457/portmap&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Посмотрим используется ли он сейчас:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;lsof -i | grep 111&amp;lt;/source&amp;gt;&lt;br /&gt;
Прописываем правила, закрывающие все порты за исключением 25 (smtp: принимаем почту) и 80 (http: показываем web страницы)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iptables -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
iptables -A FORWARD -o eth1 -p tcp -j DROP&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь наш сервер прикрыт с внешнего мира. Запуск команд netcat и nmap c самого сервера покажет тоже, что и до внесения правил, но если пробовать с другого компьютера, то заметим результат: доступ везде прикрыт, кроме как на разрешённые нами 25 и 80 порты.&lt;br /&gt;
Можно посмотреть действующие правила:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iptables -L&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT)&lt;br /&gt;
target prot opt source destination&lt;br /&gt;
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp&lt;br /&gt;
ACCEPT tcp -- anywhere anywhere tcp dpt:http&lt;br /&gt;
REJECT tcp -- anywhere anywhere tcpflags:FIN,SYN,ACK/SYN reject-with icmp-port-unreachable&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy ACCEPT)&lt;br /&gt;
target prot opt source destination&lt;br /&gt;
DROP tcp -- anywhere anywhere&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
target prot opt source destination&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Или те же правила в виде команд:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iptables-save&lt;br /&gt;
&lt;br /&gt;
# Generated by iptables-save v1.3.1 on Wed Aug 30 14:30:11 2006&lt;br /&gt;
*nat&lt;br /&gt;
:PREROUTING ACCEPT [2784:423873]&lt;br /&gt;
:POSTROUTING ACCEPT [1822:103126]&lt;br /&gt;
:OUTPUT ACCEPT [1805:100270]&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Wed Aug 30 14:30:11 2006&lt;br /&gt;
# Generated by iptables-save v1.3.1 on Wed Aug 30 14:30:11 2006&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT ACCEPT [28890:12820098]&lt;br /&gt;
:FORWARD ACCEPT [22:3088]&lt;br /&gt;
:OUTPUT ACCEPT [30305:14410374]&lt;br /&gt;
-A INPUT -i eth1 -p tcp -m tcp --dport 25 -j ACCEPT&lt;br /&gt;
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT&lt;br /&gt;
-A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
-A FORWARD -o eth1 -p tcp -j DROP&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Wed Aug 30 14:30:11 2006&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Чтобы запомнить эти правила смотрим в &amp;lt;tt&amp;gt;/etc/init.d/iptables&amp;lt;/tt&amp;gt; откуда берёт iptables свою конфигурацию при старте. Видим, что хранит он её в &amp;lt;tt&amp;gt;/etc/sysconfig/iptables&amp;lt;/tt&amp;gt;. Сохраняем новую конфигурацию в этот файл:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;iptables-save &amp;gt; /etc/sysconfig/iptables&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь при запуске системы прописанные нами правила восстановятся.&lt;br /&gt;
&lt;br /&gt;
=== Блокировка всех входящих, открываем все исходящие ===&lt;br /&gt;
Ещё один вариант как настроить элементарный firewall выпускающий все наружу и закрывающий все входящие подключения приведён по адресу http://rlworkman.net/conf/firewall/rc.firewall.desktop.generic. Выполняем при старте системы скрипт:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
# Define variables&lt;br /&gt;
IPT=/usr/sbin/iptables # change if needed&lt;br /&gt;
EXT_IF=eth0 # external interface (connected to internet)&lt;br /&gt;
&lt;br /&gt;
# Enable TCP SYN Cookie Protection&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Disable ICMP Redirect Acceptance&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_redirects&lt;br /&gt;
&lt;br /&gt;
# Do not send Redirect Messages&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/send_redirects&lt;br /&gt;
&lt;br /&gt;
# Enable bad error message protection&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
&lt;br /&gt;
# Enable broadcast echo protection&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
&lt;br /&gt;
# Disable source-routed packets&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_source_route&lt;br /&gt;
&lt;br /&gt;
# Set default policy to DROP&lt;br /&gt;
$IPT -P INPUT DROP&lt;br /&gt;
$IPT -P OUTPUT DROP&lt;br /&gt;
$IPT -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
# Flush old rules&lt;br /&gt;
$IPT -F&lt;br /&gt;
&lt;br /&gt;
# Allow loopback traffic&lt;br /&gt;
$IPT -A INPUT -i lo -j ACCEPT&lt;br /&gt;
$IPT -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow packets of established connections and those&lt;br /&gt;
# which are related to established connections&lt;br /&gt;
$IPT -A INPUT -i $EXT_IF -p all -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow all outgoing packets&lt;br /&gt;
$IPT -A OUTPUT -o $EXT_IF -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow incoming ssh from internet (uncomment the line below if needed)&lt;br /&gt;
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 22 --syn -m state --state NEW -j ACCEPT &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Подключение к удалённому рабочему столу (УРС, по протоколу RDP) Windows через фаервол ==&lt;br /&gt;
&lt;br /&gt;
'''Постановка задачи:''' &lt;br /&gt;
&lt;br /&gt;
Необходимо получить доступ к рабочей станции Windows из Интернет. Рабочая станция находится в локальной сети и имеет адрес 192.168.1.1. Доступ в Интернет осуществляется через Линукс сервер, выполняющий роль файрвола, прокси и т.д.&lt;br /&gt;
&lt;br /&gt;
'''Решение:'''&lt;br /&gt;
&lt;br /&gt;
С глобальной сети будем подключаться к линуксовому серверу, который будет перенаправлять все запросы к УРС (т.е. на порт 3389) в локальную сеть на ip 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
- На Windows клиенте открыть доступ к УРС:&lt;br /&gt;
&lt;br /&gt;
Свойства &amp;quot;Моего компьютера&amp;quot; - закладка Удалённые сеансы - поставить галочку на &amp;quot;Разрешить удалённый доступ к этому компьютеру&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Не забудем, что:&lt;br /&gt;
&lt;br /&gt;
а) пользователь которым мы будем подключаться должен иметь не пустой пароль.&lt;br /&gt;
&lt;br /&gt;
б) обязательно указать имя пользователя в формате: ИмяКомпьютера\ИмяПользователя или ИмяДомена\ИмяПользователя&lt;br /&gt;
&lt;br /&gt;
- Теперь настроим iptables на Linux сервере, для перенаправления запросов:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# iptables -t nat -A PREROUTING -p tcp -d ххх.ххх.ххх.ххх --dport 3389 -j DNAT --to-destination  192.168.1.1:3389&lt;br /&gt;
# iptables -A FORWARD -i eth1 -d 192.168.1.1 -p tcp --dport 3389  -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
здесь ХХХ.ХХХ.ХХХ.ХХХ - внешний адрес Linux'a&lt;br /&gt;
&lt;br /&gt;
== Anti-ssh-bruteforce ==&lt;br /&gt;
&lt;br /&gt;
Вот правила iptables (нужна поддержка recent match в ядре):&lt;br /&gt;
&lt;br /&gt;
1. Сохраните текущие правила командой &lt;br /&gt;
&amp;lt;pre&amp;gt;# iptables-save &amp;gt; /etc/iptables.bak&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Откройте &amp;lt;tt&amp;gt;/etc/iptables.bak&amp;lt;/tt&amp;gt; в вашем любимом текстовом редакторе.&lt;br /&gt;
&lt;br /&gt;
3. Добавте следующие правила в подходящем порядке в соответствии с уже созданными правилами.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --set&lt;br /&gt;
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --update --seconds 60 --hitcount 3 -j DROP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Активируйте все правила &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables-restore /etc/iptables.bak&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После 3 попыток подключиться в течение 60 секунд, робот блокируется и отваливает и почти нет мусора в логах, а главное - лишнего траффика, в отличие от pam_abl. По желанию можно увеличить параметры --hitcount и --seconds.&lt;br /&gt;
&lt;br /&gt;
== Примеры некоторых правил ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 10.0.3.41 -d 217.217.217.217 -o eth1 -p tcp --dport 25 -j SNAT --to 116.116.116.116&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Разрешаем прямой доступ к внешней почте. Подробнее: разрешаем доступ хосту 10.0.3.41 из внутренней сети обращаться к хосту 217.217.217.217 на 25 порт (smtp) протокола tcp; такие обращения пропускаем через интерфейс eth1, который имеет адрес 116.116.116.116&lt;br /&gt;
&lt;br /&gt;
Для доступа к РОР добавляем такое же правило для порта 110&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 10.0.3.41 -p tcp --dport 25 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Более короткое правило, аналогичное вышеприведённому, только здесь пользователь с ip 10.0.3.41 имеет доступ к любому почтовому серверу в Интернете.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''iptables -L -vxn''' || смотрим счётчики. При создании правил автоматически ведётся счётчик пакетов и байт к которому это правило было применено.&lt;br /&gt;
|-&lt;br /&gt;
|'''iptables -F&amp;lt;br&amp;gt;iptables -X''' || чистим все цепочки&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Шаблонный скрипт закрывающий все дыры ==&lt;br /&gt;
&lt;br /&gt;
Отказывая по умолчанию всем в соединении (default policy drop), открываем только то, что знаем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Firewall rules by Nail Ahmetgaleev, 2011&lt;br /&gt;
&lt;br /&gt;
###########################################################################&lt;br /&gt;
#&lt;br /&gt;
# 1. Configuration options.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 1.1 Internet Configuration.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
INET_IP=&amp;quot;212.75.220.218&amp;quot;&lt;br /&gt;
INET_IFACE=&amp;quot;eth0&amp;quot;&lt;br /&gt;
INET_BROADCAST=&amp;quot;212.75.220.219&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# 1.2 Local Area Network configuration.&lt;br /&gt;
#&lt;br /&gt;
# your LAN's IP range and localhost IP. /24 means to only use the first 24&lt;br /&gt;
# bits of the 32 bit IP address. the same as netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
LAN_IP=&amp;quot;10.108.93.223&amp;quot;&lt;br /&gt;
LAN_IP_RANGE=&amp;quot;10.0.0.0/8&amp;quot;&lt;br /&gt;
LAN_IFACE=&amp;quot;eth1:0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LAN1_IP=&amp;quot;192.1.1.1&amp;quot;&lt;br /&gt;
LAN1_IP_RANGE=&amp;quot;192.1.1.0/24&amp;quot;&lt;br /&gt;
LAN1_IFACE=&amp;quot;eth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LAN2_IP=&amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
LAN2_IP_RANGE=&amp;quot;192.168.1.0/24&amp;quot;&lt;br /&gt;
LAN2_IFACE=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 1.3 DMZ Configuration.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 1.4 Localhost Configuration.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
LO_IFACE=&amp;quot;lo&amp;quot;&lt;br /&gt;
LO_IP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 1.5 IPTables Configuration.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
IPTABLES=&amp;quot;/sbin/iptables&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 1.6 Other Configuration.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Flushing rules&lt;br /&gt;
$IPTABLES -F&lt;br /&gt;
$IPTABLES -t nat -F&lt;br /&gt;
$IPTABLES -X&lt;br /&gt;
&lt;br /&gt;
###########################################################################&lt;br /&gt;
#&lt;br /&gt;
# 2. Module loading.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Needed to initially load modules&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
/sbin/depmod -a&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 2.1 Required modules&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
/sbin/modprobe ip_tables&lt;br /&gt;
/sbin/modprobe ip_conntrack&lt;br /&gt;
/sbin/modprobe iptable_filter&lt;br /&gt;
/sbin/modprobe iptable_mangle&lt;br /&gt;
/sbin/modprobe iptable_nat&lt;br /&gt;
/sbin/modprobe ipt_LOG&lt;br /&gt;
/sbin/modprobe ipt_limit&lt;br /&gt;
/sbin/modprobe ipt_state&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 2.2 Non-Required modules&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#/sbin/modprobe ipt_owner&lt;br /&gt;
#/sbin/modprobe ipt_REJECT&lt;br /&gt;
#/sbin/modprobe ipt_MASQUERADE&lt;br /&gt;
#/sbin/modprobe ip_conntrack_ftp&lt;br /&gt;
#/sbin/modprobe ip_conntrack_irc&lt;br /&gt;
#/sbin/modprobe ip_nat_ftp&lt;br /&gt;
#/sbin/modprobe ip_nat_irc&lt;br /&gt;
&lt;br /&gt;
###########################################################################&lt;br /&gt;
#&lt;br /&gt;
# 3. /proc set up.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 3.1 Required proc configuration&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 3.2 Non-Required proc configuration&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/conf/all/rp_filter&lt;br /&gt;
#echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/conf/all/proxy_arp&lt;br /&gt;
#echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
&lt;br /&gt;
# Enable TCP SYN Cookie Protection&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Disable ICMP Redirect Acceptance&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_redirects&lt;br /&gt;
&lt;br /&gt;
# Do not send Redirect Messages&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/send_redirects&lt;br /&gt;
&lt;br /&gt;
# Enable bad error message protection&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
&lt;br /&gt;
# Enable broadcast echo protection&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
&lt;br /&gt;
# Disable source-routed packets&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_source_route&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###########################################################################&lt;br /&gt;
#&lt;br /&gt;
# 4. rules set up.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
######&lt;br /&gt;
# 4.1 Filter table&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.1.1 Set policies&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -P INPUT DROP&lt;br /&gt;
$IPTABLES -P OUTPUT DROP&lt;br /&gt;
$IPTABLES -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.1.2 Create userspecified chains&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Create chain for bad tcp packets&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -N bad_tcp_packets&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Create SSH check table&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -N ssh_check&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Create separate chains for ICMP, TCP and UDP to traverse&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -N allowed&lt;br /&gt;
$IPTABLES -N tcp_packets&lt;br /&gt;
$IPTABLES -N udp_packets&lt;br /&gt;
$IPTABLES -N icmp_packets&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.1.3 Create content in userspecified chains&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# bad_tcp_packets chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \&lt;br /&gt;
-m state --state NEW -j REJECT --reject-with tcp-reset&lt;br /&gt;
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \&lt;br /&gt;
--log-prefix &amp;quot;New not syn:&amp;quot;&lt;br /&gt;
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SSH check table&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A ssh_check -m recent --update --seconds 300 --hitcount 3 \&lt;br /&gt;
 --rttl --name SSH -m limit --limit 3/minute --limit-burst 3 -j LOG \&lt;br /&gt;
 --log-level DEBUG --log-prefix &amp;quot;IPT SSH_BRUTFORCE:&amp;quot;&lt;br /&gt;
$IPTABLES -A ssh_check -m recent --update --seconds 300 --hitcount 3 \&lt;br /&gt;
 --rttl --name SSH -j DROP&lt;br /&gt;
$IPTABLES -A ssh_check -m recent --set --name SSH -j allowed&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# allowed chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A allowed -p TCP --syn -j ACCEPT&lt;br /&gt;
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
$IPTABLES -A allowed -p TCP -j DROP&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TCP rules&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# allow ftp,ssh,http,identd incoming packets &lt;br /&gt;
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -m state --state NEW -j ssh_check&lt;br /&gt;
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed&lt;br /&gt;
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6890:6999 -j allowed&lt;br /&gt;
&lt;br /&gt;
# Allow DC++&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 10853 -j allowed&lt;br /&gt;
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6068 -j allowed&lt;br /&gt;
&lt;br /&gt;
# Allow VoIP&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 1718:1720 -j allowed&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 1731 -j allowed&lt;br /&gt;
&lt;br /&gt;
# Allow Donkey&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 9407 -j allowed&lt;br /&gt;
&lt;br /&gt;
# Allow Overnet&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 15649 -j allowed&lt;br /&gt;
&lt;br /&gt;
# Allow Gnutella&lt;br /&gt;
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 17099 -j allowed&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# UDP ports&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow DC++ &lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 6308 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow Torrents&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 6771 -j ACCEPT&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 6890:6999 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow VoIP&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 5060:5064 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow Donkey &lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 9411 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow Kademila&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 17354 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow Overnet&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 15649 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow Gnutella&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 17099 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow dns requests&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -i $LAN1_IFACE --destination-port 53 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Allow dhcp and bootp&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -i $LAN2_IFACE --destination-port 67 -j LOG \&lt;br /&gt;
    --log-level DEBUG --log-prefix &amp;quot;IPT DHCP request: &amp;quot; &lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -i $LAN2_IFACE --destination-port 67 -j ACCEPT&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -i $LAN2_IFACE --destination-port 69 -j LOG \&lt;br /&gt;
    --log-level DEBUG --log-prefix &amp;quot;IPT TFTP request: &amp;quot; &lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -s $LAN2_IP_RANGE --destination-port 69 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# In Microsoft Networks you will be swamped by broadcasts. These lines&lt;br /&gt;
# will prevent them from showing up in the logs.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST \&lt;br /&gt;
#--destination-port 135:139 -j DROP&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A udp_packets -p UDP -i $INET_IFACE \&lt;br /&gt;
--destination-port 135:139 -j DROP&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -i $INET_IFACE \&lt;br /&gt;
#--destination-port 135:139 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# If we get DHCP requests from the Outside of our network, our logs will&lt;br /&gt;
# be swamped as well. This rule will block them from getting logged.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 \&lt;br /&gt;
#--destination-port 67:68 -j DROP&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ICMP rules&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT&lt;br /&gt;
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# 4.1.4 INPUT chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bad TCP packets we don't want.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Rules for special networks not part of the Internet&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN2_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i $LAN1_IFACE -s $LAN1_IP_RANGE -j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i $LAN2_IFACE -s $LAN2_IP_RANGE -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -i tun0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Special rule for DHCP requests from LAN, which are not caught properly&lt;br /&gt;
# otherwise.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Rules for incoming packets from the internet.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \&lt;br /&gt;
-j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p ALL -d $LAN_IP -m state --state ESTABLISHED,RELATED \&lt;br /&gt;
-j ACCEPT&lt;br /&gt;
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets&lt;br /&gt;
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets&lt;br /&gt;
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# If you have a Microsoft Network on the outside of your firewall, you may&lt;br /&gt;
# also get flooded by Multicasts. We drop them so we do not get flooded by&lt;br /&gt;
# logs&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Log weird packets that don't match the above.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \&lt;br /&gt;
--log-level DEBUG --log-prefix &amp;quot;IPT INPUT packet died: &amp;quot;&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.1.5 FORWARD chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bad TCP packets we don't want&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Accept the packets we actually want to forward&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT&lt;br /&gt;
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
$IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Log weird packets that don't match the above.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \&lt;br /&gt;
--log-level DEBUG --log-prefix &amp;quot;IPT FORWARD packet died: &amp;quot;&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.1.6 OUTPUT chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bad TCP packets we don't want.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Special OUTPUT rules to decide which IP's to allow.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A OUTPUT -p ALL -s $LAN1_IP -j ACCEPT&lt;br /&gt;
$IPTABLES -A OUTPUT -p ALL -s $LAN2_IP -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A OUTPUT -p ALL -o tun0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Log weird packets that don't match the above.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \&lt;br /&gt;
--log-level DEBUG --log-prefix &amp;quot;IPT OUTPUT packet died: &amp;quot;&lt;br /&gt;
&lt;br /&gt;
######&lt;br /&gt;
# 4.2 nat table&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.2.1 Set policies&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.2.2 Create user specified chains&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.2.3 Create content in user specified chains&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.2.4 PREROUTING chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.2.5 POSTROUTING chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Enable simple IP Forwarding and Network Address Translation&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP&lt;br /&gt;
$IPTABLES -t nat -A POSTROUTING -s $LAN1_IP_RANGE -o $INET_IFACE -j SNAT --to-source $INET_IP&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.2.6 OUTPUT chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
######&lt;br /&gt;
# 4.3 mangle table&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.1 Set policies&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.2 Create user specified chains&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.3 Create content in user specified chains&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.4 PREROUTING chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.5 INPUT chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.6 FORWARD chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.7 OUTPUT chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# 4.3.8 POSTROUTING chain&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
* http://easylinux.ru/node/190 - хороший краткий обзор о принципе работы файрвола в Линуксе&lt;br /&gt;
* http://adz.void.ru - Цикл статей &amp;quot;Проблемы безопасности UNIX-подобных операционных систем&amp;quot;&lt;br /&gt;
* [http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/security-guide/s1-server-ports.html Red Hat Enterprise Linux 4: Руководство по безопасности]&lt;br /&gt;
* [http://www.ingineer.ru/linux/ Пошаговое конфигурирование iptables]&lt;br /&gt;
&lt;br /&gt;
[[Category:Руководства]] [[Категория:Net]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
</feed>