root以外のユーザーとしてiptablesを一覧表示できますか?なぜ?

root以外のユーザーとしてiptablesを一覧表示できますか?なぜ?

iptables --list … root権限なしでこのコマンドを実行できますか?

root以外のユーザーとして実行すると、次のものが印刷されます。

$ iptables --list
iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

iptablesをリストするためにルートでなければならないのはなぜですか?セキュリティ問題に関するルールを確認しますか?iptables --list ルートアクセスが必要なリソースやサービスがありますか?

明らかにiptablesファイアウォールルールを変更するには権限が必要です。視聴してもいいか聞きたいです。


ルールを一覧表示できるルート以外の機能はありますか? iptablesはnetlinkを使用してカーネルと対話しますか?なぜならウェブリンク(7)話す

有効なUIDのみ0または CAP_NET_ADMIN Netlinkマルチキャストグループを送受信する機能。

たぶんこれはiptablesでは動作しないかもしれません。

これが正しいアプローチであるかどうかはわかりませんが、関数を追加してもルールを一覧  iptables 表示することはできません。

bash-4.1$ echo $UID
2000
bash-4.1$ getcap /sbin/iptables-multi-1.4.7
/sbin/iptables-multi-1.4.7 = cap_net_admin+ep
bash-4.1$ /sbin/iptables-multi-1.4.7 main --list
FATAL: Could not load /lib/modules/3.10.0-514.21.1.el7.x86_64/modules.dep: No such file or directory
iptables v1.4.7: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded. 

以下はいくつかの関連質問です。

私の考えは両方とも解決策を提供しますが、制限の背後に隠れた根本的な理由については議論しません。

ベストアンサー1

iptablesテーブルを読み取るにはCAP_NET_RAWとCAP_NET_ADMINが必要です。頑張った

$ cp /usr/sbin/iptables ~/iptables  # note, it may be a symbolic link
$ sudo setcap CAP_NET_RAW,CAP_NET_ADMIN+ep  ~/iptables
$ ~/iptables  -nvL

それは問題ではありません。

おすすめ記事