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,並且將出去的數據包僞裝
#DMZ
iptables -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
#SNAT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.90.64
F5
POOL:default_gatway_pool
pool default_gatway_pool {
monitor all gateway_icmp
members 192.168.x.y:any {}
}
VS:net
virtual 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_80
virtual 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
掃碼關注