iptables: 원치 않는 패킷을 차단하려면 "conntrack" 및 "recent" 모듈을 사용하세요.

iptables: 원치 않는 패킷을 차단하려면 "conntrack" 및 "recent" 모듈을 사용하세요.

패킷과 기타 모든 항목만 허용하면 RELATED방화벽 규칙이 문제 없이 잘 실행됩니다 .ESTABLISHEDDROP

### VARIANT A
-A INPUT -i wlan0 -m conntrack   --ctstate RELATED,ESTABLISHED       -j ACCEPT
-A INPUT -i wlan0                                                    -j   DROP

IP그러나 나는 한 단계 더 나아가 나에게 전송된 모든 "원치 않는" 패킷을 블랙리스트에 추가 하고 싶습니다 . 규칙을 수정했습니다.

### VARIANT B
-A INPUT -i wlan0 -m recent --name PORTSCAN --update --seconds 3600  -j   DROP
-A INPUT -i wlan0 -m conntrack   --ctstate RELATED,ESTABLISHED       -j ACCEPT
-A INPUT -i wlan0 -m recent --name PORTSCAN --set                    -j   DROP

규칙이 작동하는 방식은 다음과 같습니다.

Rule 1: checks whether IP address is already blacklisted and drops it if yes
Rule 2: allows RELATED,ESTABLISHED packets
Rule 3: all other packets which fail RELATED,ESTABLISHED test are blacklisted

이러한 규칙은 99.9% 예상대로 작동하지만 소수의 사이트에만 문제가 있습니다. Stack Exchange 웹사이트가 그러한 예 중 하나입니다. stackexchange.com이 나에게 패킷을 보내는 것 같지만 conntrack모듈이 해당 패킷을 관련성이 있거나 확립된 것으로 인식하지 못하는 것 같습니다. 따라서 이러한 패킷은 통과하지 못하고 rule 2블랙리스트에 추가됩니다 rule 3.

이는 일반적으로 편집 모드에 있을 때 발생합니다(예: 질문을 하거나 기존 질문을 편집하는 경우).

이 경우 블랙리스트를 새로 고쳐야 합니다.

echo / >/proc/net/xt_recent/PORTSCAN

그런 다음 모든 것이 정상으로 돌아갔습니다.

이 문제에 대한 두 가지 가능한 설명이 있습니다.

a) the conntrack module is deficient, in that it does not recognize
   legitimate packets as being RELATED/ESTABLISHED
b) SE websites are indeed sending unsolicited packets

b나는 다음과 같은 추론으로 인해 이것이 옳을 가능성이 더 높다고 생각합니다 .

내 iptables 규칙의 변형 A는 인식하지 못하는 모든 패킷을 삭제합니다 RELATED/ESTABLISHED. 모든 것이 잘 실행되고 있기 때문에 이러한 패킷은 내 세션에 필요하지 않습니다. 이것은 실제로 원치 않는 패킷이므로 처음부터 나에게 전송되어서는 안 됩니다.

내 iptables 규칙의 변형 B는 한 단계 더 나아가 위반 사항을 "처벌" IP하고 이를 블랙리스트에 추가합니다.

Q: SE 사이트에도 적용되도록 iptables 규칙을 어떻게 수정합니까?

문제 분석에 대한 의견도 감사하겠습니다.

Meta.unix.stackexchange.com에 대한 내 관련 게시물은 다음과 같습니다. stackexchange.com이 원치 않는 패킷을 보냅니다(따라서 방화벽에 의해 차단됨).

관련 정보