
Я искал и искал, но не смог найти никакой информации о том, как комбинируются параметры iptables.
Если я хочу сопоставить трафик с IP-адреса или на него, могу ли я сделать -s a.b.c.d -d a.b.c.d
? То есть, объединены ли параметры -s
и как-d
или(пакет соответствует любому) илии(пакет соответствует всем)?
Немного связано, как взаимодействуют -m iprange
и -s
и -d
? То есть, могу ли я использовать -m iprange --src-range 10.0.0.1-10.0.0.8
для указания диапазона, а затем добавить -s !10.0.0.5
, чтобы сделать исключение?
решение1
Лучший способ узнать — это проверить. Да, вы можете объединить -s
и -d
, однако, имеет ли это смысл, зависит от того, в какой таблице вы используете правило.
Все параметры одного правила AND
. Если хотите OR
, можете создать таблицу, в которую будете отправлять трафик.
Некоторые комбинации могут привести к ошибкам, поэтому лучше всего попробовать.
Допустим, ваша политика — принять, и вы хотите сопоставлять только если правило соответствует. Добавьте правило, iptables -A OUTPUT -s x.x.x.x -d x.x.x.x -j ACCEPT
так как цель будет такой же, как по умолчанию, оно не окажет никакого влияния, но оно будет отображаться iptables -vnL
и иметь счетчики.
Есть более продвинутое ведение журнала и т. д., но это быстрый и простой способ быстрой проверки правил. (И, конечно, tcpdump — ваш друг)
В отношении iprange
я бы снова сказал, что лучше всего протестировать. В худшем случае попытка добавить правило приведет к ошибке. (надеюсь, кто-то другой сможет дать вам лучшие ответы на эту часть вашего вопроса)