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.
以下はいくつかの関連質問です。
- iptables – rootとしてルールを追加しないでください (根)
- root権限なしでiptablesを使用する (サーバー障害)
私の考えは両方とも解決策を提供しますが、制限の背後に隠れた根本的な理由については議論しません。
ベストアンサー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
それは問題ではありません。