تغییر نام و شماره پورت Listener در Oracle 19c با استفاده از srvctl

تغییر شماره پورت پیش‌فرض Listener و همچنین تغییر نام آن از لحاظ امنیتی یک اقدام توصیه‌شده است. بسیاری از حملات به سیستم‌های دیتابیس، با هدف قرار دادن پورت‌های پیش‌فرض مانند ۱۵۲۱ (پورت پیش‌فرض Oracle Listener) انجام می‌شود. تغییر پورت و نام Listener می‌تواند یک لایه امنیتی اضافی برای محافظت از دیتابیس شما در برابر تهدیدات و دسترسی‌های غیرمجاز فراهم کند.

در این مقاله، نحوه تغییر نام و شماره پورت Listener در Oracle 19c با استفاده از ابزار srvctl را توضیح خواهیم داد. در این مثال، شماره پورت پیش‌فرض Listener از ۱۵۲۱ به ۷۶۵۴ تغییر داده شده است.

پیش‌نیازها

  • دسترسی به کاربر Oracle با مجوزهای کافی برای اجرای دستورات srvctl.
  • نصب Oracle Grid Infrastructure یا Oracle Restart.

مراحل انجام کار

۱. نمایش تنظیمات فعلی Listener

برای مشاهده تنظیمات فعلی Listener، دستور زیر را اجرا کنید:

srvctl config listener

خروجی این دستور مشابه زیر خواهد بود:

Name: LISTENER

Type: Database Listener

Home: /u01/app/19.22/grid

End points: TCP:1521

Listener is enabled.

این خروجی نشان می‌دهد که Listener با نام LISTENER در پورت ۱۵۲۱ فعال است.

۲. توقف و حذف Listener فعلی

برای تغییر نام و شماره پورت Listener، ابتدا باید Listener فعلی را متوقف و حذف کنید:

srvctl stop listener -listener LISTENER

srvctl remove listener -listener LISTENER

۳. ایجاد Listener جدید با نام و پورت جدید

پس از حذف Listener قبلی، می‌توانید Listener جدیدی با نام و پورت دلخواه ایجاد کنید. در این مثال، نام جدید lsnr و شماره پورت ۷۶۵۴ خواهد بود:

srvctl add listener -listener lsnr -endpoints TCP:7654

srvctl start listener -listener lsnr

۴. بررسی تنظیمات Listener جدید

برای اطمینان از ایجاد Listener جدید با تنظیمات صحیح، مجدداً دستور srvctl config listener را اجرا کنید:

srvctl config listener

خروجی باید مشابه زیر باشد:

Name: LSNR

Type: Database Listener

Home: /u01/app/19.22/grid

End points: TCP:7654

Listener is enabled.

۵. بررسی وضعیت Listener جدید

برای بررسی وضعیت Listener جدید و اطمینان از اینکه به درستی کار می‌کند، از دستور lsnrctl استفاده کنید:

lsnrctl status lsnr

۶. تغییر پورت Local Listener در دیتابیس

پس از تغییر پورت Listener، باید اطمینان حاصل کنید که دیتابیس می‌تواند خود را در پورت جدید رجیستر کند. این کار را با تنظیم پارامتر LOCAL_LISTENER انجام دهید. برای این منظور، وارد محیط SQL*Plus شده و دستور زیر را اجرا کنید:

sqlplus / as sysdba

SQL> ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=7654))' SCOPE=BOTH;

SQL> ALTER SYSTEM REGISTER;

در صورتی که نامی در حال حاضر برای local_listener آمده است، اطلاعات مربوط به آن نام را در tnsnames.ora ویرایش کنید.

۷. تست اتصال به Listener

برای اطمینان از عملکرد صحیح Listener جدید، می‌توانید از دستور زیر استفاده کنید:

[oracle@vahiddb1922 ~]$ lsnrctl status LSNR

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 01-SEP-2024 16:23:28

Copyright (c) 1991, 2023, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LSNR)))

STATUS of the LISTENER

------------------------

Alias                     LSNR

Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date                01-SEP-2024 16:18:55

Uptime                    0 days 0 hr. 4 min. 33 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/19.22/grid/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/vahiddb1922/lsnr/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LSNR)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.36)(PORT=7654)))

Services Summary...

Service ".vahidnow.lab" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

Service "orcl.vahidnow.lab" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully

اگر همه تنظیمات به درستی انجام شده باشد، باید اتصال به Listener جدید با پورت ۷۶۵۴ برقرار شود.

نتیجه‌گیری

با استفاده از مراحل فوق، توانستید نام و شماره پورت Listener را با استفاده از srvctl در Oracle 19c تغییر دهید و مطمئن شوید که دیتابیس به درستی در Listener جدید رجیستر می‌شود. این روش نه تنها از لحاظ کارایی و نگهداری مفید است، بلکه از دیدگاه امنیتی نیز توصیه می‌شود تا خطرات مربوط به دسترسی غیرمجاز و حملات به پورت‌های پیش‌فرض کاهش یابد.