拒绝所有通过 NGINX 上的 HTTP/HTTPS 连接到非 443 或 80 端口的连接



我在Nginx和Ubuntu上运行一个服务器,这个网站有一个域。我有一个问题,如果有人导航到IP和一个附加端口(https://<ip-addr>:<port>(,它会加载一个不应该像那样直接访问的服务,那么可以使用nmap来计算端口。

我正在尝试将444返回到这些类型的连接。我试着在"服务器"块下添加这些:

if ($host != "domain.tld") {
return 444;
}

location / {
return 444;
}

现在,这些方法可以很好地拒绝与IP的连接并将其限制在域中,但如果你做了IP和端口,它的加载就很好。如果其中一些服务没有某种形式的身份验证,那么它们就会暴露给任何人。

我尝试使用iptables来阻止端口,但这也会阻止`https://domain.tld/service,但这需要奏效。

服务应该只能通过此URL访问,而不能通过IP和端口访问。

试试这个

server { # Will redirect all http to https
listen      80 default_server;
server_name _; # will catch everything
return 301 https://domain.tld$request_uri;
}
server{ # Will redirect everything that is not "domain.tld" to http://domain.tld
listen      443 ssl http2;
server_name _; # will catch everything
ssl_...
return 301 http://domain.tld$request_uri;
}
server { # Do normal behavior
listen      443 default_server;
server_name *.domain.tld; # will catch everything
ssl_...
location / {
...
}
...
}

相关内容

  • 没有找到相关文章

最新更新