miércoles, 13 de mayo de 2009

Desconexión constante desde aplicación utilizando Oracle10gR2

Si al verificar el alert.log de la instancia encuentras el error:
  • WARNING: 'inbound connection timed out (ORA-3136)'

Que debes hacer.?

A nivel de Oracle Net 10g, el parámetro INBOUND_CONNECT_TIMEOUT, cambio de valor, para determinar cuanto tiempo máximo espera una conexión de usuario en obtener respuesta por parte del listener.

Recordemos, que mucha gente ha escrito sobre las múltiples vulnerabilidades, a las cuales esta expuesto el servicio LISTENER de Oracle. El valor de facto en las versiones previas era "0", lo que daba como resultado que un cliente podría durar "n" minutos en la pantalla de logeo del aplicativo, sin realmente ingresar a la base de datos.

Esta exposición, más que una vulnerabilidad, daba chance a que se pudiera utilizar al servicio LISTENER, como intermediario para realizar "Denial of Service (DOS)".

A partir de release 2 de Oracle 10g, esta valor es seteado de facto a 60 ( segundos ), lo cuál podría generar algunos errores de conexión, con aplicaciones de terceros.

Este parámetro es de configuración en el archivo LISTENER.ORA y determina el tiempo de espera máximo para que un cliente complete su autentificación.

Se puede utilizar el parámetro "SQLNET.INBOUND_CONNECT_TIMEOUT" en el sqlnet.ora en combinación con el INBOUND_CONNECT_TIMEOUT_listenername, para proteger de ataques al listener y a la base de datos, en ambientes con exposición, con accesos desde fuera del DMZ.

Estos parámetros son seteados del lado del servidor de base de datos:

  • listener.ora: INBOUND_CONNECT_TIMEOUT_listenername
  • sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT

No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar