我在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 / {
...
}
...
}