Você está na página 1de 45

Configuración

segura de un
sistema
Juan Manuel Madrid Molina
Universidad Icesi
Instalación del sistema
operativo
n  No instalar servicios que no se vayan a usar
n  Verificar integridad y permisos de los archivos
¨  /boot/grub, /boot/grub/grub.conf
¨  NTLDR
n  Establecer password en el boot loader
n  Si es posible, establecer password de BIOS
n  Configuración del BIOS para arranque desde
disco duro únicamente
n  Recuperación de desastres: Modo Rescate

Juan Manuel Madrid - Seguridad 2


Ambientes de prueba y
producción
n  Antes de montar software
¨ Verificar
foros y archivos de seguridad
¨ Prueba confinada
n  Archivos creados
n  E-mail generado
n  Subprocesos invocados

n  Conexiones de red generadas

¨ Auditoría
de código fuente
¨ Backups prístinos

Juan Manuel Madrid - Seguridad 3


Manejo de cuentas de usuario
n  Buenos passwords
¨ Ojo:Crackers, sniffers
¨ Mejor solución: OTP (One-Time passwords)

n  Todas las cuentas deben tener password


o bloquearse!
n  Implementar envejecimiento de passwords

Juan Manuel Madrid - Seguridad 4


Manejo de cuentas de usuario
(en UNIX / Linux)
n  Cuentas con shell restringido
¨  Comando cd inhabilitado
¨  Variables SHELL, ENV y PATH no se pueden cambiar
¨  Sólo se pueden ejecutar comandos que estén en los
directorios del PATH
¨  No funcionan las redirecciones que crean archivos

n  Historia del shell


¨  Para auditoría

Juan Manuel Madrid - Seguridad 5


El usuario root
n  Habilitaracceso solamente por su ó sudo
n  Volverse root solamente cuando sea
indispensable
n  Ejecutar cada comando con precaución
n  Usar SSH y sudo para administración
remota

Juan Manuel Madrid - Seguridad 6


Restricciones al superusuario
n  Configurar el PATH con el mínimo posible de
directorios
¨  No incluir directorios con permiso de escritura global
¨  No incluir “.” (el directorio actual)

n  Usar rutas absolutas al invocar comandos


n  No usar / como el directorio raíz del usuario root

Juan Manuel Madrid - Seguridad 7


Otros aspectos
n  Roots múltiples
¨ Cuentas con UID 0
¨ Riesgo de seguridad
¨ La auditoría es difícil

n  Configuración de /etc/securetty

Juan Manuel Madrid - Seguridad 8


Permisos de directorio y archivo
n  r (read)
n  w (write)
n  x (execute)
n  s (set UID ó set GID = SUID, SGID)
n  t (sticky)
n  - (sin permisos)

Juan Manuel Madrid - Seguridad 9


Peligros en los permisos
n  Directorioscon permiso de escritura global
n  Archivos con bit de SUID / SGID
¨ Evaluar si es necesario tenerlos así
¨ Deshabilitar con chmod
¨ Llevar registro del cambio

Juan Manuel Madrid - Seguridad 10


Atributos de archivo
n  Disponibles en filesystem ext2
n  lsattr,
chattr
n  Atributos importantes
¨ Inmutable
¨ Sólo adición (append only)

Juan Manuel Madrid - Seguridad 11


Endurecimiento de
servidores

Juan Manuel Madrid - Seguridad 12


Endurecimiento de servidores
n  Configuración de la memoria compartida
n  Inhabilitar el acceso del usuario root vía
SSH
n  Limitar acceso a su
n  Particiones de disco
¨ Separar /home, /tmp, /var/tmp

Juan Manuel Madrid - Seguridad 13


Opciones de montaje de
filesystems
n  noexec
n  nosuid
n  Nodev

Juan Manuel Madrid - Seguridad 14


Endurecimiento de servidores
n  Cerrar puertos y servicios que no se usen
¨ sysv-rc-conf --list
¨ sysv-rc-conf servicio off
¨ service servicio off

n  Control sobre ejecutables SUID / SGID


n  Emplear rdate o NTP, para mantener el
servidor con hora correcta

Juan Manuel Madrid - Seguridad 15


Endurecimiento de servidores
n  Configurar o inhabilitar SSH
n  Inhabilitar IPv6, si no se usa
n  Inhabilitar o restringir compiladores
n  Crear un notificador para login del root
n  Asegurar los archivos de historia de
comandos

Juan Manuel Madrid - Seguridad 16


Endurecimiento de servidores
n  Mensaje de bienvenida
n  Restringir ejecutables peligrosos
n  Revisar presencia de rootkits
n  Endurecimiento de servicios específicos
¨ Apache
¨ PHP
¨ …

Juan Manuel Madrid - Seguridad 17


