Oracle Databaseのリスナー(listener)は、デフォルトではTCPポート 1521 を使用します。
では、このポート番号を別の番号に変えたほうが良いのでしょうか?
結論から言うと──
基本は1521のままでOK。セキュリティは他の対策を優先しましょう。
他の対策の具体例
- インターネットに直接公開しない(VPNや踏み台サーバー経由のみ許可)
- ファイアウォールやSecurity Groupで接続元IPを制限
- 通信を暗号化(TCPSまたはネイティブ暗号化を必須化)
- リスナー設定のリモート変更禁止(
ADMIN_RESTRICTIONS_listener_name = ON) - リスナーログの監視による不正アクセス検知
- 不要なリスナーを停止・削除(複数構成時)
本記事では、ポート変更の効果と注意点、そして本当にやるべき対策を解説します。
1. そもそもリスナーとは?
リスナーは、クライアントからの接続要求を受け付け、適切なデータベースインスタンスに接続する役割を持つプロセスです。
[クライアント] → (TCP/IP, ポート1521) → [リスナー] → [DBインスタンス]
デフォルトではポート 1521 を使用しますが、設定ファイル(listener.ora)で変更可能です。
リスナーについては以下の記事で紹介しています。

Oracleリスナー:基礎から実践、ベストプラクティスまで完全ガイド
「データベース接続がスムーズに行かない…」こんな問題に直面したことはありませんか? それを解決する鍵となるのが、Oracleリスナーです。本記事では、リスナーの基礎から高度な構成、トラブルシューティング、セキュリティ設定、そしてパフォーマン…
[参考]
Database Net Servicesリファレンス
2. ポート変更のメリットと限界
メリット
- 自動スキャンのノイズを減らせる
インターネット上には「1521番ポートを狙って接続を試みる」ツールが存在します。ポートを変えることで、そういった機械的なスキャンに引っかかりにくくなります。 - 複数リスナーの使い分け
1台のサーバーで複数環境を運用する場合に、ポートを分けて管理できます。
限界
- 攻撃者は全ポートをスキャンできるため、ポートを変えるだけでは本質的なセキュリティ向上にはならない。
- 変更すると、全クライアント設定(tnsnames.ora、EZCONNECT、アプリ設定など)を更新する必要がある。
- RAC/SCANやData Guardなどでは、構成全体に影響が及び、変更手順が複雑になる。
3. 優先すべきは「公開範囲の最小化」と「アクセス制限」
ポート変更よりも、まずは以下の対策を行うほうが効果的です。
┌───────────────┐
│ 本質的なセキュリティ対策 │
└───────┬───────┘
▼
1) インターネットに直接公開しない(VPN/踏み台経由)
2) ファイアウォールで接続元IPを制限
3) 通信を暗号化(TCPS or ネイティブ暗号化必須化)
4) ADMIN_RESTRICTIONSでリスナー設定変更を禁止
5) ログ監視で不正アクセス検知
これらを行えば、1521のままでも十分安全に運用できます。
4. どうしてもポートを変える場合の手順(単一インスタンス例)
1) listener.ora を編集
例:1522に変更
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost.example.com)(PORT=1522))
)
)
2) リスナー再読込
lsnrctl reload
# うまくいかなければ stop / start
3) LOCAL_LISTENER の設定変更
ALTER SYSTEM SET LOCAL_LISTENER =
'(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost.example.com)(PORT=1522))' SCOPE=BOTH;
ALTER SYSTEM REGISTER;
4) クライアント設定更新
- tnsnames.ora
- EZCONNECT 方式(
host:port/service_name)
注意:RAC/SCAN環境では、SCANリスナーやREMOTE_LISTENER設定、クラスタ全体の影響を確認してから変更してください。
5. まとめ
- ポート変更は必須ではない。基本は1521のままで問題なし。
- セキュリティを高めたいなら、ポート変更よりもIP制限・暗号化・非公開化が効果的。
- ポート変更は補助的な対策として、環境全体への影響を理解した上で計画的に行う。
コメント