English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод установки пароля слушателя Oracle (LISTENER)

Есть ли безопасность для слушателя? Да! По умолчанию, любому пользователю не требуется использовать пароль для выполнения операций с Oracle Listener через инструмент lsnrctl или для его остановки, что приводит к тому, что новые сеансы не могут быть установлены. В Oracle 9i Oracle слушатель позволяет любому пользователю удаленно управлять слушателем с помощью lsnrctl. Это также легко может привести к повреждению базы данных.

1. Остановка слушателя без установления пароля

[oracle@test ~]$ lsnrctl stop listener_demo92  --> останавливается слушатель, видно, что пароль не требуется для остановки 
LSNRCTL для Linux: Версия 9.2.0.8.0 - Производственный выпуск 26-JUN-2011 08:22:26          
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.             
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))         
Команда выполнена успешно 

2. Перезапуск слушателя и настройка пароля

[oracle@test ~]$ lsnrctl                                                 
LSNRCTL для Linux: Версия 9.2.0.8.0 - Производственный выпуск 26-JUN-2011 08:24:09                         
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.                            
Добро пожаловать в LSNRCTL, введите "help" для получения информации.	                                    
LSNRCTL> set current_listener listener_demo92 --> устанавливается текущий слушатель                             
Текущий слушатель: listener_demo92                                            
LSNRCTL> start       --> запускается процесс, пароль не требуется, подробности запуска опущены                         
LSNRCTL> change_password  --> используйте change_password для установки пароля                                
Old password:                                                       
New password:                                                       
Reenter new password:                                                   
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))                        
Пароль изменен для listener_demo92                                           
Команда выполнена успешно                                            
LSNRCTL> save_config    --> внимание, save_config в этом месте失败                                 
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))                        
TNS-01169: The listener has not recognized the password                                  
LSNRCTL> set password    --> введите новый установленный пароль для проверки                                    
Password:                                                         
Команда выполнена успешно                                            
LSNRCTL> save_config    --> повторное сохранение конфигурации save_config успешно                                     
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))                        
Сохранены параметры конфигурации listener_demo92.                                      
Файл параметров listener  /oracle/92/network/admin/listener.ora                              
Старый файл параметров  /oracle/92/network/admin/listener.bak                                
Команда выполнена успешно                                            
--> После добавления пароля можно увидеть новую запись в файле listener.ora, это параметр пароля (Примечание: несмотря на использование метода управления паролями, listener можно запустить без пароля)
[oracle@test admin]$ more listener.ora                                          
	#----ДОБАВЛЕНО TNSLSNR 26-JUN-2011 05:12:48---                                      
	PASSWORDS_listener_demo92 =                                               
	#--------------------------------------------

3. Попытка остановить listener без использования пароля

[oracle@test ~]$ lsnrctl stop listener_demo92                        
LSNRCTL для Linux: Версия 9.2.0.8.0 - Production на 26-JUN-2011 06:09:51          
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.             
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))         
TNS-01169: Листенер не распознал пароль --> Получен ошибочный сигнал, необходимо использовать пароль для аутентификации

4. Использование пароля для остановки listener

[oracle@test ~]$ lsnrctl                            
LSNRCTL> установить текущий_listener listener_demo92                 
Текущий слушатель: listener_demo92                      
LSNRCTL> stop                                 
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))   
TNS-01169: The listener has not recognized the password            
LSNRCTL> set password                             
Password:                                   
Команда выполнена успешно                       
LSNRCTL> stop                                 
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))   
Команда выполнена успешно                       
LSNRCTL> status                                
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))   
TNS-12541: TNS:нет слушателя                           
 TNS-12560: TNS:ошибка адаптера протокола                     
 TNS-00511: Нет слушателя                            
  Ошибка Linux: 111: Отказ в доступе                    
Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))       
TNS-12541: TNS:нет слушателя                           
 TNS-12560: TNS:ошибка адаптера протокола                     
 TNS-00511: Нет слушателя                            
  Ошибка Linux: 2: Файл или каталог не найден	                 

5. Проблема с失败ом save_config

