在CentOS系統中,使用iptables來拒絕外部訪問可以通過添加相應的規則來實現。以下是一些基本的步驟和示例,用于配置iptables以拒絕外部對特定端口或服務的訪問。
首先,你可以查看當前的iptables規則,以便了解現有的配置:
sudo iptables -L -n -v
如果你想完全拒絕所有外部訪問,可以使用以下命令:
sudo iptables -P INPUT DROP
這會將默認的INPUT鏈策略設置為DROP,從而拒絕所有傳入的數據包。
如果你只想允許特定的IP地址訪問你的服務器,可以使用以下命令:
sudo iptables -A INPUT -s <允許的IP地址> -j ACCEPT
例如,允許IP地址為192.168.1.100
的訪問:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
如果你想拒絕外部對特定端口的訪問,可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport <端口號> -j DROP
例如,拒絕外部對端口80
(HTTP)的訪問:
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
如果你想拒絕外部對特定服務的訪問,可以使用以下命令:
sudo iptables -A INPUT -p <協議> --dport <端口號> -j DROP
例如,拒絕外部對SSH服務(默認端口22)的訪問:
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
在CentOS 7及以上版本中,iptables規則默認不會保存到重啟后仍然有效。你可以使用以下命令來保存規則:
sudo systemctl restart iptables
或者使用firewall-cmd
命令(如果你使用的是firewalld):
sudo firewall-cmd --runtime-to-permanent
如果你想恢復默認的iptables規則,可以使用以下命令:
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
請注意,修改iptables規則時要非常小心,因為錯誤的配置可能會導致服務器無法訪問。建議在修改規則之前備份當前的iptables配置,并在測試環境中驗證新規則的效果。