在Debian系統中,iptables
是一個用于配置Linux內核防火墻(netfilter)規則的工具。通過iptables
,你可以管理不同的鏈(chains),這些鏈定義了數據包在網絡棧中的處理流程。以下是一些常用的iptables
命令和概念,幫助你管理鏈:
INPUT
:處理進入本機的數據包。OUTPUT
:處理從本機發出的數據包。FORWARD
:處理經過本機轉發的數據包。PREROUTING
:用于目標地址轉換(DNAT)。POSTROUTING
:用于源地址轉換(SNAT)。查看所有鏈的規則:
sudo iptables -L -n -v
-L
:列出規則。-n
:以數字形式顯示地址和端口。-v
:詳細模式,顯示更多信息。查看特定鏈的規則:
sudo iptables -L INPUT -n -v
添加規則:
INPUT
鏈的末尾添加一條規則,拒絕所有來自特定IP的流量:sudo iptables -A INPUT -s 192.168.1.100 -j DROP
INPUT
鏈的開頭添加一條規則,允許SSH連接:sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
刪除規則:
INPUT
鏈中第一條規則:sudo iptables -D INPUT 1
sudo iptables -L INPUT --line-numbers -n -v
sudo iptables -D INPUT <規則編號>
清空所有鏈的規則:
sudo iptables -F
-F
:清空指定鏈的所有規則。-t <表>
:指定表(如filter
、nat
、mangle
)。保存規則:
Debian系統通常使用iptables-persistent
來保存和恢復iptables
規則。
iptables-persistent
:sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
假設你想允許來自特定IP的SSH連接,并拒絕所有其他SSH連接,可以這樣做:
允許特定IP的SSH連接:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
拒絕所有其他SSH連接:
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
通過這些命令,你可以靈活地管理Debian系統中的iptables
鏈和規則。記得在修改防火墻規則時要小心,以免意外阻止必要的網絡流量。