Нужно ли повторять параметры правил в iptables?

Предположим, нам нужны некоторые правила ssh в iptables. Но мы также хотим указать другую цепочку для всех правил. Мы могли бы использовать что-то вроде этого:

iptables -t filter -N ssh iptables -t filter -N tcp iptables -t filter -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j tcp iptables -t filter -A tcp -p tcp --dport 22 -m conntrack --ctstate NEW -j ssh iptables -t filter -A ssh -p tcp --dport 22 -m conntrack --ctstate NEW -s 10.10.10.10/32 -m mac --mac-source 10:10:10:10:10:10 -j ACCEPT iptables -t filter -A ssh -p tcp --dport 22 -m conntrack --ctstate NEW -s 11.11.11.11/32 -m mac --mac-source 11:11:11:11:11:11 -j ACCEPT 

Нужно ли указывать все варианты в каждом правиле, или это можно опустить в нижних цепочках? Например, окончательные правила ssh могут выглядеть так:

 iptables -t filter -A ssh -s 10.10.10.10/32 -m mac --mac-source 10:10:10:10:10:10 -j ACCEPT iptables -t filter -A ssh -s 11.11.11.11/32 -m mac --mac-source 11:11:11:11:11:11 -j ACCEPT 

2 Solutions collect form web for “Нужно ли повторять параметры правил в iptables?”

Если вы хотите этого избежать, вам нужна новая цепочка:

 iptables -N sshgroup1 # or reset with iptables -F sshgroup1 if it already exists iptables -t filter -A ssh -s 10.10.10.10/32 -m mac \ --mac-source 10:10:10:10:10:10 -j sshgroup1 iptables -t filter -A sshgroup1 ... -j ACCEPT iptables -t filter -A sshgroup1 ... -j ACCEPT 

Если вы хотите разрешить ssh-подключения только из двух хостов в вашей локальной сети, вы должны сохранить эти правила сверху, чтобы iptables работали быстрее.

 iptables -I INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I INPUT -p tcp --dport 22 -s 10.10.10.10/32 -m mac --mac-source 10:10:10:10:10:10 -j ACCEPT iptables -I INPUT -p tcp --dport 22 -s 11.11.11.11/32 -m mac --mac-source 11:11:11:11:11:11 -j ACCEPT 

В противном случае существует множество комбинаций в зависимости от вашей сети, политик и трафика.

Правило большого пальца: старайтесь избегать повторения правил и минимизации уровня соответствия для более быстрой работы.

  • SNAT с брандмауэром-cmd?
  • IPTables - порт для другого ip и порта (изнутри)
  • Почему эта команда ограничения входа tc не работает? (пропускная способность падает до нуля)
  • Аудит изменений в текущей конфигурации iptables
  • Могут ли правила iptables манипулировать наборами IP-адресов?
  • iptables: последний модуль
  • Не удается получить доступ к webmin из-за несоответствия iptables
  • iptables инфографический
  • Перенести порт на VPN-клиент?
  • Как запустить процесс, если машина не прослушивает порт?
  • Заблокируйте порт Docker и получите доступ к нему по нескольким IP-адресам
  • Linux и Unix - лучшая ОС в мире.