ここで何が起こっているのかを知るのを手伝ってくれる人はいますか?パケット数の追跡を設定するいくつかのルールがあります。ルートとして次のスクリプトを実行すると:
#!/bin/bash
iptables -t mangle -xnvL
期待どおりの出力が得られます。
//snip
233203 199929802 MARK //blah blah blah
//snip
ただし、Apacheとして実行されるcactiの一部としてこれを実行します。現在、Apacheはiptablesを実行できません。これがスクリプトを持っている理由です。SUIDルートとして設定しました:
-rwsr-sr-x 1 root root 37 May 14 23:06 iptables_packet_report.sh
しかし、その後、私はこの出力を取得します:
server # sudo -u apache ./iptables_packet_report.sh
iptables v1.4.2: can't initialize iptables table `mangle': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
明らかに私のカーネルは正常であり、非ルートとして実行しているという事実は何かを台無しにしていますが、その理由はわかりません。[デモ](http://en.wikipedia.org/wiki/Setuid#Demonstrationで SUIDを再確認し、機能していることを確認しました。
server # sudo -u apache ./printid
Real UID = 81
Effective UID = 0
Real GID = 81
Effective GID = 0
私の最終目標は、Apacheとして実行中にiptables -t mangle -xnvLの出力を取得して、cactiを使用してすべてをうまくグラフ化できるようにすることです。