2011-08-09 21 views

回答

1

我認爲最簡單的方法是使用exec()來觸發IPtables命令。也許用你的PHP來創建一個腳本,然後最後執行它。我不認爲有一個「API」來控制IPtables,只有很多Linux發行版中的可執行文件。

+0

通過Web界面以root身份運行PHP ..呃。 – ThiefMaster

+0

我並不是說他應該以root身份運行它。避免這種情況的想法可能是制定規則。驗證它們。把它們放在文件系統的某個地方,讓cron或其他東西處理根目錄。仍然可疑,但比以root身份運行PHP更好。 – Cheesebaron

+0

我也在考慮這個問題,但是你必須刷新並重新輸入很多東西,每次改變/某人登錄。「基本上重建整個規則集(如果我沒有弄錯) @ThiefMaster我知道,安全'呃'是輕描淡寫,但做出選擇?不知道是否有可能爲iptables創建一個用戶。 – PvdL

1

您可以安裝rfw這是iptables的的REST API和運行作爲具有root權限的服務器。客戶可以使用任何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

非常酷的項目!我愛你的license.txt;) – jhexp

+0

隨意複製。許可證本身也是MIT許可的。我希望活得足夠長,以便看到不需要所有這種許可荒謬的日子。 –