Sesion4 Seguridad en Base de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 56

Fundamentos de Seguridad en

base de Datos

Sesión 4: Seguridad en Base de Datos

Docente Uso exclusivo académico; Prohibida su publicación


Jonnathan
1 de 57 Ferrada Castro en plataformas ajenas a capacitación Usach
Contenido del curso
 SESIÓN 1: Introducción a las bases de datos.
 SESIÓN 2: Introducción a SQL
 SESIÓN 3: Fundamentos de seguridad en base datos
 SESIÓN 4: Seguridad en base de datos.

 Participación mediante opiniones (Chat o pedir hablar )


 Participación mediante canales “Pagina web, foro”

2 de 57
Metodología del Curso
La materia del curso se entrega como:

• Slide de presentaciones “PDF”


• Participando de los ejemplos o
demostraciones de software.
• Discusiones en clases.
• Opiniones.

3 de 57
Unidad 4
Fundamentos de seguridad en base de datos

• Listener (Bloqueo de conexiones inseguras)


• SQLNET.ORA (Bloqueo de accesos)
• Modificar puerto de conexión a base de datos
(agregar otro puerto)
• Proteger privilegios de acceso
• Auditoria en oracle 12C
• Logs.

4 de 57
Listener

5 de 57
¿Qué es el listener?

• Listener es un proceso servidor que


provee la conectividad de red con
la base de datos Oracle.

6 de 57
¿Cual es su función?

• El listener está configurado para


escuchar la conexión en un puerto
específico en el servidor de base
de datos. Cuando una se pide una
conexión a la base de datos, el
listener devuelve la información
relativa a la conexión.

7 de 57
¿Qué es Oracle Net Service?

Application RDBMS

Oracle Net TCP/IP Oracle Net


Client or network
Listener Database server
middle tier

Oracle Net Oracle Net


configuration files configuration files

8 de 57
¿Qué es Oracle Net listener?

Enterprise Manager Listener


Cloud Control or
Oracle Net Manager
Oracle databases

Oracle Net
configuration files
<ORACLE_HOME>/network/admin/listener.ora
./sqlnet.ora

9 de 57
Conexión de red de oracle

Para realizar una conexión de cliente, requiere conocer el :


• El host donde se está ejecutando el Listener
• Puerto que el listener utiliza
• Protocolo que el listener está utilizando
• Nombre del servicio que el listener está manejando

Names resolution
10 de 57
Resolución de nombres

CONNECT jsmith/jspass@finflowers

Name resolution

finflowers =(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=flowers-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=finance.us.flowers.com)))

LISTENER
port 1521 finance

flowers-server
11 de 57
Sesiones de usuarios

Server
process

User session PGA

User process

Listener

12 de 57
Nomenclatura

Oracle admite varios métodos de conexión.

• Easy connect naming: Utiliza una cadena de conexión TCP / IP


• Local naming: Utiliza un archivo de configuración local
• Directory naming: Utiliza un servidor de directorio compatible con LDAP
centralizada
• External Name: Utiliza un servicio de nombres no compatibles Oracle

Client/application server
Oracle Net

Oracle Net configuration files


13 de 57
Easy Connect
Está activado por defecto
• No requiere ninguna configuración del lado del cliente
• Sólo es compatible con TCP / IP (sin SSL )
• No ofrece soporte para opciones de conexión avanzadas tales como :
a. Conectar los tiempos de conmutación por error
b. Enrutamiento de origen
c. Balanceo de carga
SQL> CONNECT hr/hr@db.us.oracle.com:1521/dba11g

No Oracle Net configuration files


14 de 57
Local Naming
• Requiere un archivo de nombres resolución del lado del cliente
• Soporta todos los protocolos de Red de Oracle
• Soporta opciones de conexión avanzadas tales como :
a. Conectar los tiempos de conmutación por error
b. Enrutamiento de origen
c. Balanceo de carga

SQL> CONNECT hr/hr@orcl

Oracle Net
15 de 57 configuration files
Directory Naming
• Requiere LDAP con la Red de Oracle información de nombres resolución
cargado :
• Oracle Internet Directory
• Microsoft Active Directory Services
• Soporta todos los protocolos de Red de Oracle
• Soporta opciones de conexión avanzadas

LDAP directory
SQL> CONNECT hr/hr@orcl

Oracle Net
configuration files

16 de 57
External naming
• Utiliza un servicio de nombres no compatibles Oracle incluye:
• Red de Servicios de Información (SNI ) de nombres externo
• Distributed Computing Environment ( DCE) de servicios de directorio de la
célula ( CDS )

