域名恶意解析是指他人将你的服务器IP地址绑定到他们自己的域名上,从而可能造成流量劫持、SEO降权或安全风险。以下是几种有效的防护方法:
配置一个默认的server块,拒绝所有未明确配置的域名访问:
server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
return 444; # 直接关闭连接
# 或者返回错误页面
# return 403;
}
只允许特定的域名访问:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 其他配置...
}
server {
listen 80 default_server;
server_name _;
return 403;
}
配置HTTPS并只对合法域名颁发证书,非法域名无法通过HTTPS访问:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/key.pem;
# 其他配置...
}
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /path/to/dummy/cert.pem;
ssl_certificate_key /path/to/dummy/key.pem;
return 403;
}
server {
listen 80;
server_name _;
if ($host !~* ^(yourdomain.com|www.yourdomain.com)$ ) {
return 403;
}
# 其他配置...
}
在服务器防火墙层面限制访问:
# 只允许特定域名访问80和443端口
iptables -A INPUT -p tcp --dport 80 -m string --string "Host: yourdomain.com" --algo bm -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -m string --string "Host: yourdomain.com" --algo bm -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
if ($http_referer !~* (yourdomain.com|www.yourdomain.com)) {
return 403;
}
配置完成后,记得测试并重载Nginx配置:
nginx -t && nginx -s reload
这些措施可以有效防止他人将你的服务器IP恶意绑定到他们自己的域名上。