<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://megapuper.ru/index.php?action=history&amp;feed=atom&amp;title=IPTABLES</id>
	<title>IPTABLES - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://megapuper.ru/index.php?action=history&amp;feed=atom&amp;title=IPTABLES"/>
	<link rel="alternate" type="text/html" href="http://megapuper.ru/index.php?title=IPTABLES&amp;action=history"/>
	<updated>2026-08-06T22:51:54Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>http://megapuper.ru/index.php?title=IPTABLES&amp;diff=159759&amp;oldid=prev</id>
		<title>Root: Новая страница: «Схема обработки правил iptables&lt;br&gt; Файл:iptables01.jpg  СИНТАКСИС:  iptables [-t ТАБЛИЦА] -A ЦЕПОЧКА ПАРА…»</title>
		<link rel="alternate" type="text/html" href="http://megapuper.ru/index.php?title=IPTABLES&amp;diff=159759&amp;oldid=prev"/>
		<updated>2023-04-06T21:37:39Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Схема обработки правил iptables&amp;lt;br&amp;gt; &lt;a href=&quot;/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Iptables01.jpg&quot; title=&quot;Файл:Iptables01.jpg&quot;&gt;Файл:iptables01.jpg&lt;/a&gt;  СИНТАКСИС:  iptables [-t ТАБЛИЦА] -A ЦЕПОЧКА ПАРА…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Схема обработки правил iptables&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:iptables01.jpg]]&lt;br /&gt;
&lt;br /&gt;
СИНТАКСИС:&lt;br /&gt;
&lt;br /&gt;
iptables [-t ТАБЛИЦА] -A ЦЕПОЧКА ПАРАМЕТРЫ [опция]ДЕЙСТВИЕ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ТАБЛИЦЫ:&lt;br /&gt;
 '''filter''' - таблица, выполняющая функции фильтрации пакетов по определённым параметрам. В большинстве случаев используется она&lt;br /&gt;
 '''raw''' - iptables рассматривает каждый пакет как часть потока и может определить какому соединению принадлежит пакет. В таблице raw настраиваются исключения, которые рассматривают пакет как отдельную сущность&lt;br /&gt;
 '''nat''' - таблица, предназначенная целиком по функции трансляции сетевых адресов&lt;br /&gt;
 '''mangle''' - таблица, предназначенная для изменения различных заголовков пакета. Можно, например, изменить TTL, количество hop'ов и другое&lt;br /&gt;
 '''security''' - используется для назначения пакетам или соединениям неких меток, которые в дальнейшем может интерпретировать SElinux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
КЛЮЧИ ДЛЯ РАБОТЫ С ЦЕПОЧКАМИ:&lt;br /&gt;
 '''-A''' &amp;lt;цепочка&amp;gt; - добавление правила к цепочке(в самое начало)&lt;br /&gt;
 '''-D''' &amp;lt;цепочка&amp;gt; - удалить правило из цепочки&lt;br /&gt;
 '''-I''' &amp;lt;цепочка&amp;gt; &amp;lt;номер&amp;gt; – вставить правило в цепочку с указанным номером&lt;br /&gt;
 '''-F''' &amp;lt;цепочка&amp;gt; - удалить все правила из цепочки, если цепочка не указана, удаляются все правила&lt;br /&gt;
 '''-L''' &amp;lt;цепочка&amp;gt; - листинг правил цепочки&lt;br /&gt;
 '''-N''' &amp;lt;цепочка&amp;gt; - создание новой пользовательской цепочки&lt;br /&gt;
 '''-P''' &amp;lt;цепочка&amp;gt; – задать действие по умолчанию, действие будет выполняться на все пакеты, которые не подошли по каким-либо параметрам в другие правила.&lt;br /&gt;
 '''-R''' &amp;lt;цепочка&amp;gt; &amp;lt;номер&amp;gt; - заменяет определенные критерии цепочки с номером&lt;br /&gt;
 '''-Z''' &amp;lt;цепочка&amp;gt; - обнуляет все счётчики пакетов и байтов в цепочке&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
