Asegurando el Listener.

Detalles del listener
Los archivos importantes para el listener son los siguientes:
$ORACLE_HOME/bin/lsnrctl Programa para controlar el listener.
$ORACLE_HOME/network/admin/listener.ora Archivo de configuración.
$ORACLE_HOME/bin/tnslnsr El proceso del listener.

El lsnrctl es el programa para subir(start) y bajar(stop) el proceso del listener (tnslnsr) además de permitir realizar algunas configuraciones. Cuando el tnslnsr se ejecuta éste lee la información (configuración) guardada en el archivo listener.ora.

Modos del listener
El listener puede ser configurado en los siguientes modos:
1. Database Provee acceso por medio de la red a una instancia de Oracle.
2. PLSExtProc Es un método para los paquetes de PL/SQL para acceder ejectutables dentro del sistema operativo.
3. Executable Provee acceso a ejecutables por medio de la red.
El modo database es el más utilizado para realizar conecciones a una base de datos. El modo PLSExtProc es utilizado para acceder a ejecutables en el sistema operativo y esta configurado por default. El modo executable permite definir a un ejecutable para ser accesible por medio de una conexión TNS, regularmente esta opción solo se utiliza en Oracle Applications.

Asegurando el listener
Si un password no esta puesto en el listener, alguien que conozca el nombre del host (o dirección IP) y el puerto del listener (default 1521) puede tener control del listener gracias a que el listener se puede controlar de manera remota.
Lo que se puede controlar es lo siguiente:
• Bajar el listener.
• Poner un password para que nadie lo pueda controlar.
• Obtener información detallada del listener, la base de datos y la aplicación al generar logs.
Poner el password
Para asignar un password al listener es muy sencillo y se puede realizar de dos maneras. La primera es asignarlo por medio del archivo de configuración listener.ora con el parametro “PASSWORDS_” pero el inconveniente es que el password quedara de manera clara en el archivo. La forma recomendada es hacerlo por medio del programa lsnrctl como sigue:
Primero corremos el comando stat para saber si hay password asignado:

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date                28-MAY-2006 15:49:28
Uptime                    0 days 0 hr. 35 min. 37 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF

Como se puede observar en la parte de Security aparece ON: Local OS Authentication debido a que se esta utilizando Oracle 10g, en la version 9i apareceria OFF como lo muestra el siguiente ejemplo:

LSNRCTL> stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxxx)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for HPUX: Version 9.2.0.6.0 - Production
Start Date                29-MAY-2006 05:48:47
Uptime                    0 days 11 hr. 54 min. 40 sec
Trace Level               off
Security                  OFF
SNMP                      OFF

Una vez que se verifica que no se tiene asignado un password se lo asignamos:

LSNRCTL> change password
Old password:
New password:
Reenter new password:
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
No changes to save for LISTENER.
The command completed successfully

En este caso se asigno el password TEST, si verificamos el archivo listener.ora podemos verificar que el password fue asignado al parametro mencionado anteriormente.

LSNRCTL> stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxx)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for HPUX: Version 9.2.0.6.0 - Production
Start Date                29-MAY-2006 05:48:47
Uptime                    0 days 11 hr. 54 min. 40 sec
Trace Level               off
Security                  ON
SNMP                      OFF

Ahora se puede ver que la opción de security esta en ON, esto indica que tiene asignado un password.

Ahora cada vez que se requiera hacer algo con el lsnrctl se debe proveer el password antes de realizarlo, si no mostrará un error como el siguiente:

LSNRCTL> stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxx)(PORT=1521)))
TNS-01169: The listener has not recognized the password

Debemos proveer el password:

LSNRCTL> set password
Password:
The command completed successfully

Una vez puesto el password el archivo listener.ora tiene una nueva linea de configuración donde esta asignado el password.

#----ADDED BY TNSLSNR 29-MAY-2006 10:49:45---
PASSWORDS_LISTENER = AB2E99998E0FZZZZ
#--------------------------------------------
  1. #1 by Walter on 4 January, 2007 - 16:02

    Si le pongo clave al listener cuando tengo
    que arrancarlo y/o detenerlo como sería la
    línea de comando para tener en cuenta la clave
    y no me de error.
    Saludos.
    Walter.

  2. #2 by Delfino Nunez on 4 January, 2007 - 23:40

  3. #3 by BrotherSV on 8 January, 2009 - 19:56

    Tengo una consulta para que se utilizan las siguientes tablas
    WM$CURCONFLICT_HIERA
    WM$PARCONFLICT_HIERA
    en Oracle

  4. #4 by delfinonunez on 9 January, 2009 - 01:52

    No conozco esas tablas, tal vez sean se alguna otra applicación. Tal vez sean de Oracle Applications, no tengo idea.

  5. #5 by WilliamDevia on 4 May, 2009 - 19:12

    Muy buena orrientacion. sin embargo cuando cambio el password sale: TNS-01101: Could not find service name password
    NNC-00405: network failure

    Podri indicarme que hacer? De antemano gracias!!!

  6. #6 by WilliamDevia on 4 May, 2009 - 19:52

    Gracias … estaba digitando mal el comando … no era change password sino change_password

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: