2009-05-06 5 views
3

일치하는 문자열과 함께 udp/tcp 패킷을 삭제하도록 규칙이 설정되어 있습니다. 그러나 libpcap을 사용하여 패킷을 캡처하는 프로그램은 여전히이 패킷을 볼 수 있습니다.iptables 및 libpcap

왜 /, libpcap에 의해 표시되기 전에 패킷을 삭제할 수있는 iptable 규칙이 있어야합니까?

libpcap/tcpdump가보기 전에이 패킷을 버리는데 어쩌면 iptables 규칙 이외의 규칙이 있습니까?

답변

7

Yes, libpcap sees all the packets.. netfilter에서 처리되기 전에 캡처됩니다.

+0

iptables를 제외한 다른 방법으로 libpcap에 도달하기 전에이 패킷을 버리십시오. – Kazoom

+0

LAN이 아닌 패킷 인 경우 라우터에 놓을 수 있습니다. –

+0

또한 libpcap 기반 프로그램은 보통 표준 tcpdump 형식으로 필터를 제공 할 수 있도록합니다. –

-2

netfilter, netfilter가 커널 모듈이기 전에 libpcap가 패킷을 볼 방법이 없으며 사용자 모드에 들어가기 전에 모든 패킷을 처리하므로 커널이보기 전에 패킷을 볼 수도 있습니다. 더 설명해 주시겠습니까? libpcap은 iptables에서 덮어 쓰는 netfilter의 후크 (hook)를 설정할 수도 있습니다. 진짜 문제는 찾고있는 것과 netfilter에서 설정되는 후크는 사소한 것이 아니며 커널 모드에서만 수행 할 수 있다는 것입니다. libpcap이 패킷을 얻는 방법을 조사하십시오.

+0

libpcap은 패킷을 캡처하기 위해 netfilter 후크를 사용하지 않습니다. libpcap은 TCP/IP 스택으로 전달되기 전에 패킷을 캡처합니다. – codingfreak

0

사용중인 netfilter 후크의 우선 순위를 변경하려고 시도 했습니까? 들어오는 패킷에 대해 가장 높은 우선 순위로 연결을 시도하면 패킷 소켓 커널 코드 앞에 패킷을 가져옵니다. 이는 libpcap이 패킷을 캡처하는 방법입니다.

는 * 당신이 리눅스를 사용하는 가정 *

편집 : libpcap의 패킷을 캡처하는 다른 방법으로 사용 - 운영 체제에 따라. 리눅스에서는 netfilter 프레임 워크를 사용하여 커널 코드로 구현 된 패킷 소켓을 사용합니다.