ORACLE RAC集群访问策略限制
背景:为了数据库集群服务器的安全,需要对RAC集群做防火墙的策略限制,增加集群系统安全性。
首先需要了解RAC集群特性才能做出相应设置
RAC集群是为了提高数据库的容错率、可扩展性。通过多节点之间的负载均衡,提高最大连接数和并发时间。
集群配置信息在host文件中:
public ip用于集群向外部统一提供网络连接,是本机物理网卡提供的ip
private ip用于集群之间的keepalive等存活性检测,private ip必须在同一网段中
virtual ip需要和物理网卡在同一网段,当其中某一台服务器宕机后vip会漂移到其他存活节点上,避免整个集群挂掉。
scan ip用于DNS和GNS解析。
在本例中使用iptables进行配置,配置后不能影响RAC集群服务。可能会由于配置的错误导致RAC集群之间不能进行互相通信,影响数据存储。
首先下载iptables
yum install -y iptables
修改防火墙配置
vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-N whitelist
-A whitelist -s (public ip) -j ACCEPT
-A whitelist -s (private ip) -j ACCEPT
-A whitelist -s (scan ip) -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
其中需要注意以下几点:
1.需要放行所有的ip地址
2.RAC集群中使用到了udp和tcp协议,私网通信使用的是udp协议,需要配置放行
3.通过绑定private ip网卡的方式进行放行
4.如果需要应用在iptables的出口方向需要改成以下配置:
-A INPUT -m state --state ESTABLISHED,RELATED -j whitelist
最后启用墙即可:
systemctl enable iptables
systemctl restart iptables
关闭使用如下命令:
systemctl disable iptables 避免服务器重启导致的无法访问
systemctl stop iptables