当前位置:Linux教程 - Linux - 利用反向代理保护WEB服务器--五、设置转发规则

利用反向代理保护WEB服务器--五、设置转发规则

五、设置转发规则

ipchains -A input -p tcp -d 202.99.157.10/255.255.255.255 80 -j REDIRECT 81

ipchains -A input -p tcp -d 202.99.157.18/255.255.255.255 80 -j REDIRECT 81


这里将送往202.99.157.10和202.99.157.18的80端口的所有http请求转发给由transproxy管理的端口81。

到此为止,透明反向代理配置完成了。

让我们模拟一下一位因特网用户访问www.test.com.cn这台拥有内部IP(192.168.1.10)的WEB服务器的过程。首先,该用户的请求由标准DNS服务器解析为202.99.157.10,则用户的机器向202.99.157.10的80端口发出请求,要求浏览www.test.com.cn这台WEB服务器的页面,而202.99.157.10这台机器正是我们的反向代理服务器,按照反向代理服务器的ipchains规则发往该服务器80端口的请求被转发到81端口,而81端口由transproxy 控制,transproxy把请求发给squid,让squid去取www.test.com.cn这个页面。而反向代理服务器上的内部DNS服务器把www.test.com.cn解析为192.168.1.10,默认的反向代理端口是80,这样,squid就到192.168.1.10的端口80上请求WEB服务。而192.168.1.10正是我们的www.test.com.cn的真实WEB服务器,它的80端口开放着http服务。这样,squid从192.168.1.10服务器上取回页面传回给202.99.157.10 然后再传回给因特网上的对www.test.com.cn有访问请求的用户,并把该页面放在squid的cache中。这样就完成了一次因特网用户到拥有内部IP的WEB服务器的访问过程。以后再有因特网用户再访问www.test.com.cn这个页面时,squid就直接从cache里提取缓存的页面,这样可以提高WEB服务器的访问效率。

因特网用户对www.test1.com.cn的访问也和对www.test.com.cn的访问一样,原理是相同的,只不过访问的真实服务器不同而已。

从上面的访问例子我们可以看出,因特网上的用户在访问www.test.com.cn这个WEB 服务器时,根本不和真正提供www.test.com.cn页面的服务器打交道,只和反向代理服务器打交道,这样,在破坏互联网主机的黑客行为日益猖獗的情况下,只要正确设置反向代理服务器,确保反向代理服务器不被攻破,就会很大程度上杜绝因特网上的黑客对内部服务器的攻击。万一代理服务器被攻破,也不会对您的WEB服务器造成什么损害,您只要恢复反向代理服务器就行了。因此,本方法对您的WEB服务器起到一定程度的保护作用。而且在WEB浏览量较多的情况下,由于squid的反向代理有加速功能,可以加快页面的浏览速度。

六、其他

  反向代理应用过程中,要注意访问控制功能,应该只允许访问你开放的内部服务器,而不允许访问其他服务器,否则,你的反向代理服务器就会成为互联网上一台公开的不用验证的代理服务器,那就危险啦。另外,如果您有多台WEB服务器,可以选一台性能较好的作为反向代理服务器,内部的若干WEB服务器可以用PC或低档服务器代替,因为外部的访问压力主要集中在反向代理服务器上。

  另外此方案如果和linux下面的防火墙方案结合使用会更加完美。