FAQ по IPTABLES — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
Строка 75: Строка 75:
 
'''ПРИМЕРЫ:'''  
 
'''ПРИМЕРЫ:'''  
  
Разрешаем прохождение любого трафика по loopback
+
Разрешаем прохождение любого трафика по loopback
iptables -A INPUT -i lo -j ACCEPT
+
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT  
+
iptables -A OUTPUT -o lo -j ACCEPT  
  
Разрешаем пинги
 
iptables -A INPUT -p icmp -m icmp -i $INET_IFACE –icmp-type source-quench -j ACCEPT
 
iptables -A OUTPUT -p icmp -m icmp -o $INET_IFACE –icmp-type source-quench -j ACCEPT
 
  
  Блокируем все пакеты, которые не подходят ни под одно описанное выше правило, со статусом «узел запрещен». Фактически «дефолтное» правило - запретить всё остальное
+
Разрешаем пинги
iptables -A INPUT -j REJECT –reject-with icmp-host-prohibited
+
  iptables -A INPUT -p icmp -m icmp -i $INET_IFACE –icmp-type source-quench -j ACCEPT
 +
iptables -A OUTPUT -p icmp -m icmp -o $INET_IFACE –icmp-type source-quench -j ACCEPT
  
Блокируем все входящие пакеты с ip адреса 111.111.111.111
 
iptables -A INPUT -s 111.111.111.111 -j DROP
 
  
Блокируем пакеты со всех адресов, кроме 111.111.111.111
+
Блокируем все пакеты, которые не подходят ни под одно описанное выше правило, со статусом «узел запрещен». Фактически «дефолтное» правило - запретить всё остальное
iptables -A INPUT ! -s 111.111.111.111 -j DROP
+
iptables -A INPUT -j REJECT –reject-with icmp-host-prohibited
  
Блокируем подсеть по протоколу tcp на все порты
 
iptables -A INPUT -p tcp -j DROP -s 111.111.111.0/255.255.255.0
 
  
Блокируем входящие пакеты для диапазона ip адресов c 192.168.0.8 по 192.168.0.25
+
Блокируем все входящие пакеты с ip адреса 111.111.111.111
iptables -I INPUT -m iprange –src-range 192.168.0.8-192.168.0.25 -j DROP  
+
iptables -A INPUT -s 111.111.111.111 -j DROP  
  
Блокируем весь входящий трафик на 80 порт
 
iptables -A INPUT -p tcp –dport 80 -j DROP
 
  
Сбрасываем соединения, количество которых превышает 10 штук на порт 80
+
Блокируем пакеты со всех адресов, кроме 111.111.111.111
iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 10 -j REJECT
+
iptables -A INPUT ! -s 111.111.111.111 -j DROP
  
Блокируем домен vk.com
 
iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com
 
iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com
 
  
  Изменение конфига в реальном времени без стирания цепочек и таблиц(2-номер правила)
+
Блокируем подсеть по протоколу tcp на все порты
iptables -R INPUT 2 -i eth1 -p tcp –dport 21 -j ACCEPT
+
  iptables -A INPUT -p tcp -j DROP -s 111.111.111.0/255.255.255.0
  
Снимаем бан с IP 111.111.111.111
 
iptables -D INPUT -s 111.111.111.111 -j DROP
 
  
  Удаляем бан из цепочки fail2ban
+
Блокируем входящие пакеты для диапазона ip адресов c 192.168.0.8 по 192.168.0.25
iptables -D fail2ban-ASTERISK -s 109.195.52.173 -j DROP  
+
  iptables -I INPUT -m iprange –src-range 192.168.0.8-192.168.0.25 -j DROP  
  
  Можно прописать алиасы в файл .bashrc(или в .bash_aliases) для удобства:
+
 
 +
Блокируем весь входящий трафик на 80 порт
 +
  iptables -A INPUT -p tcp –dport 80 -j DROP
 +
 
 +
 
 +
Сбрасываем соединения, количество которых превышает 10 штук на порт 80
 +
iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 10 -j REJECT
 +
 
 +
 
 +
Блокируем домен vk.com
 +
iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com
 +
iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com
 +
 
 +
 
 +
Изменение конфига в реальном времени без стирания цепочек и таблиц(2-номер правила)
 +
iptables -R INPUT 2 -i eth1 -p tcp –dport 21 -j ACCEPT
 +
 
 +
 
 +
Снимаем бан с IP 111.111.111.111
 +
iptables -D INPUT -s 111.111.111.111 -j DROP
 +
 
 +
 
 +
Удаляем бан из цепочки fail2ban
 +
iptables -D fail2ban-ASTERISK -s 109.195.52.173 -j DROP
 +
 
 +
Можно прописать алиасы в файл .bashrc(или в .bash_aliases) для удобства:
 
  alias ban='iptables -I INPUT -j DROP -s'
 
  alias ban='iptables -I INPUT -j DROP -s'
 
  alias unban='iptables -D INPUT -j DROP -s'
 
  alias unban='iptables -D INPUT -j DROP -s'
После чего можно гораздо быстрее банить ip адрес командой: ban 111.111.111.111
+
 
и снимать бан командой: unban 111.111.111.111
+
После чего можно гораздо быстрее банить ip адрес командой: ban 111.111.111.111
 +