БАЗОВЫЕ ЦЕПОЧКИ:&lt;br /&gt;
 '''PREROUTING''' - правила в этой цепочке применяются ко всем пакетам, которые поступают на сетевой интерфейс извне&lt;br /&gt;
 '''INPUT''' - применяются к пакетам, которые предназначаются для самого хоста или для локального процесса, запущенного на данном хосте. То есть не являются транзитными&lt;br /&gt;
 '''FORWARD''' - правила, которые применяются к транзитным пакетам, проходящими через хост, не задерживаясь&lt;br /&gt;
 '''OUTPUT''' - применяются к пакетам, которые сгенерированы самим хостом&lt;br /&gt;
 '''POSTROUTING''' - применяются к пакетам, которые должны покинуть сетевой интерфейс&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ПАРАМЕТРЫ:&lt;br /&gt;
 '''-p''' - протокол, можно использовать all,icmp,tcp,udp&lt;br /&gt;
 '''-m''' - включает дополнительные модули, явно задающимися данным ключем (например -m limit --limit 3/min - установит лимит на количество пакетов в минуту)&lt;br /&gt;
 '''-s''' - ip адрес/хост источника&lt;br /&gt;
 '''-d''' - ip адрес/хост назначения&lt;br /&gt;
 '''-i''' &amp;lt;имя интерфейса&amp;gt; - входящие пакеты на интерфейс&lt;br /&gt;
 '''-o''' &amp;lt;имя интерфейса&amp;gt; - исходящие пакеты с интерфейса&lt;br /&gt;
 '''–-sport''' - порт источника&lt;br /&gt;
 '''-–dport''' - порт назначения&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ОПЦИИ ДЛЯ ДЕЙСТВИЙ:&lt;br /&gt;
 '''-j''' - применяет одно из действий accept, drop, reject и другие&lt;br /&gt;
 '''-g''' - переходит к другой цепочке правил&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ДЕЙСТВИЯ:&lt;br /&gt;
 '''ACCEPT''' - разрешить прохождение пакета&lt;br /&gt;
 '''DROP''' - отбросить пакет не сообщая причины(более приоритетный вариант, нежели REJECT, т.к для блокируемого ip адреса(или диапазонов) будет аналогичный эффект тому, когда сервер находится в дауне) &lt;br /&gt;
 '''REJECT''' - выбрасывает пакет и возвращает причину в виде ошибки, например: icmp unreachable&lt;br /&gt;
 '''QUEUE''' - отправляет пакет за пределы логики iptables, в стороннее приложение. Это может понадобиться, когда нужно обработать пакет в рамках другого процесса в другой программе&lt;br /&gt;
 '''RETURN''' - остановить обработку правила и вернуться на одно правило назад. Это действие подобно break'у в языке программирования&lt;br /&gt;
 '''LOG''' - просто делает запись в логе, если пакет соответствует критериям правила;&lt;br /&gt;
 '''DNAT''' - правило используется в NAT-ировании и меняет Destination IP пакета. Используется только в таблице nat и цепочках OUTPUT и PREROUTING&lt;br /&gt;
 '''SNAT''' - правило используется в NAT-ировании и меняет Source IP пакета. Используется только в таблице nat и цепочке POSTROUTING&lt;br /&gt;
 '''MASQUERADE''' - делает то же самое что SNAT, только применяется на выходном интерфейсе, когда IP адрес может меняться, например, когда назначается по DHCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iptables -L - покажет какие правила находятся в памяти&amp;lt;br/&amp;gt;&lt;br /&gt;
iptables -L -t nat - покажет правила таблицы nat&amp;lt;br/&amp;gt;&lt;br /&gt;
iptables -L –line-numbers - узнать номер правила&amp;lt;br/&amp;gt;&lt;br /&gt;
iptables -D INPUT 5 - удалить правило номер 5 из цепочки INPUT&amp;lt;br/&amp;gt;&lt;br /&gt;
iptables -L -n -v --line-numbers - параметр -v показывает детальную статистику по правилам, -n не резолвит ипишки&amp;lt;br/&amp;gt;&lt;br /&gt;
iptables -F - полностью очищаем список со всеми правилами&amp;lt;br/&amp;gt;&lt;br /&gt;
iptables -F -t nat - удаляем правила таблицы nat&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Параметры конфигурации сервиса &amp;lt;code bash&amp;gt;/etc/sysconfig/iptables-config&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IPTABLES_SAVE_ON_STOP=«yes»''' - это заставит сервис iptables сохранять свою конфигурацию в файл при выключении файрвола или завершении работы, чтобы не пришлось конфигурировать все повторно&amp;lt;br/&amp;gt;&lt;br /&gt;
'''IPTABLES_STATUS_LINENUMBERS=«yes»''' - по команде /etc/init.d/iptables status отобразит номера правил&amp;lt;br/&amp;gt;&lt;br /&gt;
'''IPTABLES_STATUS_VERBOSE=«yes»''' - по команде /etc/init.d/iptables status покажет бегущие байтики и пакетики&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если после перезагрузки правила не загрузились - надо проверить, откуда их читает сервис&lt;br /&gt;
 /etc/init.d/iptables → параметр IPTABLES_DATA &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сохранить правила(CentOS)&lt;br /&gt;
 iptables-save &amp;gt; /etc/sysconfig/iptables &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сохранить правила, если файл уже создан:&lt;br /&gt;
 /etc/init.d/iptables-save&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Восстановить правила из конфига(если чёто делали-делали и похерили)&lt;br /&gt;
 iptables-restore &amp;lt; /etc/sysconfig/iptables &lt;br /&gt;
&lt;br /&gt;
Сохранить правила(Debian)&lt;br /&gt;
 iptables-save &amp;gt; /etc/iptables.conf&lt;br /&gt;
&lt;br /&gt;
Сбросить правила и не потерять коннект&lt;br /&gt;
 iptables -A INPUT ACCEPT&lt;br /&gt;
 iptables -F&lt;br /&gt;
 iptables -t nat -F&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ПРИМЕРЫ:''' &lt;br /&gt;
