iptables
是 Linux 系統中用于配置內核防火墻的一個命令行工具。通過 iptables
,你可以定義規則來允許或拒絕網絡流量。以下是一些基本的步驟和示例,幫助你開始配置 iptables
防火墻規則。
首先,你可以查看當前的 iptables
規則,以確保沒有沖突的規則存在。
sudo iptables -L -n -v
如果你是從頭開始配置,或者需要重置現有的規則,可以使用以下命令清空所有規則:
sudo iptables -F
sudo iptables -X
你可以為不同的鏈(如 INPUT
、OUTPUT
和 FORWARD
)設置默認策略。例如,設置為拒絕所有進入的流量,但允許所有出去的流量:
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
確保本地回環接口(lo)的流量被允許:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
允許已建立的連接和相關的數據包通過:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
如果你需要通過SSH遠程管理服務器,允許SSH連接(默認端口22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
如果你需要允許Web流量,允許HTTP(端口80)和HTTPS(端口443)連接:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
如果你只想允許特定IP地址訪問你的服務器,可以使用以下命令:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
iptables
規則在系統重啟后會丟失,因此你需要保存規則。不同的Linux發行版可能有不同的方法來保存 iptables
規則。
在Debian/Ubuntu系統上:
sudo iptables-save > /etc/iptables/rules.v4
在Red Hat/CentOS系統上:
sudo service iptables save
或者使用 firewall-cmd
工具(適用于firewalld):
sudo firewall-cmd --runtime-to-permanent
如果你已經保存了規則,可以在系統啟動時自動加載它們。例如,在Debian/Ubuntu系統上:
sudo iptables-restore < /etc/iptables/rules.v4
在Red Hat/CentOS系統上:
sudo systemctl enable iptables
通過以上步驟,你可以開始配置 iptables
防火墻規則。根據你的具體需求,可以進一步調整和擴展這些規則。