1. 配置UFW防火墻基礎規則
Ubuntu默認使用UFW(Uncomplicated Firewall)作為防火墻管理工具,其核心策略是“默認拒絕所有入站流量,允許所有出站流量”,從根源上限制未授權訪問。首先啟用UFW并設置默認規則:
sudo ufw enable # 啟用UFW
sudo ufw default deny incoming # 默認拒絕所有入站連接
sudo ufw default allow outgoing # 允許所有出站連接
然后僅開放必要的服務端口(如SSH用22端口、HTTP用80端口、HTTPS用443端口),避免開放無關端口(如Telnet、FTP等高風險服務端口)。例如允許SSH端口:
sudo ufw allow 22/tcp # 允許TCP協議的22端口(SSH)
通過減少開放端口數量,降低被端口掃描工具(如Nmap)發現的概率。
2. 限制端口訪問頻率(防暴力掃描)
端口掃描工具通常會在短時間內發送大量連接請求(如每秒數十次),UFW的limit
命令可有效限制單個IP對特定端口的連接速率。例如,限制SSH端口(22/tcp)的連接嘗試:
sudo ufw limit 22/tcp # 限制SSH端口:允許每分鐘最多6次連接,超過則拒絕并記錄
該規則的原理是:前6次連接嘗試會被允許,后續在60秒窗口期內的連接將被拒絕。這種機制可阻止自動化掃描工具快速枚舉端口,同時不影響正常用戶的訪問。
3. 僅允許可信IP訪問關鍵端口
若服務器僅由特定IP(如公司內網、個人固定IP)訪問,可將關鍵端口(如SSH、數據庫)的訪問權限限制為可信IP段,徹底阻斷其他IP的掃描行為。例如,僅允許IP192.168.1.100
訪問SSH端口:
sudo ufw allow from 192.168.1.100 to any port 22/tcp # 允許指定IP訪問SSH
sudo ufw deny 22/tcp # 拒絕其他所有IP訪問SSH
此方法可大幅縮小攻擊面,即使掃描到端口開放,也無法從非信任IP建立連接。
4. 結合Fail2Ban自動封禁掃描IP
Fail2Ban是一款入侵防御工具,可監控日志文件(如/var/log/auth.log
),檢測到多次失敗的端口掃描或登錄嘗試后,自動將攻擊源IP加入防火墻黑名單(默認封禁10分鐘)。安裝并配置Fail2Ban的步驟如下:
sudo apt install fail2ban # 安裝Fail2Ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 復制配置文件(避免升級覆蓋)
編輯/etc/fail2ban/jail.local
,啟用SSH防護并設置參數:
[sshd]
enabled = true # 啟用SSH防護
port = 22 # 監控SSH端口(若修改了默認端口,需同步調整)
filter = sshd # 使用sshd過濾規則(默認已配置)
logpath = /var/log/auth.log # 日志文件路徑
maxretry = 3 # 3次失敗嘗試后觸發封禁
bantime = 600 # 封禁時間(秒),此處為10分鐘
findtime = 600 # 檢測時間窗口(秒),10分鐘內累計3次失敗則封禁
重啟Fail2Ban使配置生效:
sudo systemctl restart fail2ban
Fail2Ban可有效應對端口掃描、暴力破解等攻擊,自動封禁惡意IP,減少服務器暴露風險。
5. 隱藏端口降低掃描概率
端口掃描的前提是攻擊者知道目標端口的存在,通過修改服務默認端口可降低被掃描到的概率。例如,將SSH默認端口22改為非知名端口(如2222):
sudo nano /etc/ssh/sshd_config # 編輯SSH配置文件
# 找到“#Port 22”行,取消注釋并修改為:
Port 2222
保存后重啟SSH服務:
sudo systemctl restart sshd
同時需在UFW中開放新端口并關閉舊端口:
sudo ufw allow 2222/tcp # 允許新端口
sudo ufw deny 22/tcp # 關閉舊端口
需注意,修改端口后需告知所有合法用戶,避免因端口變更導致無法訪問。
6. 啟用UFW日志監控可疑行為
UFW的日志功能可記錄所有被拒絕的連接嘗試,通過分析日志可及時發現端口掃描行為。啟用UFW日志:
sudo ufw logging on # 開啟日志記錄(默認日志路徑為/var/log/ufw.log)
查看日志可使用以下命令:
sudo tail -f /var/log/ufw.log # 實時查看日志
日志中若出現大量“DENY IN”記錄(如同一IP在短時間內多次嘗試連接不同端口),則可能存在端口掃描??筛鶕罩拘畔⑦M一步調整防火墻規則(如封禁該IP)。