特定のuid(root、apache、nobody)の発信接続をブロックする


8

CentOS 5および6 Linuxのiptablesで、rootapache、または誰も実行していないプロセスが発信接続を開始しないようにするにはどうすればよいですか?

CentOS 5 Linuxでは、次の行を/ etc / sysconfig / iptablesに入れてみました。

-A OUTPUT -m owner --uid-owner root -j DROP
-A OUTPUT -m owner --uid-owner apache -j DROP
-A OUTPUT -m owner --uid-owner nobody -j DROP

しかし、残念ながらエラーが発生します:

# sudo service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: owner: Bad value for "--uid-owner" option: "apache"
Error occurred at line: 27
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                           [FAILED]

iptablesを使用してそれを行うことはできません。iptablesはipパケットのみをチェックし、そこにuid / gidに関する情報はありません。iptablesは、送信元/宛先フィールド、ポートなどによってのみパケットをブロックできます
Goez

OpenBSDのpfがそれを実行できることを知っています。また、Linux iptablesにも-m所有者がいるようです。それであなたは間違っているのでしょうか?
Alexander Farber

マンページを確認すると、-mは一致(モジュール)を表し、所有者を表すものではありません。プロセスの所有者用のモジュールが存在する可能性があります。
Goez

私の理解では、「-m所有者は」iptablesのに言う:「私たちは物事を行うことができますので、 『所有者』モジュールをロードしてください」
アレクサンダー・ファーバー

チェックしたばかりですが、実際には所有者モジュールがあります。これまで聞いたことがない。しかし、これは数値IDで機能するため、ルールを変更する必要があります
Goez

回答:


8

名前の代わりに数値のUIDを使用してみてください。例えば:

-A OUTPUT -m owner --uid-owner 400 -j DROP

の代わりに

-A OUTPUT -m owner --uid-owner apache -j DROP

次のように入力してUIDを見つけることができます

id user
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.