
У меня есть следующее правило iptables
:
-A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
так что исходящие соединения, не классифицированные как установленные, будут регистрироваться. Иногда журнал выхода брандмауэра будет захватывать такие пакеты:
09:56:48 DST=a.b.167.208 TTL=64 SPT=80 DPT=25960 WINDOW=119 ACK URGP=0
09:48:48 DST=a.b.166.231 TTL=64 SPT=80 DPT=29861 WINDOW=119 ACK PSH URGP=0
09:29:57 DST=a.b.167.244 TTL=64 SPT=80 DPT=58244 WINDOW=119 ACK URGP=0
При дальнейшем изучении журнала доступа к веб-серверу было обнаружено, что ранее, 75–100-минутными, были входящие соединения, соответствующие указанным выше IP-адресам.
Почему вышеуказанные соединения не классифицируются как установленные модулем conntrack? И что можно сделать, чтобы отфильтровать шум?
решение1
Насколько я понимаю, TCP-соединение переходит только в ESTABLISHED
состояниепослепрошел ACK
, и ACK
пакеты — это именно то, что вы, похоже, там регистрируете (и блокируете).
http://www.iptables.info/en/connection-state.html#TCPCONNECTIONS
Попытался ли ты --ctstate ESTABLISHED,RELATED
?
Если только регистрировать это "иногда", как вы сказали: dmesg/syslog не будет захватывать все пакеты. Если приходит слишком много похожих сообщений, они будут отброшены, чтобы избежать переполнения журнала. Это настраивается, но выходит за рамки этого вопроса.