直接阻止访问端口但允许通过子域访问

直接阻止访问端口但允许通过子域访问

我最近开始使用 Elastic 搜索、Logstash 和 Kibana 来帮助可视化我的服务器上的日志。

效果很好,但唯一的问题是,所有这些都可以通过我服务器上的端口公开访问。例如example.com:9200example.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 服务器。

答案1

我使用这个iptable规则做到了这一点:

iptables -A INPUT ! -s 127.0.0.1 -p tcp -m tcp --dport 5601 -j DROP

它接受从本地主机到端口 5601 的所有连接(通过我的 Apache 代理完成)并丢弃所有其他连接。

相关内容