在Ubuntu服務器中,默認使用 ufw(Uncomplicated Firewall)作為防火墻管理工具。它是對iptables的簡化封裝,適合快速配置防火墻規則。以下是設置防火墻的詳細步驟:
1. 安裝與啟用 ufw
安裝(通常已預裝):
sudo apt update && sudo apt install ufw
啟用防火墻:
sudo ufw enable # 啟用后防火墻會隨系統啟動
2. 基本防火墻規則配置
允許特定端口
允許SSH(端口22,防止被鎖):
sudo ufw allow 22/tcp
允許HTTP/HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
允許其他自定義端口(如MySQL):
sudo ufw allow 3306/tcp
拒絕端口
拒絕某個端口(如禁止外部訪問8080):
sudo ufw deny 8080/tcp
基于IP的規則
允許特定IP訪問所有端口:
sudo ufw allow from 192.168.1.100
允許IP訪問指定端口:
sudo ufw allow from 192.168.1.100 to any port 22
- 查看與管理規則
列出所有規則:
sudo ufw status numbered # 顯示規則編號
刪除規則(根據編號):
sudo ufw delete 2 # 刪除編號為2的規則
4. 高級配置
限制連接速率(防DDoS)
限制某端口的最大連接數(例如SSH每分鐘最多3次):
sudo ufw limit 22/tcp
允許范圍端口
允許端口范圍(如5000-6000):
sudo ufw allow 5000:6000/tcp
5. 應用預定義配置文件
ufw 內置了常見服務的配置文件(如Nginx、Apache):
查看可用配置:
sudo ufw app list
允許應用配置(如Nginx Full包含80和443):
sudo ufw allow 'Nginx Full'
6. 防火墻狀態與日志
檢查防火墻狀態:
sudo ufw status verbose
啟用日志記錄:
sudo ufw logging on # 日志路徑:/var/log/ufw.log
7. 禁用或重置防火墻
臨時禁用防火墻:
sudo ufw disable
重置所有規則(恢復默認):
sudo ufw reset
注意事項
SSH端口必須放行:如果通過SSH遠程連接,需確保防火墻允許SSH端口,否則啟用后可能無法遠程登錄。
測試規則:修改規則后,使用 telnet 或 nmap 驗證端口是否開放:
nmap -p 22,80,443 your_server_ip
防火墻與服務的協同:若端口在防火墻中開放,但服務未監聽該端口,外部仍無法訪問。