我最近开始使用 Elastic 搜索、Logstash 和 Kibana 来帮助可视化我服务器上的日志。
这效果很好,但唯一的问题是,这一切都可以通过我服务器上的端口访问它们来公开访问。例如example.com:9200
或example.com:5601
。
我找到了一种将弹性搜索仅限于本地流量的方法,但我需要一种方法来限制对 Kibana 的公共访问。
我想将其公开,以便我可以访问它,但使用htaccess
. 我已经成功实现了这一点,所以如果我导航到kibana.example.com
它,在通过之前会要求我输入用户名和密码。但是,我仍然可以直接使用它来访问它,example.com:5601
而不会被要求进行身份验证。
环顾四周,似乎 iptables 是解决这个问题的方法。我尝试使用sudo iptables -A INPUT -p tcp --dport 5601 -j DROP
,这确实阻止了对端口的所有访问,但它也阻止了我在引导时允许的流量kibana.example.com
。
kibana.example.com
当您尝试直接访问端口时,如何修改上述规则以允许访问但阻止访问?
我的服务器运行 Debain Jessie,我使用 Apache 2.2 作为我的 Web 服务器。
我通过使用以下
iptable
规则做到了这一点:iptables -A INPUT ! -s 127.0.0.1 -p tcp -m tcp --dport 5601 -j DROP
它接受从 localhost 到端口 5601 的所有连接(这是通过我的 Apache 代理完成的)并丢弃所有其他连接。