我正在端口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
?
答案 0 :(得分:1)
localhost:5601
是仅在运行Nginx&Kibana的同一主机上运行的用户/进程才能访问的连接。它必须存在,以便Nginx可以proxy_pass
向Kibana发送流量。
但是,我认为您是在谈论外部用户也从远程系统连接到5601端口。
Kibana不需要在端口5601上侦听来自外部系统的流量。请注意,默认情况下,至少某些Kibana安装不侦听外部系统,并且您可能不需要进行任何更改。
但是要确保:
kibana.yml
文件(可能是/etc/kibana/kibana.yml)server.host: "localhost"
是唯一的server.host行,并且不会被注释掉使用最佳实践进一步管理系统。我强烈建议您使用某种形式的防火墙,并且只开放您希望外部用户需要的端口和协议的访问权限。