钧言极客钧言极客

钧言极客

nginx防止源站泄露IP

在安装完成NGINX环境后,通常为了避免攻击,可能会使用一些WAF/CDN来保护源站,但是如果配置不恰当,可能会导致源IP泄露。网络上有提供很多查询解析记录的网站,稍微不注意可能就躺枪,毕竟发动一次DDCC服务实在廉价啦。

443端口泄露

nginx服务器本身存在一个问题,当你没有设置默认网站时,通过IP访问会解析到第一个默认站点,而在加入https访问时,会通过第一个已经配置的SSL站点来连接,导致源站被暴露。可以通过配置一个自签的证书到默认站点来防止。

  • 在某个目录创建ssl.crt和ssl.key,一份长期有效的自签空白证书

ssl.crt

-----BEGIN CERTIFICATE-----
MIIBkjCB/AIJAI3bCYqa39hiMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNVBAYTAiAg
MCAXDTE4MTEyNDA5MDMzOFoYDzIwOTkxMjMxMDkwMzM4WjANMQswCQYDVQQGEwIg
IDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA18hepvNcznqDj735Opxircn3
M0Ruv8nkpHHPuurxr6tLPKAe1XAsy5dWHDbK7t4sXpT0ds9c74yqmvfwKofPk7z9
ZBhmyw/5sp454/JftL1c2fr58wB9ETfX6as5aR5hQR0M0NuQLSAB/KVzi9eeNWDd
EzT0QN5B1Ai9BR/ApMMCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBiqHZsuVP09ubT
GzBSlAFEoqbM63sU51nwQpzkVObgGm9v9nnxS8Atid4be0THsz8nVjWcDym3Tydp
lznrhoSrHyqAAlK3/WSMwyuPnDCNM5g1RdsV40TjZXk9/md8xWxGJ6n1MoBdlK8T
H6h2ROkf59bb096TttB8lxXiT0uiDQ==
-----END CERTIFICATE-----

ssl.key

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDXyF6m81zOeoOPvfk6nGKtyfczRG6/yeSkcc+66vGvq0s8oB7V
cCzLl1YcNsru3ixelPR2z1zvjKqa9/Aqh8+TvP1kGGbLD/mynjnj8l+0vVzZ+vnz
AH0RN9fpqzlpHmFBHQzQ25AtIAH8pXOL1541YN0TNPRA3kHUCL0FH8CkwwIDAQAB
AoGAQ4ejh6AV5VCWJ8AOZXdXsofIYzUBa+glNAmiNx8b8BwteZWq0KVAf56nBkFn
lQXW4OrA7wXKUfW11rXNZaIHJePJXv1swkN9+Em18Hon6BrtcqnKAwzAbhok3SzY
IVjI/zrgOABH6+ii77xCRBzI1itVPNN88DAUHC7PYLYiaaECQQD7PSoij37+kMc/
wPeEkl9r3vzU0OrsCsjU8Ev714OaoL/SIuAh6nsiRh9rcbUrrpGSSzIcmsk9HMDa
hXBNkNl5AkEA298yQvssaUc4tbEWxAVfd9DsHJdCdbXfgf9Dy5/tpCzYncY7T0du
VVHqKu3jXWoMc5XlesiCOerU/DIlMM8dGwJBANQn7GLO5iC1xWvS2bF7oVSIMtzL
pvW4jaszWBbNAPccc59RkA9T4LMqn/GtTZ4bhhYRpbl+BB21IC3nrNPzU5ECQG8T
Ln0QDruQs2F2eR3F6RjKfr1i3LxCiQtPPZycypzp2vS5tDS0zVRk8XuGehoy/N9X
lnqU2NURgU92tbsWpokCQQDdc9tU3B/OM/YfzUNwvOLmUVwrJX6PFSFsOn+XHrCC
q9LcGEAHyzaf5GEWje84ee4rkv5oaZcwll3dg4IioBnC
-----END RSA PRIVATE KEY-----
  • 我现在使用的是宝塔面板,默认路径(/www/server/panel/vhost/nginx/0.default.conf),不同的环境可能位置不同
server
{
    listen 80;
    server_name _;
    index index.html;
    root /www/server/nginx/html;  #这里填写web默认目录
    return 444;
}
 
server
{
    listen 443 ssl;
    server_name _;
    ssl_certificate    /xxx/ssl.crt;  #这里填写证书绝对路径
    ssl_certificate_key    /xxx/ssl.key; #这里填写证书绝对路径
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    index index.html;
    root /www/server/nginx/html;  #这里填写web默认目录
    return 444;
}
  • 最后在宝塔面板重载NGINX,这样服务器在收到未绑定域名访问的时候会自己断开链接反会HTTP444,这样就大大降低存在风险,防君子不能放小人
未经允许不得转载:钧言极客 » nginx防止源站泄露IP

评论 抢沙发