巧用iptables建立Linux防火墻
iptables能幫助Linux建立防火墻,具體的步驟如下:
如果你剛剛開始在Linux系統上啟用一個防火墻,筆者建議你試用這樣一個工具,如lokkit(它在Fedora/RedHat / Ubuntu等操作系統中是可用的)。它可以作為一個向導,讓你一步一步地領略配置防火墻的過程。要使用這個工具,請運行此命令:gnome-lokkit
你可以從下面的鏈接得到此工具的詳細信息或下載此工具:
不過,你可能對一個GUI(圖形用戶界面)的工具更感興趣,而不是使用命令行工具來對iptables作出改變。如果你喜歡圖形化的工具,現在互聯網上有不少這樣的工具。不妨到freshmeat.net找一下。
Iptables簡介
對于那些不知道或不清楚iptables的人來說,這個Linux工具可以控制網絡數據包,允許你借助于一套規則來對網絡相關的事項執行精細控制,此工具本身已經出道有一段時間了。
在你用iptables命令開始創建規則之前,你還需要知道如果服務器重啟的話,你創建的規則會丟失。由于這個原因,多數服務器管理員將其所用的iptables命令運用于一個服務器每次重啟時運行的命令過程。對于某些Linux版本,你還可以像下面這樣來運行一個命令:
service(服務) iptables save(保存)
這就保證可以保存你的配置,并且在啟動時自動加載。
開始工作
要使用iptables,你應當將規則運用于進入或發出的網絡數據包,或者通過你的服務器轉發的數據包。
要查看目前運用于服務器的數據包,鍵入命令:
iptables -L
iptables基礎
構建可正常發揮功能的防火墻規則依賴于你對服務器是如何運行的一些知識。
對于一個安全的服務器而言,最好先建立一個可以禁止所有進入通信的規則。一旦你這樣做了,那么你可以建立一些明晰的規則,使其只允許如80號端口等例外端口的請求。這樣做比你設法過濾想阻止的內容更加容易理解,也更容易配置,因為那樣的話你可能會遺漏一些重要或者危險的東西,例如一個開放的可被用于攻擊你的服務器的端口。
此外,將iptables與一個硬件防火墻結合使用也是很有益的,因為這會提供多層安全,并會減少你在配置中遺漏某些東西的可能性。
記住,你可以用命令man iptables得到所有的語法信息。
使用防火墻規則
下面讓我們看三個示例性的規則及其核心部分。不過,需要注意,我們文章中的一些較長的命令有自動換行,因此你要確保鍵入了一個完整的命令,而不是僅僅一行命令。
iptables -P INPUT DROP
這個命令很容易,并且很安全。它對iptables工具進行了初始化,然后對所有進入(input)的數據包設置了一個策略(Policy(-P))。這個策略就是丟棄所有的數據包。非常安全。注意,你只能將策略用于iptables的內建命令。
iptables -A INPUT -i lo -j ACCEPT
這條規則比較實用,因為它允許發生在你的本地接口上的網絡通信。注意添加的(-A)選項,因為這不是內建于策略中的一部分。這條新的規則被添加到所有進入的將要到達本地接口(interface:-i)的數據包上。這條規則要準許所有這些數據包(-j ACCEPT)。通常情況下,如果你碰到配置和安裝應用程序方面的問題,這將開始于你準許本地主機的連接性,如下所示:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
這個命令還將一條規則添加(-A)到所有通過以太網接口(-i eth0)進入(INPUT)的數據包中。不過它只應用于使用TCP協議(-p tcp)的數據包。此規則特別針對進入指定的80號端口(--dport 80)的數據包,而且設置為允許這些數據包通過(-j ACCEPT)。
通過文章的描述,想必大家都學會巧用iptables建立Linux防火墻,希望本文對大家有用!
【編輯推薦】