源站IP保护

443 Port

server {
	listen 443 ssl;
    ssl_reject_handshake on;
}

防止 SNI 泄露

80 Port

即使设置完了443端口,Censys依旧在某些情况下获得你的源站IP。

我就遇到一种情况:

(耻辱的记录)

由于80端口并没有指定default_server,所以在处理没有提供server name的请求时,nginx会fallback到第一个virtual server,好巧不巧就是我的评论系统的代理服务,关于我博客的评论系统可以看博客评论系统的选择 | MoonLab 而由于我的评论系统是需要CORS的,所以response中带有 Access-Control-Allow-Origin 的Header,其中暴露了我的域名。这就导致了源站IP的泄露,Censys直接记录到了我的IP。

cen (Censys 偷窥我的80端口,我的评论系统响应了,妈的叛徒)

尽管这个IP并非是moonlab.top的,但也是我的服务器IP。

因此不光要设置443的拒连,也要加入80的拒连:

server {
	listen 80 default_server;
    server_name _;
    return 444;
}