tcpdump 처럼 서버에 들어오는 모든 패킷을 살펴보는 프로그램을 만들어보고 있습니다.
raw socket 을 열고 recv 를 호출하면, 해당 기능이 동작하게 되는데요..
이렇게 제가 간단히 만든 프로그램에서 raw socket 으로 recv 를 한 이후에도 해당 패킷들은 서버내의 다른 프로그램들에게 잘 전달됩니다. tcpdump 를 작동시켰다고 tcpdump 가 패킷을 중간에 drop 하지 않는것 처럼 말이죠..
궁금한 점은 아래입니다. (사실 위에서 특정 프로세스가 읽고나서도 다른 프로세스가 또 읽는다는게 TCP , UDP, SCTP 등을 사용하는 프로그래밍만 해본 저로서는 좀 이상하기도 합니다. L4 에서는 특정 포트에 대해 binding 을 한 프로세스만 할 수 있어서 그런건지..)
이때, 특정 패킷에 대해서는 iptables 에서 패킷을 drop 하는것 처럼 다른 프로세스들이 읽지 못하게 하려면 어떻게 해야 하는가 입니다.