F5 LTM无法通过配置来控制访问流量,不过,可以通过Irule脚本来控制,但,在这里,我只是想通过后端扩充的防火墙来实现。仅是思路,供参考!
拓扑:
描述
web | ip | 192.168.80.64 |
firewall | outside | 192.168.90.64 |
inside | 192.168.80.1 | |
F5 | internat | 192.168.x.y |
externat | 192.168.80.254 | |
vs:web_80 | 192.168.x1.y1 | |
访客1 | ip | 192.168.x2.y2 |
流程
Web
网关指向Firewall inside接口IP 做80,8080两个虚拟主机Firewall(1)开启路由转发echo "1" >/proc/sys/net/ipv4/ip_forward (2)startF.sh打开DMZ,并且将出去的数据包伪装#DMZiptables -t nat -A PREROUTING -p tcp -d 192.168.90.64 -j DNAT --to-destination 192.168.80.64#PAT#iptables -t nat -A PREROUTING -p tcp -d 192.168.90.64 --dport 8080 -j DNAT --to-destination 192.168.80.64:8080#iptables -t nat -A PREROUTING -p tcp -d 192.168.90.64 --dport 80 -j DNAT --to-destination 192.168.80.64:80#SNATiptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.90.64F5POOL:default_gatway_poolpool default_gatway_pool { monitor all gateway_icmp members 192.168.x.y:any {}}VS:netvirtual net { snat automap pool default_gatway_pool destination any:any mask 0.0.0.0}以上,这样web服务器就可以伪装F5出口的self ip访问外面了。如果我们想访问web服务器呢?简单POOL:pool apache_80 { monitor all gateway_icmp and http members { 192.168.90.64:http {} 192.168.90.64:webcache {} }}VS:web_80virtual web_80 { pool apache_80 destination 192.168.x1.y1:http ip protocol tcp profiles { http {} tcp {} }大家http://192.168.x1.y1就可以访问web了。为什么这么简单呢?因为web是处与DMZ下面嘛!这样,我们就可以在Firewall处写ACL了。怎么玩,看你的了。我测试的一个iptables -A FORWARD -s 192.168.x2.y2 -j DROP这样,我这台192.168.x2.y2就没办法访问这个web了。如果想了解更多,请关注我们的公众号公众号ID:opdevos扫码关注