패킷을 드랍(제거, 삭제, 버리기, 무시)하려면 무조건 커널로 가야하나요?

majinman의 이미지

지금 리눅스에서 어플리케이션 차원에서 libpcap을 통해 캡쳐해서 보고 있는데
패킷을 버리거나, 딴데로 보내려고 합니다. 이게 어플리케이션 차원에서만해도 가능한가요?

아니면 커널로 내려가야하나요?

powerson의 이미지


kernel에서 처리를 하면, 성능상으로는 좋긴 하지만, 꼭 kernel에서만 해야 되는 것은 아닙니다. libipq 등을 사용하시면, bridge 상태에서 iptables를 이용해서 원하시는 작업을 하실 수 있습니다. 또한 packet을 보내는 것은 raw packet 생성해주는 library인 libnet을 이용하시면 될 거 같습니다.

------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.

------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.

a287848의 이미지

저희에겐 iptables 도 있고 snort 도 있죠^^

raw 패킷을 보내시려면 nemesis 를 사용하셔도 되죠. 패킷 헤더에 대한 다양한 조작이 가능하니깐요.

Dig it.

Dig it.