Capítulo 1. Modelados de amenazas y gestión de riesgos
Componentes de los riesgos
Activos
Objetivos de seguridad
Confidencialidad de datos
Integridad de datos
Integridad de sistema
Disponibilidad del sistema/red
Amenazas
Motivos
Motivos financieros
Motivos políticos
Motivos personales/sicológicos
Vulnerabilidades y los ataques que reciben
Análisis simple de riesgos: ALEs
Una alternativa: Árboles de Ataque
Defensas
Devaluación de activos
Mitigar la vulnerabilidad
Mitigar ataques
Conclusión
Recursos
Capítulo 2. Diseño de perímetros de red
Terminología
Tipos de cortafuegos y arquitecturas en zonas desmilitarizadas
Arquitectura interna contra externa
Arquitectura de zona desmilitarizada con tres interfaces de reden el cortafuegos
Arquitectura débil de subred protegida
Una arquitectura fuerte de subred protegida
Decidir qué reside en la zona desmilitarizada
Asignar recursos en la zona desmilitarizada
Los cortafuegos
Tipos de cortafuegos
Filtros de paquetes simple
Filtrado de paquetes con estado
Stateful Inspection
Proxy para capa de aplicación
Seleccionar un cortafuegos
Líneas generales para configurar cortafuegos
Endurecer el cortafuegos del sistema operativo
Configurar reglas contra IP-spoofing (falseado de IP)
Denegar por defecto
Limitar estrictamente el tráfico entrante
Limitar estrictamente todo el tráfico saliente de la zona desmilitarizada
No facilite acceso a los sistemas internos desde el exterior
Si tiene los medios, utilice un cortafuegos sobre la puertade enlace de aplicación
No sea confiado en la seguridad
Capítulo 3. Fortalecer Linux y utilizar iptables
Principios para fortalecer el SO
Instalar/ejecutar sólo el software necesario
Paquetes comúnmente innecesarios
Deshabilitar servicios en Red Hat y sus distribucionesrelacionadas
Deshabilitar servicios en SUSE
Deshabilitar servicios en Debian 3.0
Deshabilitar servicios en otras distribuciones de Linux
Manteniendo el software al día
Actualización global de una distribución contra actualizacionesde paquetes
¿Qué ocurre con las actualizaciones basadas en X?
Cómo ser notificado y obtener las actualizaciones: Red Hat
Actualizaciones RPM para los extremadamente cautos
Yum: una alternativa a up2date de libre distribución
Notificación y obtención de actualizaciones: SUSE
Actualización con la opción online-update de SUSE
Notificación y obtención de actualizaciones: Debian
Eliminar cuentas de usuario innecesarias y restringir accesos
Limitando el acceso a usuarios conocidos
Ejecución de servicios en los archivos de sistema chroot
Minimizar el uso de SUID root
Identificar y negociar con archivos de SUID root
Utilizar su y sudo
Utilizar su
Utilizar sudo
Configurando, gestionando y monitorizando los registros
Cada sistema puede ser su propio cortafuegos: Uso de iptablespara seguridad local
Utilizar iptables: pasos previos
Funcionamiento de netfilter
Utilizar iptables
Verificando el trabajo con escáneres
Tipos de escáneres y sus usos
Por qué escanear
Herramienta nmap, campeona del mundo en escaneadode puertos
Obtener e instalar nmap
Utilizar nmap
Algunos escaneados de puertos
Nessus, un escáner completo de seguridad
Los escáneres de seguridad
La arquitectura de Nessus
Conseguir e instalar Nessus
Clientes Nessus
Realizar escaneados de seguridad con Nessus
Comprender y utilizar las características de seguridad disponibles
Documentar las configuraciones de los host bastiones
Fortalecer automatizadamente con Bastille Linux
Contexto
Cómo nació Bastille
Obtener e instalar Bastille
Ejecutar Bastille
Algunas notas sobre InteractiveBastille
Registros de Bastille
Ya hemos finalizado con la seguridad, ¿o no?
Capítulo 4. Administración remota segura
Herramientas de administración de texto legible: ¿por qué retirarlas?
Secure Shell en segundo plano y uso básico
Funcionamiento de SSH
Obtener e instalar OpenSSH
Introducción rápida al SSH
Utilizar sftp y scp para transferencias cifradas de archivos
Profundizando en la configuración de SSH
Configurar y ejecutar sshd, el demonio de Secure Shell
SSH intermedio y avanzado
Criptografía de clave pública
Teoría avanzada sobre SSH: cómo utiliza SSH la PK Crypto
Configuración y utilización de autenticación mediante RSA y DSA
Minimizar la escritura de la palabra de paso con el agentessh-agent
Claves sin palabra de paso: máximo cifrado
Utilizar SSH para ejecutar comandos remotos
Redirección de puerto TCP: Red Privada Virtual
Capítulo 5. OpenSSL y Stunnel
Stunnel y OpenSSL: conceptos
OpenSSL
Qué hace una autoridad certificadora y por qué necesita una
Cómo ser un CA de poca importancia
Crear certificados firmados por la CA
Crear certificados autofirmados
Certificados de cliente
Utilizar Stunnel
Un ejemplo rápido de Stunnel
Parámetros de stunnel.conf utilizados en el ejemplo
Algunas configuraciones que mejoran la seguridad global
Otro método de utilizar Stunnel en el servidor
Utilizar autenticación certificada
Ejemplo de autenticación X.509
Utilizar Stunnel en el servidor y otras aplicaciones SSLen los clientes
Otras herramientas de tunelado
Recursos
Capítulo 6. Seguridad en los DNS
Principios de DNS
Principios de seguridad DNS
Seleccionar un paquete de software DNS
Asegurar BIND
Dando sentido a las versiones BIND
Obtener e instalar BIND
Preparando la ejecución de BIND
Suministrar una chroot jail para BIND versión 8
Suministrar una chroot jail para BIND versión 9
Invocar a named
Asegurar named.conf
Secciones acl{}
Opciones globales: sección options{}
Registros de log
Secciones zone{}
Dividir DNS y BIND v9
Seguridad del archivo de zona
Seguridad avanzada en BIND: TSIGS y DNSSEC
Transaction Signatures (TSIG)
Usos adicionales de TSIG
Fuentes de información acerca de la seguridad de BIND
Herramienta djbdns
¿Qué es djbdns?
¿Por qué no BIND?
Seleccionar servicios djbdns
Funcionamiento de djbdns
Instalar djbdns
Instalando el gestor de servicios: daemontools
Instalar djbdns
Instale una caché interna: dnscache
Instalando una caché externa: dnscachex
Instalar una caché de reenvío externa
Dividir el horizonte
Instalar un servidor DNS: tinydns
Ejecutar tinydns
Aplicaciones de ayuda
El formato de tinydns-data
Referencia tinydns-data
Ejecutar los programas cliente de djbdns
Coexistir con BIND
Instalar ucspi-tcp
Ejecutar axfr-get
Instalar axfrdns
Ejecutar axfrdns
Cifrar las transferencias de zona con rsync y ssh
Migrando desde BIND
Recursos
Recursos generales de seguridad DNS
Recursos BIND
Recursos djbdns
Capítulo 7. Utilizar LDAP para autenticación
Principios de LDAP
Protocolos para servicios de directorios
Jerarquías y convenciones de nombre
Configurando el servidor
Obtener e instalar OpenLDAP
Configurar e iniciar slapd
TLS para asegurar las transacciones LDAP
Opciones de inicio slapd para TLS
Pruebas
Esquema LDAP
Crear su primer registro LDAP
Gestión de la base de datos LDAP
Estructura
Esquema y registros de usuario
Crear y añadir registros
Crear contraseñas
Control de acceso
Conclusiones
Recursos
Capítulo 8. Seguridad en bases de datos
Tipos de problemas de seguridad
Localización del servidor
Administración remota segura
Red Privada Virtual al servidor
Uso de ssh al servidor
Tunelizar un puerto local al servidor
Uso de herramientas Web
Instalación del servidor
Elegir una versión
Instalando y configurando el servidor y los clientes
Archivos
Parametrizar la contraseña del usuario root de MySQL
Eliminar usuarios anónimos y bases de datos de prueba
Crear cuentas de usuario MySQL y privilegios
Verificar el servidor
El archivo de configuración MySQL
Operaciones con la base de datos
Tipos de tablas MySQL
Carga de archivos
Escribir archivos
Ver los hilos de la base de datos
Eliminar hilos de la base de datos
Para el servidor
Copias de seguridad
Registros de log
Replica
Consultas
Inyección SQL
Recursos
Capítulo 9. Seguridad sobre el correo electrónico
Seguridad sobre MTA y SMTP
Arquitectura de correo: Puerta de enlace SMTPy redes desmilitarizadas
Seguridad SMTP
Correo comercial no solicitado
SMTP AUTH
Utilizar comandos SMTP para solucionar problemasy probar servidores SMTP
Asegurar su MTA
Sendmail
Sendmail pros y contras
Arquitectura de Sendmail
Obtener e instalar Sendmail
Sendmail en SUSE
Preparación de Sendmail en Red Hat
Preparación de Sendmail en Debian
Configurar Sendmail: generalidades
Configurar sendmail.mc
Algunas definiciones de variables m4 en sendmail.mc
Configurar Sendmail para ejecutar semichrooted
Directivas FEATURE y base de datos
Enmascarar
Aplicando la nueva configuración
Configurar los mapas y otros archivos de Sendmail
Nombres de host locales
Configurar mailertable
Configurar la base de datos access
Configurar virtusers
Definir aliases
Sendmail y SMTP AUTH
Versiones de Sendmail que soportan SMTP AUTH
Obtener Cyrus SASL
Configurar SASL para autenticación de servidor a servidor
Configurar SASL para autenticación cliente-servidor
Configurar Sendmail para autenticación servidor-servidor
Configurar Sendmail para autenticación cliente-servidor
Sendmail y STARTTLS
Soporte de Sendmail para STARTTLS
Obtener claves y certificados
Configurar Sendmail para utilizar TLS
Postfix
Arquitectura de Postfix
Obtener e instalar Postfix
Postfix para perezosos: un procedimiento rápido
Configurar Postfix
Ocultar las direcciones de correo internas medianteenmascaramiento
Ejecutar Postfix en una chroot Jail
Alias en Postfix Aliases
Evitar correo comercial no solicitado (UCE)
Mail Delivery Agents
Principios de seguridad sobre MDA
Qué servidor IMAP utilizar
Obtener e instalar Cyrus IMAP
Configurara SASL
Configurar SASL para utilizar LDAP directamente
Configurar SASL para utilizar LDAP mediante PAM
Configurar Cyrus IMAP
Utilizar cyradm para administrar Cyrus IMAP
Crear buzones con cyradm
ACL para Cyrus IMAP y eliminar buzones
Configurar Postfix para entregar correo a Cyrus IMAP
Siguientes pasos
Una breve introducción al cifrado de correo
PGP y GnuPG
S/MIME
Cuál utilizar
Recursos
Información sobre SMTP
Información de Sendmail
Información de Postfix
Información sobre IMAP
Capítulo 10. Seguridad sobre los servidores Web
Seguridad Web
Qué, dónde y cómo asegurar
Algunos principios
El servidor Web
Construcción: Instalar Apache
Configurar el cortafuegos
Verificar su versión de Apache
Métodos de instalación
Métodos de enlace
Asegurar la jerarquía de archivos de Apache
Log
Configuración de Apache
Archivos de configuración Apache
Opciones de configuración
Usuario y grupo
Archivos y directorios
Escuchar
Contenedores: Directory, Location y Files
Options
Limitar recursos
Directorios de usuario
Robots y Spiders
Contenido Web
Contenido estático
Contenido dinámico: Server-Side Includes (SSI)
Configuración SSI
Incluir archivos
Ejecutar comandos
Contenido dinámico: Common Gateway Interface (CGI)
CGI: Intérpretes independientes e incorporados
suEXEC
Cgiwrap
FastCGI
Especificar programas CGI
HTTP, URL y CGI
Método HEAD
Método OPTIONS
Método GET
Método POST
Método PUT
Método TRACE
Lenguajes CGI
PHP
Perl
Aplicaciones Web
Procesar formularios
PHP
Perl
Incluir archivos
PHP
Perl
Ejecutar programas
PHP
Perl
Carga de archivos mediante formularios
PHP
Perl
Acceso a bases de datos
PHP
Perl
Autenticación
Autenticación básica
Autenticación digerida
Autenticación segura
Control de acceso y autorización
Control de acceso basado en host
Control de acceso por variable de entorno
Control de acceso basado en usuario
Control de acceso combinado
SSL
Sesiones y Cookies
PHP
Perl
Gestión del sitio: carga de archivos
Ideas malas
Mejores ideas: ssh, scp, sftp, rsync
DAV
XML, servicios Web y REST
Detectar y distraer atacantes
Cachés, Proxies y balanceadores de carga
Capas de defensa
Recursos
Capítulo 11. Seguridad sobre los servicios de archivos
Seguridad sobre FTP
Principios de seguridad con FTP
Modo activo contra pasivo
FTP anónimo
Consejos para asegurar un FTP anónimo
Utilizar ProFTPD para FTP anónimo
Obtener ProFTPD
Modo independiente contra inetd/xinetd
Módulos ProFTPD
Configurar la cuenta de FTP anónimo y su chroot jail
Configuración general de ProFTPD
Parámetros globales de servidor básicos
Configuración de FTP anónimo
Configurar un servidor virtual
Utilizar vsftpd para FTP anónimo
Obtener e instalar vsftpd
Documentación de vsftpd
Demonio independiente contra inetd/xinetd
Configurar vsftpd para FTP anónimo
Servidores virtuales
Otros métodos de compartir archivos
SFTP y scp
rsync
Obtener, compilar e instalar rsync
Ejecutando rsync sobre SSH
Configurar un servidor rsync
Utilizar rsync para conectarse a un servidor rsync
Tunelizar rsync con Stunnel
Recursos
Capítulo 12. Gestión y monitorización de Log
syslog
Configurar syslog
Servicios
Prioridades
Acciones
Selectores más sofisticados
Ejecutar syslogd
Syslog-ng
Instalar Syslog-ng desde los paquetes binarios
Reemplazar syslogd con Syslog-ng en SUSE
Reemplazar syslogd con Syslog-ng en Fedora (RPM de Vidal)
Compilar e instalar Syslog-ng desde el código fuente
Configurar los parámetros de inicio de Syslog-ng
Construir una chroot jail para Syslog-ng
Dónde especificar los parámetros de inicio de Syslog-ng
Configurar Syslog-ng
Opciones globales
Orígenes
Destinos
Filtros
Sentencias Log
Configuraciones avanzadas
Verificando la configuración de registro con logger
Gestionar archivos log con logrotate
Ejecutar logrotate
Sintaxis de logrotate.conf y sus script incluidos
Ejecutar logrotate
Utilizar Swatch para monitorizar automáticamente los log
Instalar Swatch
Configuración de Swatch breve
Configuración avanzada de Swatch
Ejecutar Swatch
Puesta a punto de Swatch
Por qué no debería configurar Swatch y olvidarse
Algunas herramientas de informes
Recursos
Capítulo 13. Técnicas simples de detección de intrusos
Principios sobre los IDS
Host IDS: verificadores de integridad
NIDS: escanear firmas contra anomalías
Sistemas basados en firma
Sistemas de detección de anomalías
Utilizar Tripwire
Obtener, compilar e instalar Tripwire
Construir a partir del código fuente oficial
Construir desde fuentes parcheados
Instalar
Configurar Tripwire
Gestionar el archivo de configuración
Editar o crear una política
Estructura y sintaxis del archivo de política
Máscaras de propiedad
Instalar el archivo de política
Ejecutar verificaciones y actualizaciones en Tripwire
Actualizando la base de datos después de alguna alertao cambios en el sistema
Cambiar la política de Tripwire
Otros verificadores de integridad
Snort
Obtener, compilar e instalar Snort
Obtener el código fuente y binarios
Instalar los RPM de Snort
Compilar e instalar Snort desde los códigos fuente
Acomodar Snort al entorno
Creando una base de datos para Snort
Utilizar Snort como sniffer
Utilizar Snort como registro de paquetes
Configurar y utilizar Snort como IDS
Definición de variables
Sentencias de preproceso
Sentencias de salida (postproceso)
Reglas
Iniciar snort en modo IDS
Probando Snort y visualizar sus log
Analizadores de Snort
Actualización de reglas de Snort de forma automática
Recursos
Apéndice. Dos script de iptables completos de in alfabético