在互聯(lián)網(wǎng)安全中,服務(wù)器域名白名單是一種通過限制訪問來源來保護(hù)服務(wù)器資源的關(guān)鍵機(jī)制,它通過預(yù)先定義“可信域名或IP地址”,僅允許這些合法來源與服務(wù)器通信,從而有效降低惡意攻擊和非法訪問的風(fēng)險(xiǎn),以下從技術(shù)實(shí)現(xiàn)、操作步驟到最佳實(shí)踐,詳細(xì)說明如何配置和管理域名白名單。
http {
server {
listen 80;
location / {
# 允許特定IP或網(wǎng)段
allow 192.168.1.0/24;
allow 203.0.113.5;
deny all; # 拒絕其他所有請(qǐng)求
}
}
}
重啟服務(wù)生效:nginx -s reload
Apache示例
修改.htaccess
或虛擬主機(jī)配置文件:
<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或代理服務(wù)
當(dāng)使用Cloudflare等CDN時(shí),需放行CDN提供商的IP段(如Cloudflare的IP列表),并在應(yīng)用層校驗(yàn)X-Forwarded-For
頭。 -
測(cè)試方法
curl -I http://your-domain.com –header "Host: your-domain.com"
- 通過在線工具(如Pingdom)檢查訪問狀態(tài)。
白名單的驗(yàn)證與維護(hù)
維護(hù)建議
- 定期審查白名單列表,清理不再使用的條目。
- 監(jiān)控訪問日志(如Nginx的
access.log
),識(shí)別異常請(qǐng)求模式。 - 結(jié)合自動(dòng)化工具(如Ansible)批量管理多臺(tái)服務(wù)器的規(guī)則。
常見問題解答
-
Q:白名單導(dǎo)致合法用戶無法訪問?
A:檢查是否遺漏IP段或域名,臨時(shí)關(guān)閉白名單功能進(jìn)行故障排查。 -
Q:如何防止IP偽造繞過白名單?
A:?jiǎn)⒂肏TTPS并驗(yàn)證證書,或在應(yīng)用層添加Token驗(yàn)證機(jī)制。 -
Q:白名單與黑名單的區(qū)別?
A:白名單默認(rèn)拒絕所有+允許少數(shù);黑名單默認(rèn)允許所有+攔截已知威脅,后者防御范圍更廣但安全性較低。
引用說明
- Nginx官方文檔:http://nginx.org/en/docs/
- Apache配置指南:https://httpd.apache.org/docs/
- Cloudflare IP列表:https://www.cloudflare.com/ips/