PAM – Pluggable
Authentication
Modules
Por qué PAM?
n  Acceso convencional a UNIX
¨ Usuario y password
¨ En ciertos casos, no es suficiente
n  Limitación por sitio
n  OTP

n  PAM es un sistema flexible para


configurar el nivel de seguridad en el
acceso al sistema
Juan Manuel Madrid - Seguridad 19
Qué proporciona PAM?
n  Servicios de autenticación
n  Registro (logging)
n  Flexibilidad para administración de la
sesión

Juan Manuel Madrid - Seguridad 20


Arquitectura de PAM
/etc/pam.d
1
PAM

Aplicaciones Archivos de
configuración

Módulos PAM
Juan Manuel Madrid - Seguridad 21
Funcionamiento de PAM
n  La
aplicación hace un llamado inicial a
PAM
¨ login
¨ passwd
¨ ...

Juan Manuel Madrid - Seguridad 22


Arquitectura de PAM
/etc/pam.d

PAM
2

Aplicaciones Archivos de
configuración

Módulos PAM
Juan Manuel Madrid - Seguridad 23
Funcionamiento de PAM
n  PAM ubica el archivo de configuración
adecuado en /etc/pam.d
n  Resultado: Lista de módulos requeridos
para atender la solicitud

Juan Manuel Madrid - Seguridad 24


Arquitectura de PAM
/etc/pam.d

PAM

Aplicaciones 3 Archivos de
configuración

Módulos PAM
Juan Manuel Madrid - Seguridad 25
Funcionamiento de PAM
n  PAM carga cada módulo en el orden
especificado
n  Dependiendo de la configuración, se
puede omitir la carga de algunos módulos

Juan Manuel Madrid - Seguridad 26


Arquitectura de PAM
/etc/pam.d

PAM
4
Aplicaciones Archivos de
configuración

Módulos PAM
Juan Manuel Madrid - Seguridad 27
Funcionamiento de PAM
n  Algunosmódulos requieren conversación
con el usuario
¨ Password

n  Cada módulo retorna éxito o fallo


n  Mensajes de error limitados
n  Registro en logs del sistema

Juan Manuel Madrid - Seguridad 28


Tipos de módulos PAM
n  Auth
¨  Exige la identificación del usuario
¨  Configura credenciales de acceso
¨  Asigna privilegios

n  Account
¨  Aspectos de la cuenta de usuario
n  Edad del password
n  Sitios / horas de acceso
n  Limita recursos del sistema

Juan Manuel Madrid - Seguridad 29


Tipos de módulos PAM
n  Session
¨ Funciones antes y después del
establecimiento de la sesión
¨ Ambiente, registro, etc.

n  Password
¨ Apilado con un módulo auth
¨ Actualización del token de autenticación del
usuario
Juan Manuel Madrid - Seguridad 30
Archivo típico en /etc/pam.d
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth required /lib/security/pam_deny.so

account required /lib/security/pam_unix.so

password required /lib/security/pam_cracklib.so retry=3 type=


password sufficient /lib/security/pam_unix.so nullok use_authtok md5
shadow
password required /lib/security/pam_deny.so

session required /lib/security/pam_limits.so


session required /lib/security/pam_unix.so

Juan Manuel Madrid - Seguridad 31


Flags de control
n  Required
¨ Resultado debe ser exitoso para que el
servicio se preste
¨ Si está apilado, los demás se siguen
ejecutando
¨ La aplicación no recibe razón de si el módulo
falla o no

Juan Manuel Madrid - Seguridad 32


Algunos módulos
n  Pam_securetty
n  Pam_nologin
n  Pam_time
n  Pam_listfile
n  Pam_access
n  Pam_warn
n  Pam_deny

Juan Manuel Madrid - Seguridad 33


Auditoría del sistema:
Archivos de bitácora
(logs)
Orígenes de la auditoría
n  Mainframes y minicomputadores
n  El departamento de sistemas “vendía”
tiempo de cómputo a otras dependencias
n  Con la llegada de los micros, este aspecto
cayó en desuso
n  Importancia actual: Seguridad

Juan Manuel Madrid - Seguridad 35


Auditoría en sistemas UNIX
n  Ciertas
aplicaciones poseen archivos de
log separados
¨ Login
¨ Servidor web / caché
n  Servicio centralizado de logging
¨ Syslog

Juan Manuel Madrid - Seguridad 36


Auditoría a conexiones
n  Archivos de historia de conexiones
¨ /var/log/wtmp
¨ /var/log/btmp
¨ /var/log/utmp

n  Propietarioes root, permisos 644


n  Formato binario
¨ Requieren ser leídos por otras aplicaciones

Juan Manuel Madrid - Seguridad 37


Comandos last y lastb

[root@hagrid root]# last –15


root pts/0 depred02.icesi.e Wed Feb 12 15:04 still logged in
jmadrid pts/0 200.3.193.27 Wed Feb 12 13:34 - 13:41 (00:06)
jmadrid tty5 Wed Feb 12 08:38 - 08:39 (00:00)
jmadrid tty3 Wed Feb 12 08:38 - 08:39 (00:00)
jmadrid tty2 Wed Feb 12 08:38 - 08:39 (00:01)
root tty1 Wed Feb 12 08:36 still logged in
jmadrid pts/4 200.24.110.182 Tue Feb 11 21:02 - 21:02 (00:00)
jmadrid pts/3 200.24.110.182 Tue Feb 11 21:02 - 21:02 (00:00)
jmadrid pts/3 200.24.110.182 Tue Feb 11 20:55 - 20:55 (00:00)
jmadrid pts/2 200.24.110.182 Tue Feb 11 20:55 - 21:02 (00:07)
jmadrid pts/1 200.24.110.182 Tue Feb 11 20:55 - 21:03 (00:08)
jmadrid pts/2 200.24.110.182 Tue Feb 11 20:54 - 20:54 (00:00)
jmadrid pts/1 200.24.110.182 Tue Feb 11 20:54 - 20:54 (00:00)
jmadrid pts/3 200.24.110.182 Tue Feb 11 20:47 - 20:48 (00:00)
jmadrid pts/2 200.24.110.182 Tue Feb 11 20:47 - 20:48 (00:00)

wtmp begins Sun Feb 2 12:42:59 2003


[root@hagrid root]#

Juan Manuel Madrid - Seguridad 38


Comandos last y lastb
n  last
¨ Registraaccesos exitosos
¨ También registra cambios de estado del
sistema
n  lastb
¨ Sólofunciona si /var/log/btmp está presente
¨ Registra accesos no exitosos

Juan Manuel Madrid - Seguridad 39


Comandos who y w
[root@hagrid root]# who
root tty1 Feb 12 08:36
jmadrid tty2 Feb 12 15:11
root pts/0 Feb 12 15:04 (depred02.icesi.edu.co)

[root@hagrid root]# who –iwH


USER MESG LINE LOGIN-TIME IDLE FROM
root + tty1 Feb 12 08:36 00:08
jmadrid + tty2 Feb 12 15:11 .
root + pts/0 Feb 12 15:04 . (depred02.icesi.edu.co)

[root@hagrid root]# who am i


hagrid.icesi.edu.co!root pts/0 Feb 12 15:04 (depred02.icesi.edu.co)

[root@hagrid root]# w
3:12pm up 19 days, 2:56, 3 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 8:36am 8:43 0.13s 0.13s -bash
jmadrid tty2 - 3:11pm 1:10 0.00s 0.00s -bash
root pts/0 depred02.icesi.e 3:04pm 0.00s 0.03s 0.01s w

Juan Manuel Madrid - Seguridad 40


Comando lastlog

[root@hagrid root]# lastlog


Username Port From Latest
root pts/0 depred02.icesi.e Wed Feb 12 15:04:51 +0500 2003
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
...
apache **Never logged in**
squid **Never logged in**
pcap **Never logged in**
jmadrid tty2 Wed Feb 12 15:11:32 +0500 2003
majordomo tty1 Tue Feb 4 10:03:45 +0500 2003
glewis pts/0 depfin02.icesi.e Tue Dec 3 17:21:56 +0500 2002

Juan Manuel Madrid - Seguridad 41


Syslog y los logs del sistema
n  Programa demonio
n  Acepta solicitudes de logging de otros
programas
n  Escribe a archivos de log
¨ Configuración en /etc/syslog.conf
n  Klogd
¨ Se encarga de manejar mensajes del kernel

Juan Manuel Madrid - Seguridad 42


Funcionamiento de syslog
Servicios del Servicios del
sistema kernel
news
user
auth
daemon kern
mail
lpr
cron
authpriv

klogd
/etc/syslog.conf Archivo de log

syslogd

Servidor remoto Archivo de log Consola Archivo FIFO Usuario

Juan Manuel Madrid - Seguridad 43


Demonio klogd
n  Captura y registra mensajes de error del
kernel
n  Útil para hacer debugging o averiguar si
se ha sido víctima de hacking
n  Por omisión, pasa todos los mensajes a
syslogd
¨ Pero puede crear un archivo propio

Juan Manuel Madrid - Seguridad 44


logrotate
n  Herramienta para rotación de logs
n  Flexible
n  Configuración
¨ /etc/logrotate.conf
n  Parámetros por omisión
¨ /etc/logrotate.d
n  Directorio de aplicaciones específicas

Juan Manuel Madrid - Seguridad 45

Você também pode gostar