viernes, 26 de septiembre de 2008

Bloquear el acceso a base de datos por IP

OBJETIVO

Cómo bloquear desde el sqlnet.ora el acceso a la base de datos desde una ip concreta.

BLOQUEAR EL ACCESO A ORACLE DESDE UNA IP

En caso de no tener un firewall para bloquear el acceso de ciertas ips a una base de datos lo podemos realizar a través del sqlnet.ora.

El “secreto” para bloquear o restringir el acceso por IP a la base de datos se realiza en el archivo sqlnet.ora. Este archivo lo podemos encontrar en el directorio $ORACLE_HOME/network/admin junto con los archivos tnsnames.ora y listener.ora

Editamos el archivo sqlnet.ora y añadimos las siguientes líneas:

tcp.validnode_checking = yes

Con esto conseguimos chequear los listeners que tengamos activos.

A continuación escribimos lo siguiente:

tcp.invited_nodes = (hostnameA, hostnameB)
tcp.excluded_nodes = (192.168.2.15)

Con tcp.invited_nodes puedo especificar qué máquinas quiero que su conexión sea aceptada por las base de datos.

Con tcp.excluded_nodes excluimos las máquinas que no queremos que se conecten a las bases de datos.

La idea de este mecanismo es realizar una lista de las máquinas que queremos que se conecten o realizar una lista de las máquinas que no queremos que se conecten a nuestra base de datos.

A pesar de este mecanismo de seguridad, no podemos decir que estemos totalmente exentos de recibir ataques.

Algunas reglas a tener en cuenta para generar la lista de IPS / hostnames invitados o excluidos pueden ser la siguiente:

• Poner todos los nodos excluidos en una única línea.
• Poner todos los nodos invitados en una única línea.
• Se debería incluir en el listado de nodos invitados localhost.

Después de introducir estas reglas en nuestro sqlnet.ora debemos de reiniciar los listeners de la máquina.

$ lsnrctl stop nb_listener
$ lsnrctl start nb_listener

Siendo nb_listener el nombre del listener que tengamos iniciado en la máquina y que podemos comprobar en el archivo listener.ora.
Con nuestro usuario oracle realizamos lo siguiente:

3 comentarios:

Anónimo dijo...

hola eylanzo, muy bueno el blog,si lo deseas, ingresa a mi pagina, a publicar un comentario. saludos

Anónimo dijo...

hola, muy bueno el blog,ingresa a mi pagina a intercambiar link.
un abrazo

Morice dijo...

Hola., Me gustaría saber cual es el limite, si es que tiene, de caracteres en la línea del parámetro TCP.INVITED_NODES dado que comencé a agregar direcciones y en determinado momento dejo de funcionar con errores de conexcion.
Gracias.