Non-Oracle
naming
service

Oracle Net

17 de 57
Herramientas de Configuración ONS
• Página Administrador de Red de Servicios de Administración de la empresa
• Oracle Net Manager
• Oracle Net Configuration Assistant
• Utilidad de control de escucha

18 de 57
Herramientas de Configuración ONS
Component Description File

Listeners Un proceso que reside en el servidor cuya listener.or


responsabilidad es para escuchar las solicitudes de a
conexión de cliente entrantes y gestionar el tráfico al
servidor .
Naming Un método de resolución utilizada por una aplicación cliente
methods para resolver un identificador de la conexión a un descriptor
de conexión al intentar conectarse a un servicio de base de
datos.

Naming (net Un simple nombre ( identificador de conexión ) para tnsnames.or


service name) un servicio que se resuelve en un descriptor de a (local
conexión para identificar la ubicación de red y la configuration)
identificación de un servicio.
Profiles Una colección de parámetros que especifica las sqlnet.ora
preferencias para activar y configurar las
características de Oracle Net en el cliente o servidor.
19 de 57
Enterprise Manager

20 de 57
Oracle Net Manager

21 de 57
Como utilizar los comandos Listener

• Comandos de la Utilidad de control de escucha se pueden emitir desde la


línea de comandos o desde el símbolo lsnrctl .
• La sintaxis de línea de comandos :

$ lsnrctl <command name>


$ lsnrctl start
$ lsnrctl status

LSNRCTL> <command name>


LSNRCTL> start
LSNRCTL> status

22 de 57
Seguridad en Listener
• Una de las opciones de seguridad es agregar una contraseña. ¿Como se
hace? Editando el fichero listener.ora y escribiendo la siguiente línea:

PASSWORDS_LISTENER = orapass

• Cuando guardemos el fichero con los cambios realizamos un reload del


listener.
lsnrctl> reload
• El método para cambiar la contraseña es el siguiente:

lsnrctl> change_password

• Este comando te pedirá la clave antigua y la nueva clave.


Si es la primera vez que ejecutas este comando la contraseña antigua (old
password ) habrá que dejarla en blanco
23 de 57
Seguridad en Listener
• El comando SET y SAVE CONFIG permite guardar esos cambios en el
listener porque ahora el listener está gobernado por un password.

lsnrctl > set password


lsnrctl > save config

• La información antigua se guardará enlistener.bck y listener.ora se


actualizará con los nuevos datos

24 de 57
Bloqueo de acceso al listener
• En caso de no tener un firewall para bloquear el acceso de ciertas IP 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 validar los listener que tengamos activos a


continuación escribimos lo siguiente
tcp.invited_nodes = (hostnameA, hostnameB)
tcp.excluded_nodes = (192.168.2.15)
25 de 57
SQLNET.ORA

26 de 57
Que es el archivo SQLNET

• Es un archivo de texto plano que se utiliza para configurar los parámetros


relacionados del cliente para conectarse al servidor de base de datos.

27 de 57
Parámetros de configuración
• El directorio donde se encuentra este archivo es:
$ORACLE_HOME/network/admin

• Si este archivo no esta configurado correctamente puede aparecer este


mensaje.
error: "ORA-12154: TNS

• Dentro de los parámetros de configuración puede definir el método de


coincidencia cuando el cliente se conecta a la base de datos.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME)

28 de 57
Parámetros de configuración
• El directorio donde se encuentra este archivo es:
$ORACLE_HOME/network/admin

• Si este archivo no esta configurado correctamente puede aparecer este


mensaje.
error: "ORA-12154: TNS

• Dentro de los parámetros de configuración puede definir el método de


coincidencia cuando el cliente se conecta a la base de datos.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME)

29 de 57
Bloquear conexiones inseguras
• Para evitar conexiones inseguras de otros sistemas legasis u otros
$TNS_ADMIN

• Listar los archivos que existen dentro del directorio network.


ls -ltr

• Una vez localizado el archivo editar el archivo con el comando vi.

Vi sqlnet.ora

30 de 57
Bloquear conexiones inseguras
• Una vez ingresen al archivo deben comentar las líneas:

#SQLNET.ALLOWED_VERSION=8
#SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
#SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

• Con esta acción se denegara el acceso de conexión

31 de 57
Bloquear conexiones inseguras
• Otra forma agregar métodos de autenticación, esto se logra agregando la
siguiente linea.

SQLNET.AUTHENTICATION_SERVICES = (NTS)

• “NTS” significa autenticación del sistema operativo, los dos métodos se


