私のネットワークで特定の種類のインターネットトラフィックをフィルタリングするシステムを作成しようとしています。基本的に、私はインターネットに行くパケットを調べて、それを通過させるのか、それを破棄するのかを選択できるようにしたいです(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
。