English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O listener também tem segurança? Sim! Pelo padrão, qualquer usuário não precisa usar nenhuma senha para operar ou desligar o Oracle Listener através da ferramenta lsnrctl, causando que novas sessões não possam estabelecer conexão. No Oracle 9O listener do Oracle permite que qualquer pessoa utilize o lsnrctl para gerenciar remotamente o listener. Isso também pode levar ao danificação do banco de dados.
1. Parar o listener sem definir senha
[oracle@test ~]$ lsnrctl stop listener_demo92 --> Parar o listener, pode-se ver que não é necessário nenhuma senha para parar LSNRCTL para Linux: Versão 9.2.0.8.0 - Produção em 26-JUN-2011 08:22:26 Direitos autorais (c) 1991, 2006, Oracle Corporation. Todos os direitos reservados. Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) O comando foi completado com sucesso
2. Reiniciar o listener e definir senha
[oracle@test ~]$ lsnrctl LSNRCTL para Linux: Versão 9.2.0.8.0 - Produção em 26-JUN-2011 08:24:09 Direitos autorais (c) 1991, 2006, Oracle Corporation. Todos os direitos reservados. Bem-vindo ao LSNRCTL, digite "help" para informações. LSNRCTL> set current_listener listener_demo92 --> Definir o listener atual O listener atual é listener_demo92 LSNRCTL> start --> O processo de inicialização também não requer nenhuma senha, os detalhes de inicialização são omitidos LSNRCTL> change_password --> Use change_password para definir a senha Senha antiga: Nova senha: Reentregar nova senha: Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) Senha alterada para listener_demo92 O comando foi completado com sucesso LSNRCTL> save_config --> Atenção: o save_config falhou Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) TNS-01169: O listener não reconheceu a senha LSNRCTL> definir senha --> Inserir a nova senha definida para verificação Senha: O comando foi completado com sucesso LSNRCTL> save_config --> save_config realizado com sucesso novamente Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) Salvo listener_demo92 parâmetros de configuração. Arquivo de Parâmetros do Listener /oracle/92/rede/admin/listener.ora Arquivo de Parâmetros Antigo /oracle/92/rede/admin/listener.bak O comando foi completado com sucesso --> Após adicionar a senha, pode-se ver que o arquivo listener.ora possui um novo registro adicionado, namely a opção de senha (notação: mesmo com o método de gerenciamento de senhas, ainda é possível iniciar o listener sem senha) [oracle@test admin]$ more listener.ora #----ADICIONADO POR TNSLSNR 26-JUN-2011 05:12:48--- PASSWORDS_listener_demo92 = #--------------------------------------------
3. Tentativa de parar a escuta sem usar senha
[oracle@test ~]$ lsnrctl stop listener_demo92 LSNRCTL para Linux: Versão 9.2.0.8.0 - Produção em 26-JUN-2011 06:09:51 Direitos autorais (c) 1991, 2006, Oracle Corporation. Todos os direitos reservados. Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) TNS-01169: O listener não reconheceu a senha --> Recebido mensagem de erro, é necessário autenticação com senha
4. Usar senha para parar a escuta
[oracle@test ~]$ lsnrctl LSNRCTL> set current_listener listener_demo92 O listener atual é listener_demo92 LSNRCTL> stop Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) TNS-01169: O listener não reconheceu a senha LSNRCTL> definir senha Senha: O comando foi completado com sucesso LSNRCTL> stop Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) O comando foi completado com sucesso LSNRCTL> status Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)) TNS-12541: TNS:nenhum listener TNS-12560: Erro do adaptador do protocolo TNS TNS-00511: Nenhum listener Erro do Linux: 111: Conexão recusada Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) TNS-12541: TNS:nenhum listener TNS-12560: Erro do adaptador do protocolo TNS TNS-00511: Nenhum listener Erro do Linux: 2: Arquivo ou diretório não encontrado
5. Problema de save_config
--> No Oracle 9no i, o comando save_config falhará LSNRCTL> save_config Conectando-se a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=<port>))) TNS-01169: O listener não reconheceu a senha --> Deve usar set password antes de save_config, então a configuração será salva com sucesso. LSNRCTL> definir senha Senha: <a senha que você escolheu> O comando foi completado com sucesso /*no Oracle 10não aparecerá problemas semelhantes, porque no10pode usar o método de autenticação baseado no sistema operacional. O listener detectará se o usuário é membro do grupo dba, será concedido o privilégio de alterar a senha, salvar configurações e parar a escuta, entre outros. */
6. Configurar o parâmetro ADMIN_RESTRICTIONS no arquivo listener.ora
Função do parâmetro:
Quando o parâmetro ADMIN_RESTRICTIONS é configurado no arquivo listener.ora, durante a execução do listener, não é permitido executar nenhum comando de administração, e o comando set também não estará disponível
Não funciona, seja em execução local ou remota. Neste momento, a configuração do listener deve ser feita apenas através da modificação manual do arquivo listener.ora. Para que as mudanças entrem em vigor,
Usar o comando lsnrctl reload ou lsnrctl stop/Reiniciar o comando start para recarregar as informações de configuração do listener.
Método de modificação:
Adicionar manualmente a linha a seguir no arquivo listener.ora
ADMIN_RESTRICTIONS_<nome_do_listener> = ON
Abaixo estão as adições de outros usuários:
LSNRCTL> change_password
Senha antiga:
Nova senha:
Reentregar nova senha:
Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=ecp-uc-bd1)(PORT=1521))
Senha alterada para LISTENER
O comando foi completado com sucesso
LSNRCTL> definir senha
Senha:
O comando foi completado com sucesso
LSNRCTL> save_config
Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=ecp-uc-bd1)(PORT=1521))
Parâmetros de configuração do LISTENER salvos.
Arquivo de Parâmetros do Listener /opt/oracle/produto/10.2.0/db_1/rede/admin/listener.ora
Arquivo de Parâmetros Antigo /opt/oracle/produto/10.2.0/db_1/rede/admin/listener.bak
O comando foi completado com sucesso
[oracle@ecp-uc-bd1 admin]$ cat listener.ora
#—-ADICIONADO POR TNSLSNR 10-JUN-2011 18:13:24—
PASSWORDS_LISTENER = 6D7AA003392C436A
#——————————————–
nota:10No g banco de dados é necessário adicionar (reiniciar o listener)
LOCAL_OS_AUTHENTICATION_LISTENER = OFF
1Adicionar LOCAL_OS_AUTHENTICATION_LISTENER = OFF antes
Segurança LIGADA: Senha ou Autenticação Local do SO
2Adicionar LOCAL_OS_AUTHENTICATION_LISTENER = OFF após
Segurança LIGADA: Senha
LSNRCTL> status
Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=ecp-uc-bd1)(PORT=1521))
TNS-01169: O listener não reconheceu a senha
LSNRCTL> stop
Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=ecp-uc-bd1)(PORT=1521))
TNS-01169: O listener não reconheceu a senha
LSNRCTL> definir senha 123456
O comando foi completado com sucesso
LSNRCTL> status
Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=ecp-uc-bd1)(PORT=1521))
STATUS do LISTENER
————————
Alias LISTENER
Versão TNSLSNR para Linux: Versão 10.2.0.4.0 – Produção
Data de Início 10-JUN-2011 18:15:49
Tempo de Uso 0 dias 0 hr. 1 min. 16 sec
Nível de Trace DESLIGADO
Segurança LIGADA: Senha
SNMP DESLIGADO
Arquivo de Parâmetros do Listener /opt/oracle/produto/10.2.0/db_1/rede/admin/listener.ora
Arquivo de Log do Listener /opt/oracle/produto/10.2.0/db_1/rede/log/listener.log
Resumo dos Pontos de Escuta...
(DESCRICAO=(ENDERECO=(PROTOCOLO=tcp)(HOST=ECP-UC-BD1)(PORT=1521))
(DESCRICAO=(ENDERECO=(PROTOCOLO=ipc)(CHAVE=EXTPROC0)))
Resumo dos Serviços...
Serviço “PLSExtProc” tem 1 instância(s).
Instância “PLSExtProc”, status DESCONHECIDO, tem 1 handler(s) para este serviço...
Serviço “ecp” tem 1 instância(s).
Instância “ecp”, status PRONTO, tem 1 handler(s) para este serviço...
Serviço “ecpXDB” tem 1 instância(s).
Instância “ecp”, status PRONTO, tem 1 handler(s) para este serviço...
Serviço “ecp_XPT” tem 1 instância(s).
Instância “ecp”, status PRONTO, tem 1 handler(s) para este serviço...
O comando foi completado com sucesso