pueden usar juntos y el orden indica el método de autenticación
prioritario.

32 de 57
Bloquear conexiones inseguras

• Otros valores.

tcp.validnode_checking = yes

tcp.invited_nodes = (IP1, IP2, IP3)

tcp.excluded_nodes = (IP1, IP2, IP3)

33 de 57
Modificar puerto de conexión a base de datos

34 de 57
Puerto de base de datos
• Para conectarse a una base de datos es necesario que exista un puerto
“CTP” de conexión, sin este puerto no podríamos realizar una conexión a
una instancia de base de datos.
• Por defecto las instalaciones de base de datos quedan con el puerto 1521.

• Para validar el puerto de conexión podemos ver el archivo listener.ora

Vi $TNS_ADMIN/listener.ora

• Otra forma es realizando una consulta en la base de datos

select * from v$listener_network;

35 de 57
Cambiar el puerto de conexión
• Para cambiar el puerto de conexión se debe ejecutar lo siguiente:
alter system set
local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=OEL7)(PORT=1538))'
sid=‘USACH' ;

• Para validar ejecutamos lo siguiente:


show parameter local_listener

• Una vez validada la información debemos reiniciar el listener:

lsnrctl stop LISTENER


lsnrctl start LISTENER

36 de 57
Agregar un nuevo entorno grafico
• Para utilizar esta opción es necesario que el servidor Linux tenga las
librerías para ejecutar opciones graficas también, se recomienda tener un
software en el equipo local que levante una ventana JAVA (Xming)

• Para ejecutar el producto es necesario ingresar al bin de oracle home

cd $ORACLE_HOME/bin/

• Se debe ejecutar el siguiente comando

NETCA

37 de 57
Agregar un nuevo puerto con entorno grafico

38 de 57
Agregar un nuevo puerto con entorno grafico

39 de 57
Agregar un nuevo puerto con entorno grafico

40 de 57
Agregar un nuevo puerto con entorno grafico

41 de 57
Agregar un nuevo puerto con entorno grafico

42 de 57
Configuración de contraseñas

43 de 57
Definir fecha de expiración

• Cambiar fecha de expiración


ALTER PROFILE new_profile
LIMIT PASSWORD_REUSE_TIME 90
PASSWORD_REUSE_MAX UNLIMITED;

• Configuración de valores de contraseña predeterminados

ALTER PERFIL usuario_aplicación


LIMIT PASSWORD_REUSE_TIME DEFAULT
PASSWORD_REUSE_MAX UNLIMITED;

44 de 57
Definir fecha de expiración

• Limitar los intentos


ALTER PROFILE LÍMITE de usuario_aplicación
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1;

• Quitar la clausula de vencimiento.


alter profile default LIMIT PASSWORD_LIFE_TIME UNLIMITED;

45 de 57
Auditoria de datos (Habilitar la auditoria)

46 de 57
Oracle audit

• Para habilitar la auditoria debemos validar primero su estado.


• Ingresamos con sqlplus ejecutando sqlplus /nolog > conn / as sysdba

• Si el valor esta en NONE debemos activar la auditoria

47 de 57
Oracle audit

• Para habilitar la auditoria ejecutar lo siguiente.


ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;

• Una vez realizada esta acción es necesario bajar y subir la instancia


48 de 57
Oracle audit
• Los parámetros que podemos utilizar son:

49 de 57
Last Login Time

• Es común que en una base de datos Oracle tengamos la necesidad de saber si


se están realizando conexiones por temas de control de seguridad. Esto
puede ser por diferentes motivos, personal desvinculado, aplicaciones que se
han migrado, etc.

50 de 57
Log’s

51 de 57
Alert log

• El alert. log es el archivo que consultamos en el momento de búsqueda de


errores de nuestra base de datos

52 de 57
Archivos TRC

• El archivo TRC es un Oracle Trace File desarrollado por Oracle. Un archivo TRC
es un archivo de seguimiento
• Las trace de ejecución de oracle sirven para mostrar las sentencias SQL y su
plan de ejecución de programas que acceden a bases de datos Oracle. No es
necesario disponer del código fuente ni de la sentencia SQL para saber qué y
cómo se ejecutado

53 de 57
Archivos ADR

• El uso de archivos de registro para diagnosticar un problema en oracle se


conocen como el Repositorio de Diagnóstico Automático (ADR). ADR ofrece
estas capacidades de gestión de registros.

54 de 57
 jorge.vasconcelos@usach.cl

55 de 57
Gracias !!

56 de 57

También podría gustarte