El documento describe los pasos para realizar el hardening de servidores Linux. Incluye proteger el servidor físicamente, proteger la red perimetral mediante firewalls y VPN, fortalecer el entorno LAMP y SSH, establecer logging y monitoreo, y realizar auditorías periódicas para verificar la seguridad. El objetivo del hardening es eliminar vulnerabilidades y restringir el acceso a través de la aplicación del principio de privilegios mínimos.
2. HARDENING DE SERVIDORES LINUX
Hardening de
Servidores Linux
IANUX
SALTALUG
IT & Security Solutions
Comunidad de Software Libre
http://ianux.com
UID0
http://saltalug.org.ar
Security Conference
http://uid0.com.ar
Oscar Gonzalez
Sr. IT Specialist
http://ar.linkedin.com/in/gonzalezrenato/
Debian Consultant Argentina
http://www.debian.org/consultants/#AR
oscar.gonzalez@ianux.com.ar
3. HARDENING DE SERVIDORES LINUX
Hardening de
Servidores Linux
Agenda:
•
Introducción al Hardening
•
Protección física
•
Protección Perimetral
•
Protección de la capa de aplicación
•
Fortificación Entorno LAMP (Mysql PHP Apache)
•
Fortificación SSH
•
Logging, File Integrity, Particionado
•
Monitoreo y Backups
•
Auditoria para Hardening
4. HARDENING DE SERVIDORES LINUX
Introducción al
Hardening
“Hardening” de Sistemas es una estrategia defensiva que protege contra los ataques
removiendo servicios vulnerables e innecesarios, cerrando “fallos” de seguridad y
asegurando los controles de acceso. Este proceso incluye la evaluación de arquitectura
de seguridad de una empresa y la auditoría de la configuración de sus sistemas con el fin
de desarrollar y implementar procedimientos de consolidación para asegurar sus recursos
críticos. Estos procedimientos son personalizados para cada de negocios, actualizado
como las amenazas evolucionan y automatizado para una fácil implementación y
auditoría.
1. Defensa en profundidad
Procedimientos, concienciación y políticas
Seguridad del perímetro
Seguridad en la red interna
Seguridad a nivel de servidor
Seguridad en la aplicación
2. Mínimo privilegio posible
3. Mínimo punto de exposición
4. Gestión de riesgos
5. Protección Física
HARDENING DE SERVIDORES LINUX
El lugar donde este colocado el servidor es sumamente importante para su
estabilidad. El servidor necesita estar protegido contra distintos factores
externos que pueden alterar el funcionamiento de la red.
1. La protección contra la electricidad
estática y el calor.
2. La protección contra los ruidos
eléctricos, los altibajos de tensión
y los cortes de corriente.
3. Protección contra suciedad
4. Seguridad contra incendios y agua
5. Protección contra robo y destrucción
6. Protección acceso al mantenimiento
del servidor
7. Bios: upgraded - password protected – turn off all device non used
6. Protección Perimetral
HARDENING DE SERVIDORES LINUX
Esto nos permite definir niveles de confianza, permitiendo el acceso de
determinados usuarios internos o externos a determinados servicios, y
denegando cualquier tipo de acceso a otros.
1. Centralizar el control de acceso para mantener
a los intrusos fuera, permitiendo que la gente
de dentro trabaje normalmente.
2. Rechazar conexiones a servicios comprometidos.
3. Permitir sólo ciertos tipos de tráfico
(p. ej. correo electrónico) o entre ciertos nodos.
4. Proporcionar un único punto de interconexión con
el exterior.
5. Redirigir el tráfico entrante a los sistemas adecuados
dentro de la intranet.
6. Ocultar sistemas o servicios vulnerables que no
son fáciles de proteger desde Internet.
7. Auditar el tráfico entre el exterior y el interior.
8. Ocultar información: nombres de sistemas,
topología de la red, tipos de dispositivos de red,
cuentas de usuarios internos.
Firewall, Routers, VPN, IDS, DMZ,
Subredes, Switchs ,Monitoreo de la RED
7. HARDENING DE SERVIDORES LINUX
Protección de la capa
Aplicación
Esto nos permite definir niveles de confianza, permitiendo el acceso de
determinados usuarios internos o externos a determinados servicios, y
denegando cualquier tipo de acceso a otros.
0. Grub, Lilo - password protected
1. turn off all USB ports
2. Jaulas con chroot
3. Permisos especiales, atributos y ACL
4. Elevación de privilegios con sudo
5. Limitación de recursos
6. Port-Knocking
7. Actualizaciones/upgrades de forma estable en Debian
8. HIDS Host-based Intrusion Detection System
9. Hardenizar cada uno de los servicios
“Ejemplos de diferentes
configuraciones desde terminal”
8. Fortificación Entorno
LAMP
HARDENING DE SERVIDORES LINUX
Algunos Tips
1. MySQL
Dirección de escucha
Carga de ficheros locales
Renombrar el usuario root
comprobar existencia de usuarios anonimos
Controlar los privilegios de los usuarios
mysql_secure_installation
2. PHP
expose_php
display_errors
open_basedir
disable_functions
Deshabilitar RFI
Suhosin
3. Apache
Configuraciones globales
Deshabilitar informacion ofrecida por el servidor
Configuraciones por contexto
mod_security
HTTPS
“Ejemplos de diferentes
configuraciones desde terminal”
9. HARDENING DE SERVIDORES LINUX
Fortificación SSH
1. Introducción a SSH
Funcionamiento del protocolo
la primera conexion
Configuración del servicio
Archivos del servicio
Directivas básicas
Autenticación con contraseña
Clave pública y clave privada
2. Aplicaciones con SSH
Copia segura con SCP
FTP seguro con SFTP
SSHFS: El sistema de archivos de SSH
X11 forwarding con SSH
Fail2ban
3. SSH: tunneling
Tuneles TCP/IP con port forwarding mediante SSH
SOCKS con SSH : Habilitando y utilizando SOCKS
“Ejemplos de diferentes
configuraciones desde terminal”
10. HARDENING DE SERVIDORES LINUX
Logging, File Integrity,
Particionado
Logging
1. Rsyslogd
Clasificaciones de mensajes. Facility y severity
Configuracion de rsyslogd
2. Rotacion de logs
Ficheros de configuracion de logrotate
Output channels y logrotate
3. Logging remoto o centralizado
File Integrity
AFICK
AIDE
Osiris
Samhain
Tripwire
Particionado
opciones de montaje
Encriptacion de discos
“Ejemplos de diferentes
configuraciones desde terminal”
11. HARDENING DE SERVIDORES LINUX
Monitoreo y Backups
Monitoreo
1. Nagios
2. Monit
3. Custom Scripts
Backups
1. Bacula
2. Custom Scripts
“Ejemplos de diferentes
configuraciones desde terminal”
12. HARDENING DE SERVIDORES LINUX
Auditoría para
Hardening
Tools
1. lynis
2. Bastile linux
“Ejemplos de diferentes
configuraciones desde terminal”
13. HARDENING DE SERVIDORES LINUX
Temas
System Tools
Boot and services
Kernel
Memory and processes
Users, Groups and Authentication
Shells
File systems
Storage
NFS
Software: name services
Ports and packages
Networking
Printers and Spools
Software: e-mail and messaging
Software: firewalls
Software: webserver
SSH Support
SNMP Support
Databases
LDAP Services
Software: PHP
Squid Support
Logging and files
Insecure services
Banners and identification
Scheduled tasks
Accounting
Time and Synchronization
Cryptography
Virtualization
Security frameworks
Software: file integrity
Software: Malware scanners
System Tools
Home directories
Kernel Hardening
Hardening