RST 삭제 및 NOTRACK 사용

RST 삭제 및 NOTRACK 사용

나는 나만의 방화벽을 구축하고 있습니다. 사용자 공간 TCP/IP 스택을 구축한다고 가정해 보겠습니다.

그러나 커널이 인식하지 못하는 패킷을 수신하면 커널은 RST + ACK를 보냅니다(ACK가 전송되었는지 확실하지 않음(업데이트: 실제로 ACK가 전송된 것으로 나타남)).

포트를 열지 않기 때문에 커널의 기본 동작을 재정의할 수 있는 방법이 필요합니다.

나가는 RST를 차단하기 위해 IP 테이블을 사용할 것을 제안하는 사람들을 찾았고 NOTRACK 사용을 제안하는 답변도 찾았습니다.

NOTRACK의 작동 방식이나 장점과 단점을 모르겠습니다. RST를 차단하면 연결을 종료해야 하기 때문에 또 다른 문제가 발생하지만 RST를 차단하면 내 RST를 보내기가 어려워집니다.

iptables -t raw -A PREROUTING -p tcp --port 8080 -j NOTRACK

내 가설은 이 규칙이 커널이 포트 8080에서 들어오는 패킷을 제어하는 ​​것을 방지한다는 것입니다. 이것이 사실이라면 RST를 차단하는 것보다 훨씬 나을 것입니다.

고쳐 쓰다:

실제로 이것을 Wireshark로 테스트했습니다. NOTRACK 규칙을 추가한 후에도 여전히 RST가 전송되므로 NOTRACK의 용도가 무엇인지 잘 모르겠습니다.

iptables -t raw -A PREROUTING -p tcp --sport 443 -j NOTRACK

답변1

NOTRACK연결 추적에서 연결이 추적되지 않도록 합니다.

관련 정보