鱿鱼反向代理DMZ,如何转发任何非HTTP请求


0

我实际上正面临一些与网络协议相关的问题。

我有自己的域,一个拥有的DMZ和外部用户。在我的DMZ中,我有一个反向代理,可以很好地处理HTTP连接。我的外部用户可以完美地访问我的内部Web服务器。

但是,我想知道我的Squid是否有可能对MSSQL / PGSQL请求(或任何类型的连接)执行相同的操作。

就像我的外部客户端一样,点击我的反向代理,它将反向缓存到我的真实服务器?

问候。


我无法想象Web代理处理对sql服务器的请求。例如,如果您在端口80上有sql请求(这很奇怪),则可能需要某种服务器来检查请求的类型并转发到正确的服务器。
barlop 2015年

是的,这是一个非常奇怪的解决方案,但我的选择不多...因此,netfilter是目前唯一的解决方案。:)
凯尔

那你用iptables了吗?您可以回答自己的问题,说明您使用了哪些iptables规则,这对人们很有用,并且您可以接受自己的回答。您是否进行了深度数据包检查?听起来很有趣
barlop

不幸的是,这只是原始转发到正确的服务器。我拥有的唯一安全性是源/目标。在应用方面,只有接收报文的服务器才能验证完整性。
凯尔

Answers:


1

由于环境的原因,我唯一的选择是使用iptables进行原始转发。

由于我们没有DPI,因此一切都取决于3个过滤器:

  • 资源
  • 目的地
  • 港口

另外,由于必须透明,因此我们必须使用主机文件将目标域设置为我们的代理服务器。对于目的地,不需要任何更改。


# My SQL try to contact the dest. SQL (who is in fact, my proxy) so I changed the destination to the real one
iptables -t nat -A PREROUTING -i eth0 -s [YOUR_INTERNAL_SERVER] -p tcp --dport 15432 -j DNAT --to-destination [YOUR_DESTINATION_SERVER]

# Little restriction
iptables -t filter -A FORWARD -p tcp --dport 15432 -m state --state NEW -j ACCEPT
iptables -t filter -A FORWARD -p tcp --dport 15432 -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -p tcp --sport 15432 -m state --state ESTABLISHED -j ACCEPT

# If they contact my SQL, I set the source as my relay so my server could reply back.
iptables -t nat -A POSTROUTING -o eth0 -d [YOUR_INTERNAL_SERVER] -p tcp --dport 15432 -j SNAT --to-source [YOUR_PROXY]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.