Как я могу реализовать белый список для определенного порта с помощью iptables?

Я пытаюсь реализовать набор правил с использованием iptables, который по умолчанию блокирует входящий трафик с заданным dport , но разрешает входящий трафик, если исходный IP или MAC-адрес находится в определенном белом списке.

Пока мне известно только о возможности применить глобальную политику DROP к цепочке ( INPUT / OUTPUT и т. Д.), но я не уверен, как применять такую ​​политику к входящим соединениям только на определенном порту.

0
01.09.2017, 00:53
2 ответа

Судя по вашему описанию, это довольно простая проблема в iptables. Я бы подошел к этому в три этапа.

Добавьте новую цепочку для своей политики:

iptables -N MYCHAIN

Определите список портов в цепочке INPUT для порта назначения, который вы хотите обработать:

iptables -A INPUT -p <protocol, either tcp or udp> -m <again, protocol, match the '-p' switch value> --dport <portnum> -j MYCHAIN

Это определяет конкретные порты, а затем «переходит» к правила для именованной цепочки (в данном случае MYCHAIN).

Теперь настройте правила в MYCHAIN, чтобы разрешить / запретить трафик на описанные порты.

iptables -A MYCHAIN -s <source_IP> -j ACCEPT
iptables -A MYCHAIN -s <other_source_IP> -j ACCEPT
iptables -A MYCHAIN -J DROP

В последнем правиле вы, конечно, можете использовать REJECT вместо DROP. Руководство пользователя ( man iptables ) должно показать вам дополнительные параметры, которые вы можете использовать для регистрации или ограничения трафика, который вы видите. Есть также несколько онлайн-руководств по более сложным правилам.

4
28.01.2020, 02:34

Установите политику по умолчанию. Пакеты, соответствующие ни одному из приведенных ниже правил, по умолчанию отбрасываются:

iptables -P INPUT DROP

Создать настраиваемую цепочку. Мы собираемся передать пакеты, удовлетворяющие заданным условиям (например, с адресом источника 10.0.0.1), в эту цепочку:

iptables -N CUSTOM

Принять соединения, которые уже установлены, и принять соединения на интерфейсе обратной связи:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

Передать новые соединения TCP из 10.0. 0.1 (поступает на интерфейс eth0) в цепочку CUSTOM:

iptables -s 10.0.0.1 -i eth0 -p tcp -m conntrack --ctstate NEW -j CUSTOM

Добавить правила в пользовательскую цепочку, которые принимают определенные порты:

iptables -A CUSTOM -p tcp -m multiport --dports 22,80 -j ACCEPT
0
28.01.2020, 02:34

Теги

Похожие вопросы