앱을 사용하여 네트워크 트래픽 필터링

앱을 사용하여 네트워크 트래픽 필터링

내 네트워크에서 특정 유형의 인터넷 트래픽을 필터링하는 시스템을 만들려고 합니다. 기본적으로 저는 인터넷으로 가는 패킷을 검사하고 이를 통과시킬지 아니면 그냥 삭제할지 선택할 수 있기를 원합니다(UDP 패킷을 생각해 보세요).

결정 규칙은 매우 복잡하며 단순한 방화벽 규칙으로 작성할 수 없습니다. 나는 이 결정을 내리는 프로그램을 작성하고 싶습니다.

저는 Linux 시스템을 구축하고 arpspoof를 사용하여 모든 네트워크 트래픽이 시스템을 통해 흐르도록 했습니다. /proc/sys/net/ipv4/ip_forward를 0 또는 1로 설정하여 모든 트래픽이 전달되는 것을 차단하거나 모든 트래픽이 통과하도록 허용할 수 있다는 것을 알고 있습니다. 간단한 작업을 수행하기 위해 방화벽 규칙을 작성할 수도 있습니다.

데이터를 전달할지 아니면 삭제할지를 결정하기 위해 내가 작성한 프로그램을 통해 모든 트래픽이 통과하도록 하려면 어떻게 해야 합니까? 어떤 유형의 도구나 시스템에 집중해야 합니까?

답변1

# iptables -A PREROUTING -t nat -j NFQUEUE --queue-num 0

그런 다음 자신만의 사용자 공간 프로그램을 작성하세요. https://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/

하지만 내 생각에는 netfilter가 이미 원하는 모든 기능을 갖추고 있으며 iptables/write 매우 복잡한 규칙을 사용할 수 있습니다 nftables.

관련 정보