iptables를 사용하여 설정된 TCP 연결 종료

iptables를 사용하여 설정된 TCP 연결 종료

열린 소켓 연결이 있고 들어오는 패킷에 특정 문자열이 포함되어 있으면 즉시 연결을 닫고 싶습니다. iptables를 사용하여 다음을 시도했습니다.

sudo iptables -A INPUT -p tcp --dport 1342 -m string --algo bm --string ".." -j REJECT
sudo iptables -A INPUT -p tcp --dport 1342 -m string --algo bm --string ".." -j DROP

그러나 이들 중 어느 것도 작동하지 않으며 연결이 영구적으로 정지됩니다. 연결을 영구적으로 "끊는" 방법은 무엇입니까?

참고: 테스트 애플리케이션으로 간단한 netcat을 사용했습니다. 먼저 클라이언트와 리스너를 연결한 다음 금지된 문자열을 보냅니다. 이후에는 REJECT 규칙을 사용해도 응답이 수신되지 않으며 이 연결을 통해 더 이상 행을 보낼 수 없습니다.

답변1

이것이 당신에게 도움이 되기를 바랍니다. tcp-reset과 함께 REJECT를 사용합니다.

sudo iptables -A INPUT -p tcp --dport 1342 -m string --algo bm --string ".." -j REJECT --reject-with tcp-reset

그래도 작동하지 않으면 kmp를 시도해 보십시오.

sudo iptables -A INPUT -p tcp --dport 1342 -m string --algo kmp --string ".." -j REJECT --reject-with tcp-reset

관련 정보