F5做负载均衡防火墙添加IP规则后访问web应用失败

来源:互联网 发布:linux清除系统日志 编辑:程序博客网 时间:2024/06/06 03:37
应维护中心关于网络安全的要求,需要所有项目都不能通过公网IP直接进行访问,只能通过域名,再经过统一入口地址进行访问。
所以需要在所有项目的防火墙上添加过滤规则。
比如现在有一个项目通过8008端口进行访问,原来的防火墙配置如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8008 -j ACCEPT
8008端口是对外放开的,现将上面的规则注释掉,并添加如下规则,限制只能通过192.168.1.0/24网段访问8008端口,这样外部访问只能经过192.168.1.0/24网段,中转来访问服务器,不能直接通过公网IP直接访问。
-A INPUT -s 192.168.1.0/24 -m tcp -p tcp --dport 8008 -j ACCEPT
但是进行如上配置,重启防火墙后IP和域名都不可以访问,页面报504错误,这应该是服务端错误,在服务端将请求拦截了。
尝试了重启服务器网络service nestat restart。然后出现更严重的问题,即使将防火墙还原,原来公网IP和域名都可以访问,现在也不可以访问。后来才想到,这个项目是部署的两台服务器通过F5做的负载均衡。
查看网关cat /etc/sysconfig/network-scripts/ifcfg-eth1,发现网关地址被更改了,所以F5失效,无法访问系统。这应该是由于重启网络导致的。
vim /etc/sysconfig/network-scripts/ifcfg-eth1,修改网关配置,重启网络,现在恢复成原样了。
现在似乎问题就要浮出水面了,既然是F5做的负载均衡,之前添加的规则并没有包括F5地址和防火墙地址的白名单,会不会是他们将请求拦截了,导致请求过不来。
现在有了解决方向就差验证了,然而目前并不知道F5地址和防火墙地址,怎么将他们添加到防火墙的白名单中呢。。
现在只有试着看看反向路由到需要配置的唯一入口地址经过哪些IP来猜测防火墙和F5地址了。
假设外部通过域名再统一经过192.168.1.0/24网段的地址来访问项目,尝试traceroute 192.168.1.1(属于192.168.1.0/24网段)这个地址,看经由哪些IP,然后看到首先经过了192.168.11.1和163.45.66.1。
再通过tcpdump -n -i eth1 src  port 8008查看经过eth1网卡的8008端口的回环网口的包看看。
然后将这两个地址所在网段添加到防火墙白名单中。
-A INPUT -s 192.168.11.0/24 -m tcp -p tcp --dport 8008 -j ACCEPT
-A INPUT -s 163.45.66.0/24 -m tcp -p tcp --dport 8008 -j ACCEPT
重启防火墙测试,终于实现公网IP无法访问项目,域名可以访问了。
所以对于这种F5做负载均衡的项目,进行网络限制时,一定要主要将F5地址、防火墙地址添加到白名单中,否则有可能请求失败,就是被他们拦截了。
原创粉丝点击