使用 Linux 的 iptables 指令實作防火牆
- Example
防火牆最基本的規則就是檔掉全部,只開放所需要的服務。實際的設定流程如下:
- 清除所有規則
- 設定預設政策
- 信任本機
- 回應封包
- 信任用戶
- 設定例外規則
通常都會寫成 shell script 來執行
Show
最簡單的語法,看目前規則:
# iptables -L -n
-t後面接 table,如net/filter,如果沒加,會列出預設的filter-L列出目前的 table 規則-n不進行 IP 與 HOSTNAME 的反查,速度會比較快-v列出更多資訊
比方說,看 filter 的內容:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
target進行的動作,有ACCEPTREJECTDROPprot封包協定opt額外的選項說明source針對哪個來源 IP 進行限制destination針對哪個目標 IP 進行限制
Clear
清除規則要下三個指令
# iptables -F
# iptables -X
# iptables -Z
-F清除所有的規則-X清除所有自定的 chain / tables-Z將所有計數與流量統計歸零
Default Policy
使用 -P 選項,語法如下:
# iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
一般都是 INPUT 預設會 DROP,如:
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
設定的時候要注意,如果預設設定成
DROP又沒有特別設定哪個規則ACCEPT,會被防火牆擋在外面,然後就等著準備重開電腦了。
Example
|