2016-06-08 61 views
0

在我的應用程序中,我必須限制對端口8383的外部訪問。它應該只接收來自本地主機的連接。我成功地實現這種方式:如何允許通過IP表訪問特定的URL

確保端口8383是從本地主機訪問

的iptables -A INPUT -p根據tcp --dport 8383 -s 127.0.0.0/8 -j ACCEPT

確保端口8383是禁用外部訪問

的iptables -A INPUT -p根據tcp --dport 8383 -j拒絕

但是應用在端口8383上運行已被聚集。它通過將POST請求發送到:8383/default/cluster來進行羣集。

有什麼辦法可以禁用外部訪問8383,但只允許請求中包含「/ default/cluster」的請求嗎?

回答

1

IPTables無法從盒子中完成。原因是 - IPTables在L3-4(網絡層和傳輸層)上工作,不會查看包有效載荷。但有幾個擴展可以執行「深度包檢測」。

要使其工作,你至少需要:

  • 正確配置的內核(Netfilter的連接跟蹤支持)
  • 深度包檢測工具(NDPI例如)
  • 模塊iptables的連接的Linux過濾和深度數據包檢測功能。