nginx在特定端口上启用身份验证

时间:2018-11-15 17:45:54

标签: nginx password-protection

我正在尝试使用密码保护Kibana服务器的URL。

如果我在浏览器中输入http://192.168.1.2,则会提示我输入用户名/密码,但是如果我直接通过http://192.168.1.2:5601查询端口5601,则可以绕过nginx代理身份验证。

请注意,nginx和Kibana都在同一服务器上运行。

我尝试使用“ localhost”,“ 0.0.0.0”或“ 127.0.0.1”的不同组合作为侦听源地址,但它们都不起作用。我仍然可以轻松绕过代理。

我在做什么错了?

这是我的/etc/nginx/nginx.conf文件:

server {
  listen 192.168.1.2:80;
  server_name 192.168.1.2;
  location / {
    proxy_pass http://192.168.1.2:5601;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }
}

1 个答案:

答案 0 :(得分:0)

NGINX仅侦听端口80,并且不会阻止对端口5601的应用程序的访问。您应该使用防火墙来阻止对端口本身的访问。您可以:

  1. 将服务器放置在路由器之类的防火墙后面(阻止所有外部网络请求)
  2. 在服务器本身上安装UFW之类的防火墙。