2011-11-15 5 views
8

netfilter 후킹을 통해받은 패킷에서 수정 된 패킷을 보낼 수있는 커널 모듈을 만들려고합니다. here 코드 스켈레톤을 사용하고 있습니다. 전달에 DEV는 net_device되고, 내가 만든 원시 소켓되는 socketptr커널 모듈을 통해 패킷 보내기

len = sendpacket(sockptr, dev, IPPROTO_TCP, duplicate, ntohs(dupiph->tot_len)); 

다음 sendpacket 기능이 호출되고

: 나는 단순히이 코드를 사용하여 커널 내부 원시 소켓을 만드는 오전 후킹 (hooking) 기능에 의해 나에게, 그리고 복제는 원래 패킷의 수정 된 복사본이된다.

dev_queue_xmit 호출에서의 리턴은 패킷이 성공적으로 전송되었음을 나타내지 만 전선에서 패킷을 볼 수 없습니다. 나는 두 가지 질문을 가지고있다 : 첫째, 나는 어떤 일이 일어나고 있는지 더 잘 디버그 할 수 있기를 바란다. 또한 소켓 생성을 제대로 처리하는지 또는 누락 된 구성 유형이 있는지 궁금합니다. 이것은 나에게 매우 새로운 것이므로 바보 같은 것을 놓치기 쉽습니다.

+0

"전선에서 패킷을 볼 수 없습니다."라고했을 때의 설명을 설명해 주실 수 있습니까? wireshark 또는 다른 스니퍼 프로그램을 설치하는 것이 좋습니다. – Michel

+0

죄송합니다. 분명히해야합니다. 사용되는 인터페이스는 "venet0"이며, 이는 openvz 컨테이너에서 사용되는 인터페이스입니다. Wireshark를 사용하여 해당 인터페이스에서 트래픽을 관찰했지만 패킷을 보지 못했습니다. – bschulte3

+0

iptables가 그러한 패킷을 전달하도록 올바르게 설정 되었습니까? – Dan

답변

관련 문제