在互聯網安全中,服務器域名白名單是一種通過限制訪問來源來保護服務器資源的關鍵機制,它通過預先定義“可信域名或IP地址”,僅允許這些合法來源與服務器通信,從而有效降低惡意攻擊和非法訪問的風險,以下從技術實現、操作步驟到最佳實踐,詳細說明如何配置和管理域名白名單。
http {
server {
listen 80;
location / {
# 允許特定IP或網段
allow 192.168.1.0/24;
allow 203.0.113.5;
deny all; # 拒絕其他所有請求
}
}
}
重啟服務生效:nginx -s reload
Apache示例
修改.htaccess
或虛擬主機配置文件:
<Directory "/var/www/html"> Order Deny,Allow Deny from all Allow from 192.168.1.100 Allow from .example.com # 允許特定域名 </Directory>
重啟Apache:systemctl restart apache2
方案2:使用防火墻工具
-
iptables(Linux系統(tǒng))
允許特定IP訪問80端口:iptables -A INPUT -p tcp --dport 80 -s 192.168.1.10 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j DROP
保存規(guī)則:
iptables-save > /etc/iptables/rules.v4
#!/bin/bash
CURRENT_IP=$(dig +short dynamic.example.com)
iptables -D INPUT -p tcp –dport 80 -s $CURRENT_IP -j ACCEPT # 刪除舊規(guī)則
iptables -A INPUT -p tcp –dport 80 -s $CURRENT_IP -j ACCEPT -
CDN或代理服務
當使用Cloudflare等CDN時,需放行CDN提供商的IP段(如Cloudflare的IP列表),并在應用層校驗X-Forwarded-For
頭。 -
測試方法
curl -I http://your-domain.com –header "Host: your-domain.com"
- 通過在線工具(如Pingdom)檢查訪問狀態(tài)。
白名單的驗證與維護
維護建議
- 定期審查白名單列表,清理不再使用的條目。
- 監(jiān)控訪問日志(如Nginx的
access.log
),識別異常請求模式。 - 結合自動化工具(如Ansible)批量管理多臺服務器的規(guī)則。
常見問題解答
-
Q:白名單導致合法用戶無法訪問?
A:檢查是否遺漏IP段或域名,臨時關閉白名單功能進行故障排查。 -
Q:如何防止IP偽造繞過白名單?
A:啟用HTTPS并驗證證書,或在應用層添加Token驗證機制。 -
Q:白名單與黑名單的區(qū)別?
A:白名單默認拒絕所有+允許少數;黑名單默認允許所有+攔截已知威脅,后者防御范圍更廣但安全性較低。
引用說明
- Nginx官方文檔:http://nginx.org/en/docs/
- Apache配置指南:https://httpd.apache.org/docs/
- Cloudflare IP列表:https://www.cloudflare.com/ips/