и снимать бан командой: unban 111.111.111.111

Версия 16:47, 4 декабря 2013

СИНТАКСИС:

iptables [-t ТАБЛИЦА] -A ЦЕПОЧКА ПАРАМЕТРЫ -j ДЕЙСТВИЕ


КЛЮЧИ ДЛЯ РАБОТЫ С ЦЕПОЧКАМИ:

-A - добавить новое правило
-D - удалить правило
-F - удалить все правила
-R - замена правила
-L - вывод списка всех правил

В таблице filter(по умолчанию) существую следующие цепочки:

INPUT - входящий трафик
OUTPUT - исходящий трафик
FORWARD - пересылаемый(транзитный) трафик


ПАРАМЕТРЫ:

-p - протокол, можно использовать all,icmp,tcp,udp
-s - ip адрес/хост источника
-d - ip адрес/хост назначения
-i - интерфейс на который пришел пакет
-o - интерфейс с которого уйдет пакет
–sport - порт источника
–dport - порт назначения


ДЕЙСТВИЯ:

ACCEPT - разрешить пакеты
REJECT - блокировать пакеты с сообщением об отказе
DROP - блокировать пакеты(более приоритетный вариант, нежели REJECT, т.к для блокируемого ip адреса(или диапазонов) будет аналогичный эффект тому, когда сервер находится в дауне)


iptables -L - покажет вам какие правила у вас сейчас находятся в памяти iptables -L -t nat - покажет правила таблицы nat iptables -L –line-numbers - узнать номер правила iptables -D INPUT 5 - удалить правило номер 5 iptables iptables -L -n -v –line-numbers - параметр -v показывает детальную статистику по правилам, -n не резолвит ипишки iptables -F - поностью очищаем список со всеми правилами iptables -F -t nat - удаляем правила нат


Параметры конфигурации сервиса /etc/sysconfig/iptables-config

IPTABLES_SAVE_ON_STOP=«yes» - это заставит сервис iptables сохранять свою конфигурацию в файл при выключении файрвола или завершении работы, чтобы не пришлось конфигурировать все повторно
IPTABLES_STATUS_LINENUMBERS=«yes» - по команде /etc/init.s/iptables status отобразит номера правил
IPTABLES_STATUS_VERBOSE=«yes» - по команде /etc/init.s/iptables status покажет бегущие байтики и пакетики


Включение форвардинга /etc/sysctl.conf

net.ipv4.ip_forward=1 


Запуск iptables при старте системы

chkconfig iptables on 


Если после перезагрузки правила не загрузились - надо проверить, откуда их читает сервис

/etc/init.d/iptables → параметр IPTABLES_DATA 


Сохранить правила(CentOS)

iptables-save > /etc/sysconfig/iptables 


Сохранить правила, если файл уже создан:

/etc/init.d/iptables save


Восстановить правила из конфига(если чёто делали-делали и похерили)

iptables-restore < /etc/sysconfig/iptables 


ПРИМЕРЫ:

Разрешаем прохождение любого трафика по loopback

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT 


Разрешаем пинги

iptables -A INPUT -p icmp -m icmp -i $INET_IFACE –icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o $INET_IFACE –icmp-type source-quench -j ACCEPT 


Блокируем все пакеты, которые не подходят ни под одно описанное выше правило, со статусом «узел запрещен». Фактически «дефолтное» правило - запретить всё остальное

iptables -A INPUT -j REJECT –reject-with icmp-host-prohibited 


Блокируем все входящие пакеты с ip адреса 111.111.111.111

iptables -A INPUT -s 111.111.111.111 -j DROP 


Блокируем пакеты со всех адресов, кроме 111.111.111.111

iptables -A INPUT ! -s 111.111.111.111 -j DROP 


Блокируем подсеть по протоколу tcp на все порты

iptables -A INPUT -p tcp -j DROP -s 111.111.111.0/255.255.255.0 


Блокируем входящие пакеты для диапазона ip адресов c 192.168.0.8 по 192.168.0.25

iptables -I INPUT -m iprange –src-range 192.168.0.8-192.168.0.25 -j DROP 


Блокируем весь входящий трафик на 80 порт

iptables -A INPUT -p tcp –dport 80 -j DROP 


Сбрасываем соединения, количество которых превышает 10 штук на порт 80

iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 10 -j REJECT 


Блокируем домен vk.com

iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com
iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com 


Изменение конфига в реальном времени без стирания цепочек и таблиц(2-номер правила)

iptables -R INPUT 2 -i eth1 -p tcp –dport 21 -j ACCEPT 


Снимаем бан с IP 111.111.111.111

iptables -D INPUT -s 111.111.111.111 -j DROP 


Удаляем бан из цепочки fail2ban

iptables -D fail2ban-ASTERISK -s 109.195.52.173 -j DROP 

Можно прописать алиасы в файл .bashrc(или в .bash_aliases) для удобства:

alias ban='iptables -I INPUT -j DROP -s'
alias unban='iptables -D INPUT -j DROP -s'

После чего можно гораздо быстрее банить ip адрес командой: ban 111.111.111.111 и снимать бан командой: unban 111.111.111.111