
Я хочу регистрировать все внешние, не наши IP-блоки, соединения с портом. Для одного диапазона правило выглядит так:
-A INPUT ! -s 10.20.0.0/16 -p tcp -m tcp --dport 8443 -m state --state NEW -j LOG --log-level 1 --log-prefix "New 8443 Connection"
Логически идея заключается в том, чтобы не регистрировать соединения с портом 8443
, если они исходят из 10.20.0.0/16
или 10.30.0.0/16
. Я атакую проблему с неправильной логикой для iptables? Возможно ли это вообще с iptables?
Обратите внимание, что это всего лишь примеры диапазонов IP-адресов, а не те, для которых я хочу прекратить запись в журнал.
решение1
Вы можете использовать ipset:
-A INPUT -p tcp -m tcp --dport 8443 -m set ! --match-set OUR_IP4 src -j LOG
Обратите внимание, что ipset необходимо поддерживать с помощью отдельного инструмента (включая создание/восстановление при загрузке).
Вы можете использовать подцепочку:
-A INPUT -p tcp -m tcp --dport 8443 -j FOOSERVICE
-N FOOSERVICE
-A FOOSERVICE -s 10.20.0.0/16 -j RETURN
-A FOOSERVICE -s 10.30.0.0/16 -j RETURN
-A FOOSERVICE -j LOG --log-prefix "New connection to foo: "
-A FOOSERVICE -j RETURN
# optional; subchains always return at the end