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