2017-02-23 2 views
0

일부 URL에 대해 netfilterNF_INET_LOCAL_OUT 체인을 차단하려면 일부 패킷에 대해 NF_DROP을 반환하면 동일한 요청에 대해 여러 패킷이 전송됩니다. 동일한 URL을 차단하는 원치 않는 프로세스를 피하기 위해 후속 패킷을 중지하고 싶습니다. 같은 URL에 대한 요청을 반복하는 대신에 일부 오류 페이지를 표시 - 내 경우에 즉 웹 브라우저 -netfilter를 사용하여 NF_DROP를 반환 한 후 후속 패킷을 중지하는 방법은 무엇입니까?

NF_DROP 같은 값은 내가 그 요청하므로,이 프로세스를 중지 반환 할 수 있나요?

요청 된 URL을 패킷으로 대체 한 다음 NF_ACCEPT을 반환하여 요청자가 페이지를 가져 와서 요청을 중지하도록 할 수 있습니까?

답변

0

클라이언트 (귀하의 경우 - 브라우저)는 그가 보낸 내용이 서버에서 받아 들여지지 않은 이유를 알지 못합니다. 클라이언트는 ack를 얻을 것으로 예상했으나 그렇지 않았습니다. 그래서 그는 계속해서 요청을 다시 보낸다. 요청을 중지하기 위해 클라이언트 (서버의 IP 주소 포함)로 재설정 패킷을 보내야합니다. 오류 페이지를 표시하는 것은 더 복잡하지만 가능합니다.

+0

감사합니다. 커널 공간에서 패킷을 사용자 공간 throuch'netfilter'에 대기시킨 다음 처리 후 오류 HTML 페이지를 클라이언트에 보냄으로써이 문제를 해결했습니다. –

+0

이것은 좋지만 패킷을 훔치고 IP 주소와 포트를 다시 작성하고 RST 플래그를 올리며 IP와 TCP의 체크섬을 수정하고 NF_ACCEPT를 리턴 할 수 있습니다. –

관련 문제