暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实战oracle19c rac启用防火墙

原创 jieguo 2023-08-01
1099

oracle linux7.9+oracle rac 19.18由于安全审计的要求,需要启用主机防火墙策略

基本步骤参考如下:

1.内部网段RAC之间访问:
	1.1物理IP段的网段(根据ip a|grep inet)
		firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp" port="1-65535" accept'
		firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol="udp" port="1-65535" accept'
	1.2私有IP的网段,其中涉及到tcp和udp的区别(ip a|grep inet)
		firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.0/24" port protocol="tcp" port="1-65535" accept'
		firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.0/24" port protocol="udp" port="1-65535" accept'
	1.3服务器分配给自己的网段(ip a|grep inet)
		firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="169.254.0.0/16" port protocol="tcp" port="1-65535" accept'
		firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="169.254.0.0/16" port protocol="udp" port="1-65535" accept'

2.外部网段访问系统和数据库端口:(根据last和listener.log)
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.26.19.0/24" port protocol=tcp port=1521 accept'
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol=tcp port=1521 accept'
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.75.87.0/24" port protocol=tcp port=1521 accept'
	
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.26.19.0/24" port protocol=tcp port=22 accept'
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.2.40.0/24" port protocol=tcp port=22 accept'
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.2.30.0/24" port protocol=tcp port=22 accept'

3.堡垒机映射:(根据last确定ip)
	firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="50.50.16.0/24" port protocol=tcp port=22 accept'

4.最后保存:firewall-cmd --reload


其它:
firewall-cmd --permanent --add-rich-rule='rule priority="-100" family=ipv4 source address="192.168.207.0/24" accept'
firewall-cmd --permanent --add-rich-rule='rule priority="-100" family=ipv4 source address="192.168.207.0/24" reject'
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address="192.168.205.0/24" reject'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.254.135/24" port protocol="tcp" port="22" reject'

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.205.0/24" reject'


常用命令:
	停止防火墙
	systemctl stop firewalld
	禁止防火墙自启动
	systemctl disable firewalld
	开启防火墙启动
	systemctl enable firewalld
	查看服务是否开机启动:
	systemctl is-enabled firewalld
	查看防火墙状态
	systemctl status firewalld
	启动防火墙
	systemctl start firewalld
	重启用服务强策略
	firewall-cmd --reload
	查看防火墙策略
	firewall-cmd --list-all
 查看已开放端口:
 	firewall-cmd --zone=public --list-ports
 查看firewalld服务当前所使用的区域,设置区域为public
	firewall-cmd --get-default-zone
	firewall-cmd --set-default-zone=public
	firewall-cmd --zone=public --list-rich-rules
 查看是否阻断:
	firewall-cmd --query-panic
 放开所有网络:
	firewall-cmd --panic-off

查看开放白名单IP参考用到的脚本:

两个节点都需要核查
[grid@rac1 ~]$ cd $ORACLE_BASE/diag/tnslsnr/rac1/listener/trace 
[grid@rac1 trace]$ pwd
/oracle/app/grid/diag/tnslsnr/rac1/listener/trace
[grid@rac1 trace]$ grep "HOST=.*establish.*\* 0" listener.log | awk -F'*' '{match($3,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/); ip = substr($3,RSTART,RLENGTH);cnt[ip]+=1;last[ip]=$1;}END {for (i in cnt) printf "%-16s %9s %19s\n",i,cnt[i],last[i];}' | sort -k 1

[grid@rac1 trace]$ last|awk '{print $3}'|sort|uniq

netstat -tunlp|grep LISTEN
ip a|grep net
ifconfig -a

image.png
image.png

测试方式:(通过mcasttest.pl工具测试多播是否正常)

Grid Infrastructure Startup During Patching, Install or Upgrade May Fail Due to Multicasting Requirement (Doc ID 1212703.1)
image.png
mcasttest下载https://www.modb.pro/doc/113830

[root@rac2 ~]# systemctl status firewalld
鈼[0m firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-07-31 10:42:25 CST; 2min 37s ago
     Docs: man:firewalld(1)
 Main PID: 1313 (firewalld)
   CGroup: /system.slice/firewalld.service
           鈹斺攢1313 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Jul 31 10:42:25 rac2 systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 31 10:42:25 rac2 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@rac2 ~]# su - grid
Last login: Mon Jul 31 10:44:39 CST 2023
[grid@rac2 ~]$ cd mcasttest/
[grid@rac2 mcasttest]$ perl mcasttest.pl -n rac1,rac2 -i ens33,ens34
###########  Setup for node rac1  ##########
Checking node access 'rac1'
Checking node login 'rac1'
Checking/Creating Directory /tmp/mcasttest for binary on node 'rac1'
Distributing mcast2 binary to node 'rac1'
###########  Setup for node rac2  ##########
Checking node access 'rac2'
Checking node login 'rac2'
Checking/Creating Directory /tmp/mcasttest for binary on node 'rac2'
Distributing mcast2 binary to node 'rac2'
###########  testing Multicast on all nodes  ##########

Test for Multicast address 230.0.1.0

Jul 31 10:45:24 | Multicast Succeeded for ens33 using address 230.0.1.0:42000
Jul 31 10:45:25 | Multicast Succeeded for ens34 using address 230.0.1.0:42001

Test for Multicast address 224.0.0.251

Jul 31 10:45:26 | Multicast Succeeded for ens33 using address 224.0.0.251:42002
Jul 31 10:45:27 | Multicast Succeeded for ens34 using address 224.0.0.251:42003
[grid@rac2 mcasttest]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DGLISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac2                     STABLE
ora.dgorcl.db
      1        OFFLINE OFFLINE                               STABLE
      2        OFFLINE OFFLINE                               STABLE
ora.dw.db
      1        ONLINE  ONLINE       rac1                     Open,HOME=/oracle/ap
                                                             p/oracle/product/19c
                                                             /dbhome_1,STABLE
      2        ONLINE  ONLINE       rac2                     Open,HOME=/oracle/ap
                                                             p/oracle/product/19c
                                                             /dbhome_1,STABLE
ora.integrated_office.db
      1        OFFLINE OFFLINE                               STABLE
ora.orcl.db
      1        OFFLINE OFFLINE                               STABLE
      2        OFFLINE OFFLINE                               STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac2                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
[grid@rac2 mcasttest]$ ip a|grep net
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.52.182/24 brd 192.168.52.255 scope global noprefixroute ens33
    inet 192.168.52.184/24 brd 192.168.52.255 scope global secondary ens33:2
    inet 192.168.52.186/24 brd 192.168.52.255 scope global secondary ens33:3
    inet6 fe80::59f1:28bc:2c87:431f/64 scope link noprefixroute 
    inet 192.168.161.182/24 brd 192.168.161.255 scope global noprefixroute ens34
    inet 169.254.14.134/19 brd 169.254.31.255 scope global ens34:1
    inet6 fe80::4c5:492:8ee1:5688/64 scope link noprefixroute 
[grid@rac2 mcasttest]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
#public
192.168.52.181             rac1
192.168.52.182             rac2
#vip
192.168.52.183             rac1-vip
192.168.52.184             rac2-vip
#priv
192.168.161.181    rac1-priv
192.168.161.182    rac2-priv
#scan
192.168.52.185     rac-scan
192.168.52.186  rac-scan

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论