--> В Oracle 9i команда save_config будет失败                                     
	LSNRCTL> save_config                                                 
	Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<имя_хоста>)(PORT=<порт>)))                  
	TNS-01169: The listener has not recognized the password	                               
--> Следует сначала использовать команду set password, а затем save_config, чтобы успешно сохранить конфигурацию.                              
	LSNRCTL> set password                                                
	Пароль: <пароль, который вы выбрали>                                          
	Команда выполнена успешно                          
/* В Oracle 10g подобная проблема не возникает,因为在 10g можно использовать способ аутентификации, основанный на операционной системе. Слушатель будет определять, если пользователь является членом группы dba,
Будет предоставлен доступ к изменениям пароля, сохранению конфигурации и остановке слушателя и т.д. */                                 

6. Настройка параметра ADMIN_RESTRICTIONS в файле listener.ora

Действие параметра:
После того как в файле listener.ora был установлен параметр ADMIN_RESTRICTIONS, во время работы слушателя не разрешается выполнять любые управляющие команды, и команда set будет недоступна
Это не работает ни на локальном сервере, ни при выполнении из удаленного места. В этом случае для изменения настроек слушателя необходимо только
Использовать команду lsnrctl reload или команду lsnrctl stop/start для повторной загрузки конфигурации слушателя.
Метод изменения:
В файле listener.ora вручную добавить следующую строку
ADMIN_RESTRICTIONS_<listener_name> = ON

Below is the supplement from other netizens:

LSNRCTL> change_password
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
Password changed for LISTENER
Команда выполнена успешно
LSNRCTL> set password
Password:
Команда выполнена успешно
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
Saved LISTENER configuration parameters.
Файл параметров listener /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Old Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.bak
Команда выполнена успешно
[oracle@ecp-uc-db1 admin]$ cat listener.ora
#—-ADDED BY TNSLSNR 10-JUN-2011 18:13:24—
PASSWORDS_LISTENER = 6D7AA003392C436A
#——————————————–
note: It is necessary to add (restart listener) on the 10g database
LOCAL_OS_AUTHENTICATION_LISTENER = OFF

1、Before adding LOCAL_OS_AUTHENTICATION_LISTENER = OFF

Security ON: Password or Local OS Authentication

2、After adding LOCAL_OS_AUTHENTICATION_LISTENER = OFF

Безопасность ВКЛЮЧЕНА: Пароль
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
TNS-01169: The listener has not recognized the password
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
TNS-01169: The listener has not recognized the password
LSNRCTL> set password 123456
Команда выполнена успешно
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.4.0 – Production
Дата старта 10-JUN-2011 18:15:49
Время работы 0 дней 0 ч. 1 мин. 16 сек
Уровень отладки ОТКЛЮЧЕН
Безопасность ВКЛЮЧЕНА: Пароль
SNMP ВЫКЛЮЧЕН
Файл параметров listener /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Журнал listener /opt/oracle/product/10.2.0/db_1/network/log/listener.log
Обзор точек监听...
(ОПИСАНИЕ=(АДРЕС=(ПРОТОКОЛ=tcp)(ХОСТ=ECP-UC-DB1)(ПОРТ=1521)))
(ОПИСАНИЕ=(АДРЕС=(ПРОТОКОЛ=ipc)(КЛЮЧ=EXTPROC0)))
Обзор служб...
Служба “PLSExtProc” имеет 1 инстанцию(ий).
Инстанция “PLSExtProc”, статус Неизвестен, имеет 1 обработчик(ов) для этой службы...
Служба “ecp” имеет 1 инстанцию(ий).
Инстанция “ecp”, статус Готов, имеет 1 обработчик(ов) для этой службы...
Служба “ecpXDB” имеет 1 инстанцию(ий).
Инстанция “ecp”, статус Готов, имеет 1 обработчик(ов) для этой службы...
Служба “ecp_XPT” имеет 1 инстанцию(ий).
Инстанция “ecp”, статус Готов, имеет 1 обработчик(ов) для этой службы...
Команда выполнена успешно

Вам может понравиться