첫째, 비교적 네트워크 프로그래밍에 익숙하지 않습니다. 서버 응용 프로그램에 도달하기 전에 HTTP 트래픽을 가로 채고 지연시키고 싶습니다. 필자는 libnetfilter_queue에 대해 조사해 보았습니다. libnetfilter_queue는 적절하게 지연시킬 필요가있는 모든 정보를 제공하지만 너무 낮은 수준에서는 제공하지 않습니다. 나는 거기에서 트래픽을 지연시킬 수는 있지만, IP 데이터 그램을 거의 즉시 받아들이지 않으면 (지연시킬 때 스택에 전송하므로) ACK가 도착하지 않을 때 재전송을하게된다.전송 계층 위의 가로 채기 트래픽
TCP를 처리하고 싶지 않거나 필요없는 페이로드 만 제공합니다. 그래서 내 질문은 목적지에 도달하기 전에 특정 포트에서 트래픽을 가로채는 방법이지만 TCP가 확인하고 확인한 후에 어떻게해야합니까?
감사
편집 : 희망이 태그와 libnetfilter_queue에서 명백하다 -이 리눅스
입니다
패킷의 내용을 변경하고 싶습니까? –
아니요 - 나중에 변경하지 않고 지연시키고 보냅니다. – Ray2k
지금 당장 생각해 볼 수있는 가장 좋은 아이디어는 다음과 같습니다. iptables -A PREROUTING -t nat -p tcp -dport 80 -j REDIRECT --to-port 1024 그러면 포트 1024에서 읽을 수 있으며 실제 각 연결마다 포트 80 (두 번째 시간을 우회합니까?). 그런 다음 내가하고 싶은 일을하고 싶을 때 포트 80에 씁니다. 나는 응답을 너무 전달해야 할 것이다 (나는 그들을 지연시키고 싶지 않다). 정말 끔찍한 생각처럼 들립니다. 이견있는 사람? – Ray2k