如何通过 ip 表只允许访问特定的 url
How to allow access to only particular url by ip tables
在我的应用程序中,我必须限制对端口 8383 的外部访问。它应该只接收来自本地主机的连接。我通过以下方式成功实现了这一目标:
确保端口 8383 可从本地主机访问
iptables -A 输入 -p tcp --dport 8383 -s 127.0.0.0/8 -j 接受
确保端口 8383 已禁用外部访问
iptables -A INPUT -p tcp --dport 8383 -j REJECT
但是8383端口下的应用运行必须集群。它通过向 :8383/default/cluster.
发送 POST 请求来集群自身
有没有办法禁止外部访问 8383,但只允许在请求 uri 中包含“/default/cluster”的请求?
IPTables 无法直接使用。原因是 - IPTables 在 L3-4(网络和传输层)上工作并且不查看数据包有效负载。但是有几个扩展可以执行 "Deep packet inspection".
要使其正常运行,您至少需要:
- 正确配置内核(Netfilter 连接跟踪支持)
- 深度包检测工具(以ndpi为例)
- 连接 linux 过滤和深度数据包检测功能的 IPtables 模块。
在我的应用程序中,我必须限制对端口 8383 的外部访问。它应该只接收来自本地主机的连接。我通过以下方式成功实现了这一目标:
确保端口 8383 可从本地主机访问
iptables -A 输入 -p tcp --dport 8383 -s 127.0.0.0/8 -j 接受
确保端口 8383 已禁用外部访问
iptables -A INPUT -p tcp --dport 8383 -j REJECT
但是8383端口下的应用运行必须集群。它通过向 :8383/default/cluster.
发送 POST 请求来集群自身有没有办法禁止外部访问 8383,但只允许在请求 uri 中包含“/default/cluster”的请求?
IPTables 无法直接使用。原因是 - IPTables 在 L3-4(网络和传输层)上工作并且不查看数据包有效负载。但是有几个扩展可以执行 "Deep packet inspection".
要使其正常运行,您至少需要:
- 正确配置内核(Netfilter 连接跟踪支持)
- 深度包检测工具(以ndpi为例)
- 连接 linux 过滤和深度数据包检测功能的 IPtables 模块。