Инфа по IPTABLES:

iptables -L
Iptables -L --line-numbers  # посмотреть правила с нумерацией строк

3 цепочки IPTABLES:

INPUT - входящий траффик

FORWARD - транзитный траффик

OUTPUT - исходящий траффик

Установка базовой политики IPTABLES (POLICY):

Политика - это базовое правило по умолчанию, которое работает, если других правил нет.

iptables INPUT -P ACCEPT # разрешить весь входящий траффик
iptables INPUT -P DROP # запретить весь входящий траффик
iptables OUTPUT -P ACCEPT  # разрешить весь исходящий траффик
iptables FORWARD -P DROP  # запретить весь транзитный траффик

Удаление правил в IPTABLES - FLUSH:

Если в политике входящих/исходящих пакетов не прописано ALLOW, сервер вышибет из SSH сессии после этой команды.

iptables -F # убить вообще все правила, кроме базовых политик

Добавление (APPEND) правил в IPTABLES:

По интерфейсам:

iptables -A INPUT -i lo -j ACCEPT # разрешить пакеты на входе в loopback интерфейс
iptables -A INPUT -i eth0 -j ACCEPT # разрешить пакеты на входе eth0
iptables -A INPUT -i ppp0 -j ACCEPT # разрешить пакеты на входе по модемному соединению

По статусу пакетов:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 
подгрузить модуль (-m) инспекции пакетов, разрешить пакеты на вход лишь 
со статусами ESTABLISHED и RELATED из уже установленных сессий. К новым 
пакетам (статус NEW) правило не применяется.

По портам:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT # разрешить порт SSH, dport = "destination port", sport = "source port"
iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT # разрешить группу TCP портов с 6881 по 6890

По IP адресам, подсетям, MAC-адресам:

iptables -A INPUT -s 192.168.0.4 -j ACCEPT # разрешить пакеты с одного IP
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT  # разрешить пакеты из подсети
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT # разрешить пакеты из подсети
iptables -A INPUT -s 192.168.0.4 -m mac --mac-source 00:50:8D:FD:E6:32 -j ACCEPT # фильтр по IP и по MAC

Комбинирование правил:

iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT # разрешить SSH только с выбранной подсети IP

Удаление правил:

iptables -D <chain-name> <line-number> | <rule>  # 
удалить правило с цепочке по номеру строки или правилу (правило должно 
четко соответствовать существующему)

Применение и сохранение правил в IPTABLES:

sudo ./sbin/service iptables save
  • Нет меток