在 CentOS 系統中,使用 iptables
設置默認策略可以通過以下步驟完成。以下示例將展示如何為 INPUT
、FORWARD
和 OUTPUT
鏈設置默認策略。
在進行任何修改之前,建議先備份當前的 iptables
規則,以便在需要時可以恢復。
sudo iptables-save > /etc/iptables/iptables.backup
使用 iptables
命令為不同的鏈設置默認策略。常見的默認策略有 ACCEPT
(接受)和 DROP
(丟棄)。
sudo iptables -P INPUT DROP
這意味著除了明確允許的規則外,所有進入本機的流量將被丟棄。
sudo iptables -P FORWARD DROP
這將阻止所有未經明確允許的轉發流量。
sudo iptables -P OUTPUT ACCEPT
通常,默認允許本機發起的流量。
根據你的需求,添加規則以允許必要的流量通過。例如:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
CentOS 7 及以上版本使用 firewalld
作為默認防火墻管理工具,iptables
規則在重啟后不會自動保存。你可以使用 firewalld
來持久化規則,或者手動保存 iptables
規則。
如果系統已安裝并啟用了 firewalld
,可以使用以下命令添加規則并使其在重啟后生效:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
如果你更傾向于使用 iptables
并希望規則在重啟后仍然有效,可以安裝 iptables-services
并啟用保存服務:
sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables
然后,使用以下命令保存規則:
sudo service iptables save
或者,手動將規則保存到 /etc/sysconfig/iptables
文件中。
使用以下命令查看當前的 iptables
規則,確保設置正確:
sudo iptables -L -v -n
DROP
可能會導致無法遠程訪問服務器,除非你已經允許了必要的流量(如 SSH)。通過以上步驟,你可以在 CentOS 系統中使用 iptables
設置默認策略,并根據需要允許特定的網絡流量。