启用反向代理并阻止对原始端口的访问

时间:2019-05-01 21:34:26

标签: nginx server

我正在端口5601上托管一个应用程序(Kibana)。我想通过将IP列入白名单来限制对它的访问,因此我试图将其托管在Nginx后面。下面是我的Nginx conf。

server {
  listen *:5700;
  server_name _;
  allow 10.20.30.40; # My IP
  deny all;
  location / {
    proxy_pass http://localhost:5601;
  }
}

它可以正常工作,因为只有我可以在端口5700上访问该应用程序,其他人都可以得到403。但是,其他人可以直接进入localhost:5601并绕过整个安全性。如何停止直接访问端口5601

1 个答案:

答案 0 :(得分:1)

localhost:5601是仅在运行Nginx&Kibana的同一主机上运行的用户/进程才能访问的连接。它必须存在,以便Nginx可以proxy_pass向Kibana发送流量。

但是,我认为您是在谈论外部用户也从远程系统连接到5601端口。

Kibana不需要在端口5601上侦听来自外部系统的流量。请注意,默认情况下,至少某些Kibana安装不侦听外部系统,并且您可能不需要进行任何更改。

但是要确保:

  1. 编辑您的kibana.yml文件(可能是/etc/kibana/kibana.yml)
  2. 确保server.host: "localhost"是唯一的server.host行,并且不会被注释掉
  3. 重新启动Kibana

使用最佳实践进一步管理系统。我强烈建议您使用某种形式的防火墙,并且只开放您希望外部用户需要的端口和协议的访问权限。