RHEL 7.1でOracle 12cのためのfirewalldの設定をする
仕事で、Oracle 12c Enterprise EditionをRHEL7.1にインストールした。 Oracleでは通常、Oracleのリスナーで1521、EM Expressで5500のポートを使用する。
RHEL6のときはiptablesの設定をしていたが、RHEL7からはfirewalldに変更されたので、その設定方法を調べた。
方法としては2つ。
1つは、firewall-cmd
でzoneに対して該当ポートの使用を許可する方法。
rootでログインしているときに、firewall-cmd
で
# firewall-cmd --zone=public --add-port=5500/tcp --permanent # firewall-cmd --zone=public --add-port=1521/tcp --permanent
このように該当のポートを特定のzoneに対して許可したあと
# firewall-cmd --reload
設定を反映する。permanent
オプションはその設定を永続化させるもので、再起動しても設定内容は有効になる。
もう1つは、oracleのための設定ファイルを作成して、それをzoneに設定する方法。
rootでログインしているときに
# cat <<'EOT' > /etc/firewalld/services/oracle12c.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>Oracle 12c</short> <description>Oracle Database 12c Release 1 Enterprise Edition</description> <port protocol="tcp" port="1521"/> <port protocol="tcp" port="5500"/> </service> EOT
このような設定ファイルを作成する。firewall-cmd
でサービスを参照すると
# firewall-cmd --permanent --get-services RH-Satellite-6 ... openvpn oracle12c pmcd ... wbem-https
サービスの一覧にoracle12c
と表示される。作成したファイル名がそのままサービス名になる。
そして、firewall-cmd
で
# firewall-cmd --zone=public --add-service=oracle12c --permanent
作成したサービズをzoneに追加し
# firewall-cmd --reload
設定を反映する。zoneのステータスを参照すると
# firewall-cmd --zone=public --list-all public (default, active) interfaces: ens1 sources: services: dhcpv6-client oracle12c ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
先ほど設定したサービスが設定されていることが確認できる。