다음과 같은 규칙이 있습니다 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
추가 조사 결과, 웹 서버 액세스 로그에는 위의 IP 주소 75-100에 해당하는 이전 수신 연결이 있었던 것으로 나타났습니다.
위의 연결이 conntrack 모듈에 의해 설정된 것으로 분류되지 않는 이유는 무엇입니까? 소음을 어떻게 걸러낼 수 있나요?
답변1
내 이해에 따르면 TCP 연결은 ESTABLISHED
상태 에만 들어갑니다.뒤쪽에이미 ACK
완료되었습니다. 이러한 ACK
패키지는 정확히 귀하가 거기에 기록(및 차단)한 것입니다.
http://www.iptables.info/en/connection-state.html#TCPCONNECTIONS
시도해 보셨나요 --ctstate ESTABLISHED,RELATED
?
말씀하신 대로 "비정기적인" 로깅에만 관련하여 dmesg/syslog는 모든 패킷을 캡처하지 않습니다. 유사한 메시지가 너무 많이 수신되면 로그 플러딩을 방지하기 위해 해당 메시지가 삭제됩니다. 이는 구성 가능하지만 이 질문의 범위를 벗어납니다.