تغییر شماره پورت پیشفرض 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 جدید رجیستر میشود. این روش نه تنها از لحاظ کارایی و نگهداری مفید است، بلکه از دیدگاه امنیتی نیز توصیه میشود تا خطرات مربوط به دسترسی غیرمجاز و حملات به پورتهای پیشفرض کاهش یابد.