1

Есть ли способ добавить правило в iptable для блокировки трафика, не указанного / не охваченного во всех других правилах? Я знаю, что мы можем использовать! блокировать определенные порты и IP-адреса, но в моем iptable слишком много правил, чтобы индивидуально решать каждое правило.

Спасибо

3 ответа3

1

Правила, указанные Давидго и Кибернардом, верны, и Кибернард правильно их размещает. Позвольте мне объяснить, почему.

Правила Iptables применяются последовательно: сверху вниз. Как только обнаруживается, что это относится к рассматриваемому пакету, применяется действие, указанное в этом "первом" правиле, и все следующие правила игнорируются.

Таким образом, типичная структура списка правил iptables включает в себя "правило по умолчанию", которое остается последним. Это правило по умолчанию, то есть то, которое мы применяем, когда все остальные правила неприменимы, поэтому мы должны оставить его последним. Если правилом по умолчанию является правило DROP, то все предыдущие правила будут только правилами ПРИНЯТЬ. Затем любой пакет, к которому не применяется правило ACCEPT, должен быть отброшен, и об этом заботится правило по умолчанию. Другими словами, если правило по умолчанию - DROP, то вам нужны только правила ПРИНЯТЬ, а если правило по умолчанию - ПРИНЯТЬ, то вам нужны только правила DROP.

Наконец, вы можете достичь той же цели, используя инструкцию

iptables -P INPUT -J DROP

которая определяет "политику по умолчанию" (-P) для цепочки INPUT, и этой политикой по умолчанию является DROP. Он имеет тот же эффект, что и правила, рассмотренные выше, но его использование более ограничено (см. Справочную страницу Linux для iptables здесь)

0

Вы создаете свои правила с помощью метода accept.

iptables -A INPUT <good traffic> -J ACCEPT
iptables -A INPUT <good traffic> -J ACCEPT
iptables -A INPUT <good traffic> -J ACCEPT
iptables -A INPUT <good traffic> -J ACCEPT
iptables -A INPUT DROP

Последняя вещь отбрасывает все, что вы не приняли ранее. Установка становится более сложной, если у вас более 1 ник.

Чтобы упростить настройку, вы должны использовать цепочки, если вы еще этого не сделали.

iptables -A INPUT -i eth0 -j input_eth0
iptables -A INPUT-i eth1 -j input_eth1
iptables -A INPUT-i eth2 -j input_eth2

так далее

Тогда вы продолжаете, как я предложил.

iptables -A input_eth0 <good traffic> -J ACCEPT
... 
iptables -A input_eth0 -J DROP

iptables -A input_eth1 <good traffic> -J ACCEPT 
iptables -A input_eth1 -J DROP

Кроме того, эти правила в верхней части списка сохранят, чтобы существующий трафик, исходящий из вашей сети, существовал и свободно входил в вашу сеть.

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
0
$IPTABLES -A INPUT -j DROP   
$IPTABLES -A OUTPUT -j DROP
$IPTABLES -A FORWARD -j DROP 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .