Oracle Listener (tnslsnr) 預設無密碼保護,任何人只要有網路存取權,即可透過 lsnrctl 關閉 Listener、修改參數、甚至竊取資料庫版本、服務名稱等敏感資訊。本文提供標準設定密碼流程,含互動式指令與 save_config 持久化步驟。
lsnrctl stop 癱瘓資料庫服務。LOG_DIRECTORY、TRACE_LEVEL 等參數,導致磁碟寫滿或效能下降。services、status 取得 SID、版本、OS 資訊,作為後續攻擊情報。$ORACLE_HOME/bin/lsnrctl
LSNRCTL> change_password
Old password: <直接 Enter,若原無密碼>
New password: <輸入新密碼>
Reenter new password: <再次輸入>
Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=XXX))
Password changed for LISTENER
The command completed successfully
LSNRCTL> set password
Password: <輸入新密碼>
LSNRCTL> save_config
The command completed successfully
[NSFOCUS AURORA]
change_password:互動式修改,舊密碼若無則直接 Enter。set password:讓目前 lsnrctl session 帶入密碼,後續指令才能生效。save_config:關鍵,將密碼寫入 listener.ora(加密儲存),重啟 Listener 後依然有效。若略過此步,重啟後密碼失效。lsnrctl status
-- 未輸入密碼會報錯:TNS-01169: The listener has not recognized the password
lsnrctl set password
Password: <輸入密碼>
lsnrctl status
-- 正常顯示服務狀態
listener.ora 加入 SECURE_REGISTER_LISTENER = (IPC, TCPS),強制本地 IPC 或加密 TCPS 註冊。ADMIN_RESTRICTIONS_LISTENER = ON,限制遠端管理指令。listener.ora,刪除 PASSWORDS_LISTENER 那一行,重啟 Listener 即恢復無密碼狀態,再重新設定。save_config 需在各節點執行。花 3 分鐘設定 Listener 密碼,即可封鎖一大類未授權管理操作,是資料庫基礎防護的必做項目。