문제

일치하는 문자열이있는 UDP/TCP 패킷을 떨어 뜨리기위한 규칙이 설정되어 있습니다. 그러나 libpcap을 사용하여 패킷을 캡처하는 나의 프로그램은 여전히이 패킷을 볼 수 있습니다.

LibpCap이보기 전에 패킷을 떨어 뜨릴 수있는 규칙은 무엇입니까?

어쨌든 iptables 규칙 이외에도 Libpcap/tcpdump가보기 전에이 패킷을 삭제해야합니까?

도움이 되었습니까?

해결책

예, libpcap은 모든 패킷을 봅니다.. 그들은 NetFilter에 의해 처리되기 전에 체포되고 있습니다.

다른 팁

사용하는 NetFilter 후크의 우선 순위를 변경하려고 했습니까? 들어오는 패킷의 우선 순위가 가장 높은 경우, 패킷 소켓 커널 코드 앞에 패킷이 발생합니다. 이는 LIBPCAP가 패킷을 캡처하는 데 사용하는 방식입니다.

* 나는 당신이 Linux를 사용하고 있다고 가정합니다 *

편집 : LIBPCAP는 OS에 따르면 패킷을 캡처하는 다양한 방법을 사용합니다. Linux에서는 NetFilter 프레임 워크를 사용하여 커널 코드로 구현되는 패킷 소켓을 사용합니다.

LibpCap이 NetFilter 전에 패킷을 볼 수있는 방법이없고, NetFilter는 커널 모듈이며, 사용자 모드를 누르기 전에 모든 패킷을 처리하면 커널이보기 전에 패킷을 볼 수 있습니다. 더 설명해 주시겠습니까? libpcap이 iptables에있는 것을 덮어 쓰는 netfilter에 후크를 설정할 수 있습니다. 실제 문제는보고와 NetFilter의 고리가 설정된 내용이 사소한 것과는 거리가 멀고 커널 모드에서만 수행 할 수 있다는 것입니다. libpcap이 패킷을 어떻게 얻는 지 조사하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top