使用 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
進行的動作,有ACCEPT
REJECT
DROP
prot
封包協定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
|