13397158231   jevian_ma@worldflying.cn

使用iptables实现反向代理

2019-07-29 03:36:20

现在的人们对数据的安全看的越来越重视了,一台特殊功能的服务器,往往除了常规的安全处理方式外,还会有类似限制客户端ip的要求。如阿里云的rds服务,虽然这个服务的数据很安全,但是使用起来确实很烦心。它限制客户端ip,但是在中国这样的网络环境中,普通用户使用的都是静态ip。每次修改白名单都很麻烦。

因此小沃的解决方法是,让那台服务器做反向代理。以前小沃有教过大家如果是http或是https请求,可以使用nginx作为反向代理服务器。

但是如果是类似阿里云rds这样的mysql连接这样的请求,又该怎么办呢?

小沃现在就教教大家直接对tcp连接进行反向代理。

假设有一台公网ip为123.57.232.227的服务器,它能连接到27.92.58.43的rds。

因此我们想配置123.57.232.227的5306端口反向代理到27.92.58.43的3306端口,下面是配置方法

1.修改接收到的数据包的目的地址

将5306端口接收到的数据包目的地址修改为27.92.58.43:3306

iptables -t nat -A PREROUTING -p tcp --dport 5306 -j DNAT --to-destination 27.92.58.43:3306

2.修改数据包的源地址

iptables -t nat -A POSTROUTING -p tcp -d 27.92.58.43 --dport 3306 -j MASQUERADE

或是

iptables -t nat -A POSTROUTING -p tcp -d 27.92.58.43 --dport 3306 -j SNAT --to-source 123.57.232.227

这两种方式的不同之处在于使用MASQUERADE动态指定数据包的源地址或是SNAT手动指定数据包的源地址。

3.设置转发数据包为允许状态

iptables -A FORWARD -d 27.92.58.43/32 -p tcp --dport 3306 -j ACCEPT


完成上述步骤后,如果您访问123.57.232.227:5306,数据包将被转发到27.92.58.43:3306,并且对于27.92.58.43这台服务器,他会认为是123.57.232.227连接它的,这样就破解了ip地址绑定。


文章作者:沃航科技




优秀产品推荐:可编程网络IO控制器

上一篇:使用certbot配置https证书并设置强制更新

下一篇:三步生成nginx自签名密钥

联系我们

  • 地址:武汉市东湖高新开发区光谷总部国际1栋2412室
  • QQ:932773931
  • 电话:027-59761089-806
  • 手机:13397158231
  • 邮箱:jevian_ma@worldflying.cn

关注公众号

扫码添加微信

沃航(武汉)科技有限公司版权所有

备案号:鄂ICP备16014230号-1

本网站由提供CDN加速/云存储服务