【Oracle】データベースのIPアクセス制限を行う方法|リスナーレベルのセキュリティ強化

【Oracle】データベースのIPアクセス制限を行う方法|リスナーレベルのセキュリティ強化 Oracle

Oracleデータベースのセキュリティ対策の一環として、特定のIPアドレスだけにアクセスを許可することで、外部からの不正アクセスを防ぐことが可能です。この記事では、Oracle Listenerの設定ファイルを編集して、IPアドレス単位で接続制限を行う方法を紹介します。

アクセス制限の概要

Oracleでは、listener.oraファイルとは別に、sqlnet.oraファイルやprotocol.oraファイルなどでネットワーク通信の設定ができます。IPアクセス制限はlistener.oraまたはOSレベルのiptablesfirewalldと連携して実現できますが、Oracle独自の「Valid Node Checking」機能を使えば、Oracleレイヤーで制限することが可能です。

Valid Node Checking(有効ノードチェック)の利用

sqlnet.oraファイルに以下の設定を追加することで、許可するIPと拒否するIPを定義できます。

例:特定IPのみ許可

# $ORACLE_HOME/network/admin/sqlnet.ora に追加
tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.0.10,192.168.0.11)
tcp.excluded_nodes = (0.0.0.0)

tcp.validnode_checkingyes に設定すると、invited_nodes または excluded_nodes の設定が有効になります。上記の例では、192.168.0.10と192.168.0.11からの接続のみ許可され、それ以外は拒否されます。

設定後の反映

設定を反映するには、Listenerの再起動が必要です。

lsnrctl stop
lsnrctl start

または、Oracleサービスそのものを再起動することで確実に適用できます。

ログ確認

アクセス制限によって拒否された接続は、$ORACLE_HOME/network/log/listener.log に記録されます。設定が正しく動作しているかの確認にも役立ちます。

補足:Linuxファイアウォールとの併用

Oracle独自の機能だけでなく、OSレベルでもファイアウォール設定を併用することで二重のセキュリティが実現できます。iptablesfirewalldを用いて1521ポート(デフォルトのリスナーポート)へのアクセス制御もおすすめです。

まとめ

Oracleデータベースへの不正アクセスを防ぐには、リスナー設定でIPアドレスによるアクセス制御を行うのが有効です。sqlnet.oraによるValid Node Checking機能を使えば、Oracle独自の仕組みで柔軟に接続元IPを管理できます。特に本番環境では、ネットワークセキュリティの一環として必ず導入しておきたい対策です。