&lt;br /&gt;
Разрешаем прохождение любого трафика по loopback&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -o lo -j ACCEPT &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Разрешаем пинги&lt;br /&gt;
 iptables -A INPUT -p icmp -m icmp -i $INET_IFACE –icmp-type source-quench -j ACCEPT&lt;br /&gt;
 iptables -A OUTPUT -p icmp -m icmp -o $INET_IFACE –icmp-type source-quench -j ACCEPT &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем все пакеты, которые не подходят ни под одно описанное выше правило, со статусом «узел запрещен». Фактически «дефолтное» правило - запретить всё остальное&lt;br /&gt;
 iptables -A INPUT -j REJECT –-reject-with icmp-host-prohibited &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем все входящие пакеты с ip адреса 111.111.111.111&lt;br /&gt;
 iptables -A INPUT -s 111.111.111.111 -j DROP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем пакеты со всех адресов, кроме 111.111.111.111&lt;br /&gt;
 iptables -A INPUT ! -s 111.111.111.111 -j DROP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем подсеть по протоколу tcp на все порты&lt;br /&gt;
 iptables -A INPUT -p tcp -s 111.111.111.0/255.255.255.0 -j DROP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем входящие пакеты для диапазона ip адресов c 192.168.0.8 по 192.168.0.25&lt;br /&gt;
 iptables -I INPUT -m iprange –src-range 192.168.0.8-192.168.0.25 -j DROP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем весь входящий трафик на 80 порт&lt;br /&gt;
 iptables -A INPUT -p tcp –-dport 80 -j DROP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сбрасываем соединения, количество которых превышает 10 штук на порт 80&lt;br /&gt;
 iptables -A INPUT -p tcp –-dport 80 -m connlimit –connlimit-above 10 -j REJECT &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Блокируем домен vk.com&lt;br /&gt;
 iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com&lt;br /&gt;
 iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Изменение конфига в реальном времени без стирания цепочек и таблиц(2-номер правила)&lt;br /&gt;
 iptables -R INPUT 2 -i eth1 -p tcp –-dport 21 -j ACCEPT &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Включение ната для локальной сети&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проброс порта ssh на хост в локалке&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp -m tcp -d 188.9.31.168 --dport 2222 -j DNAT --to-destination 192.168.0.10:22&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Снимаем бан с IP 111.111.111.111&lt;br /&gt;
 iptables -D INPUT -s 111.111.111.111 -j DROP &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Удаляем бан из цепочки fail2ban&lt;br /&gt;
 iptables -D fail2ban-ASTERISK -s 109.195.52.173 -j DROP &lt;br /&gt;
&lt;br /&gt;
Можно прописать алиасы в файл .bashrc(или в .bash_aliases) для удобства:&lt;br /&gt;
 alias ban='iptables -I INPUT -j DROP -s'&lt;br /&gt;
 alias unban='iptables -D INPUT -j DROP -s'&lt;br /&gt;
&lt;br /&gt;
После чего можно гораздо быстрее банить ip адрес командой: ban 111.111.111.111&lt;br /&gt;
и снимать бан командой: unban 111.111.111.111&lt;/div&gt;</summary>
		<author><name>Root</name></author>
		
	</entry>
</feed>