[英]NGINX: Allow multiple ports to be available for https + redirect all http to https
[英]Deny all connections to ports that aren't 443 or 80 over HTTP/HTTPS on NGINX
我在 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 / {
...
}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.