配置服務器防火墻規則(開放/關閉端口)是服務器安全管理的基礎操作,不同操作系統和防火墻工具的配置方式有所不同。以下是主流系統的詳細操作指南:
一、Linux系統(iptables/firewalld/UFW)
1.?iptables(傳統方式)
# 查看當前規則 sudo iptables -L -n# 開放端口(如80/TCP) sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT# 關閉端口(如3306/TCP) sudo iptables -A INPUT -p tcp --dport 3306 -j DROP# 保存規則(CentOS/RHEL) sudo service iptables save # 或(Ubuntu/Debian) sudo iptables-save > /etc/iptables.rules
2.?firewalld(CentOS/RHEL 7+)
# 開放端口 sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload# 關閉端口 sudo firewall-cmd --zone=public --remove-port=3306/tcp --permanent sudo firewall-cmd --reload# 查看已開放端口 sudo firewall-cmd --list-ports
3.?UFW(Ubuntu/Debian簡化工具)
# 啟用UFW sudo ufw enable# 開放端口 sudo ufw allow 22/tcp # SSH sudo ufw allow 80/tcp # HTTP# 關閉端口 sudo ufw deny 3306/tcp # MySQL# 查看規則 sudo ufw status numbered
二、Windows系統
1.?通過防火墻圖形界面
打開?控制面板 > Windows Defender 防火墻 > 高級設置
選擇?入站規則 > 新建規則
選擇?端口 > TCP/UDP,輸入端口號(如80)
選擇?允許/阻止連接,設置作用域(公用/私有/域)
命名規則并保存
2.?通過PowerShell命令
powershell
# 開放端口(如80/TCP) New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow# 關閉端口(如3389/TCP) Remove-NetFirewallRule -DisplayName "Remote Desktop"
三、云服務器(安全組配置)
1.?萊卡云/騰訊云/AWS
登錄云控制臺,進入?安全組管理
添加規則:
協議類型:TCP/UDP/ICMP
端口范圍:單個(80)或范圍(8000-9000)
授權對象:0.0.0.0/0(開放公網)或指定IP
綁定到目標服務器實例
2.?快速命令示例(AWS CLI)
aws ec2 authorize-security-group-ingress \--group-id sg-xxxxxx \--protocol tcp \--port 22 \--cidr 203.0.113.0/24
四、關鍵注意事項
最小權限原則
僅開放必要端口(如Web服務:80/443,SSH:22)。
避免開放高危端口(如135-139、445、3389)。
端口偽裝(安全增強)
# 修改SSH默認端口(Linux) sudo sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config sudo systemctl restart sshd
日志監控
# 查看防火墻攔截記錄(Linux) sudo grep DROP /var/log/syslog
多工具沖突
避免同時啟用
iptables
和firewalld
,可能導致規則混亂。
五、常用端口對照表
端口 | 服務 | 風險等級 | 建議操作 |
---|---|---|---|
22 | SSH | 高 | 改端口+IP白名單 |
80 | HTTP | 中 | 開放 |
443 | HTTPS | 低 | 必須開放 |
3306 | MySQL | 高 | 限制內網訪問 |
3389 | RDP | 極高 | 僅VPN訪問 |
通過以上步驟,您可以靈活控制服務器端口的開放與關閉。建議首次配置后使用工具(如telnet
或nmap
)測試端口狀態:
nmap -p 80,443 your-server-ip