背景:由于安全检查的要求,需要开启服务器的防火墙,但是服务器上部署着ORACLE RAC集群;防火墙开启后,必须保障ORACLE RAC正常运行。
修改防火墙:
vi /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-N whitelist
-A whitelist -s 1.10.12.66 -j ACCEPT
-A whitelist -s 1.10.12.67 -j ACCEPT
-A whitelist -s 1.10.12.85 -j ACCEPT
-A whitelist -s 1.10.12.86 -j ACCEPT
-A whitelist -s 1.10.12.87 -j ACCEPT
-A whitelist -s 1.10.12.16 -j ACCEPT
-A whitelist -s 1.12.56.17 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i eth0:1 -j ACCEPT
-A INPUT -p tcp -j whitelist
-A INPUT -p udp -j whitelist
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
注意事项:
whitelist(白名单),必须包含集群中所有节点的PUBLIC IP、 VIP 、PRIVATE IP,最好是使用ifconfig查看,里面所有的IP都放到白名单里面的。
私有IP的网卡,以及绑定网卡:
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i eth0:1 -j ACCEPT允许白名单里面的所有tcp、udp请求,不限制任何端口:oracle rac集群私网通信时,用到了udp。
-A INPUT -p tcp -j whitelist
-A INPUT -p udp -j whitelist其它项,就不一一解释了。
最后,service iptables start,开启防火墙即可。
扩展:linux /etc/sysconfig/iptables文件详解,见下文: