IPTableとAF_PACKETソケット

IPTableとAF_PACKETソケット

ちょうどセキュリティ問題を発見しました。 IPテーブルのルールを確認し、DHCPトラフィックのルールがないことを確認しました(すべてのチェーンに対してDROPポリシーがあります)。しかし、まだDHCPからIPアドレス、サブネットマスクなどを取得します。仕える人。だから私は学び始め、Wiresharkを実行して検索してみると、DHCPCDがAF_PACKETソケットを使用するので、TCP / IPスタック(?)をバイパスすることがわかりました。

私はそれについてもう少し掘り下げて(AF_PACKET、SOCK_RAW、ETH_P_ALL)と静的HW、IP、およびTCPヘッダ(単なるテスト目的のために)を使用してCで短いプログラムを書いた。 IPTablesホワイトリストにないサーバーからデータを要求してみてください。 IPTablesがそれをブロックする可能性がないという事実を発見したとき、私は少しおっぱいでした。

私はDebian 8 "Jessie"を実行しています。 IPTablesルールで何かを見落としていると思う人のために、インターフェイス、IPアドレス、宛先ポート、プロトコル、ctstateなどに基づいてフィルタリングして、各宛先を非常に具体的に指定する非常に厳しいルールを適用しました.

この問題についてもっと知っている人はいますか?それとも、このトラフィックをブロックしたりホストを離れたりする前に、すべてのトラフィックがTCP / IPスタックとIPTableを通過することを強制するソリューションはありますか?

ベストアンサー1

AF_PACKETを使用するには、root権限(または少なくともCAP_NET_RAW)が必要です。ルートプロセスが何もしないようにすることはしばしば困難です。最善の解決策は、信頼できないプロセスを実行しないことです。

別のアプローチは、すべてのトラフィックがホストを介してルーティングされるように、別々のネットワーク名前空間ですべての(ルート)プロセスを実行することです。このようにして、(名前空間)AF_PACKETトラフィックを(ホストの)IPスタックを介して強制的に送信できます。

おすすめ記事