Инфа по 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 |