2011-08-09 2 views

答えて

1

私は最も簡単な方法は、iptablesコマンドを発射するためのexec()を使用することだと思います。たぶんあなたのPHPを使ってスクリプトを作成し、それを最後に実行してください。私はIPtablesを制御するための "API"がLinuxディストリビューションの多くの実行可能ファイルだけにあるとは思わない。

+0

PHPをWebインターフェイス経由でrootとして実行しています。 – ThiefMaster

+0

私は彼がそれをrootとして実行するべきではないと言っていました。それを避けるためのアイデアは、ルールを作ることである可能性があります。それらを検証する。それらをファイルシステムのどこかに置いて、cronや他のものがrootのものを扱えるようにしてください。まだ怪しいですが、PHPをrootとして実行するよりも優れています。 – Cheesebaron

+0

、私もそのことについて考えていたが、あなたはすべての時間に何か変更/誰かがon.'Basically(私は間違っていない場合)は、全ルールセットを再構築ログ 私が知っている@ThiefMasterを多くのことをフラッシュし、再入力する必要がありますセキュリティで保護された 'ugh'は控えめですが、選択肢はありますか?ちょうどiptables用のユーザーを作成することが可能かどうかは分かりません。 – PvdL

1

:トリッキーな部分はApacheのプロセスと追跡のためにsudoで、残りは標準のPHPとiptablesです。クライアントは特別な権限を持たないHTTP APIを使うことができるので、PHPのcurlを使ってrfwにコマンドを送ることができます。

サンプル・コマンド:

PUT /drop/input/eth0/11.22.33.44 

に対応:

iptables -I INPUT -i eth0 -s 11.22.33.44 -j DROP 

免責事項:私はそのプロジェクトを開始しました。

+0

非常にクールなプロジェクトに、その後のpythonにデータを送信してみましょうすることです!私はあなたのlicense.txtを愛しています;) – jhexp

+0

気軽にコピーしてください。ライセンス自体もMITライセンスです。私は、このすべての不当なライセンス供与が必要ない日を見るのに十分長く生きることを望む。 –

関連する問題