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

Нужно ли повторять параметры правил в 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

решение1

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

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

решение2

Если вы хотите разрешить 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

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

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

Связанный контент