En este tutorial, aprenderemos a encriptar la partición swap de un servidor Linux bajo Debian, asegurando que no requiera una contraseña en cada arranque. Este proceso es esencial para mantener la seguridad y privacidad de los datos, especialmente en entornos de servidor. Utilizaremos el disco /dev/sdb
para esta configuración.
Categoría: Hardening
Hardening
Instalar y configurar Sysmon en GNU/Linux
Descargamos el paquete el cual nos instalará la key GPG del repositorio de Microsoft
wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
Instalamos el software
sudo apt-get update
sudo apt-get install sysinternalsebpf
sudo apt-get install sysmonforlinux
Leer más
Integrar Kaspersky Security Center con Wazuh
Seguimos configurando nuestra infraestructura SIRP Open source (https://red-orbita.com/?p=8726) En esta ocasión veremos como integrar Kaspersky Security Center para la detección de amenazas con Wazuh y Thehive
Antes de nada, tenemos que ir a la consola de Kaspersky Security Center > Configurar las notificaciones y la exportación de eventos > Configuración exportación a SIEM (Mas información)
Leer másIntegrar auditd con Wazuh
Auditd Se encarga de realizar un seguimiento de todo lo que va sucediendo en nuestro sistema GNU/Linux, en el cual va recopilando eventos sobre reglas pre-configuradas.
En esta entrada veremos como integrar Auditd con wazuh para así poder generar ciertas alertas.
Leer másImplementación de SIRP Open Source
En el siguiente articulo veremos como implementar un Security Incident Response Platform (SIRP) basado en software open source en alta disponibilidad.
Como podemos ver en el diagrama, el agente de Wazuh HIDS envía los datos de todos los servidores a Wazuh Manager y ElasticSearch. ElastAlert observará los nuevos eventos y generará alertas en TheHive.
Leer másManual practico de iptables
Resetear reglas
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
Establecer las políticas de firewall por defecto
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -L -v -n
Ver el estado del firewall
iptables -L -n -v
- -L : Muestra las reglas.
- -v : Muestra información detallada.
- -n : Muestra la dirección ip y puerto en formato numérico. No usa DNS para resolver nombres. Esto acelera la lista.
Mediante este ejemplo podremos ver las reglas con el numero de lineas.
iptables -n -L -v --line-numbers
Mostrar las reglas entrantes
iptables -L INPUT -n -v
Mostrar las reglas salientes
iptables -L OUTPUT -n -v
si agregamos –line-numbers podrémos ver el numero de lineas
Eliminar reglas de Firewall
Se puede eliminar una regla por el numero de la linea, en este caso eliminamos las reglas INPUT y OUTPUT correspondiente a la linea 4.
iptables -D INPUT 4
iptables -D OUTPUT 4
También podemos una regla concreta
iptables -D INPUT -s 10.10.33.14 -j DROP
- -D : Elimina una o más reglas de la cadena seleccionada.
Guardar los cambios
service iptables save
Sólo a bloquear el tráfico entrante
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -L -v -n
Eliminar direcciones de red privada en la interfaz pública (Suponiendo eth1 como interfaz pública)
iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Permitir todo el tráfico de loopback, y eliminar todo el tráfico a 127/8 que no usa lo0
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
Aceptar todas las conexiones entrantes establecidas
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
Eliminar cualquier paquete inválido que no pueda ser identificado
iptables -A INPUT -m state –state INVALID -j DROP
Bloquear tráfico a un dominio
Para ello debemos sacar el rango de IP del dominio:
host -t a www.google.es
www.google.es has address 216.58.214.163whois 216.58.214.163 | grep CIDR
CIDR: 216.58.192.0/19
Denegamos el acceso al rango que hemos obtenido:
iptables -A OUTPUT -p tcp -d 216.58.192.0/19 -j DROP
También es posible hacerlo por nombre de dominio
iptables -A OUTPUT -p tcp -d www.google.es -j DROP
iptables -A OUTPUT -p tcp -d google.es -j DROP
Permitir todo el tráfico entrante SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Permitir tráfico HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Permitir HTTPS saliente.
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
Permitir tráfico HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Permitir HTTPS saliente.
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
Abrir un rango de puertos de entrada
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT
Prevenir ataques DoS
-Limit 25/minute : Limita a sólo 25 conexiones por minuto.
-Limit-burst 100: Indica que el valor de limit/minute será forzado sólo después del número de conexiones en este nivel
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
Abrir un rango de direcciones IPs
iptables -A INPUT -p tcp –destination-port 80 -m iprange –src-range 192.168.1.100-192.168.1.200 -j ACCEPT
Listado de reglas ejemplo para puertos TCP/UDP comunes:
open port ssh tcp port 22 ##
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 22 -j ACCEPT## open cups (printing service) udp/tcp port 631 for LAN users ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp –dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp –dport 631 -j ACCEPT## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p udp –dport 123 -j ACCEPT## open tcp port 25 (smtp) for all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 25 -j ACCEPT# open dns server ports for all ##
iptables -A INPUT -m state –state NEW -p udp –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT## open http/https (Apache) server port to all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT## open tcp port 110 (pop3) for all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 110 -j ACCEPT## open tcp port 143 (imap) for all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 143 -j ACCEPT## open access to Samba file server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 445 -j ACCEPT## open access to proxy server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 3128 -j ACCEPT## open access to mysql server for lan users only ##
iptables -I INPUT -p tcp –dport 3306 -j ACCEPT
:wq!
Hardening – configurar la autenticación de dos pasos
Anteriormente vimos como realizar una configuración básica para securizar nuestros servidores GNU/Linux (Hardening básico en GNU/Linux), y Hardening – Securizando contraseñas con PAM en GNU/Linux este caso vamos a implementar el factor de autenticación en dos pasos
¿Que es 2FA?
2FA son las siglas de 2 factor authentication (que en español se conoce como verificación de dos pasos), que forma parte de algo más grande, llamado MFA o multi-factor authentication (verificación de múltiples pasos). MFA se refiere a una forma de autentificar la identidad de un usuario usando múltiples factores independientes (o pasos), mismos que son validados para verificar la identidad de una persona. Para que en el caso de 2FA son dos factores (dos pasos) los que se deben presentar.
Hardening – Securizando contraseñas con PAM en GNU/Linux
Anteriormente vimos como realizar una configuración básica para securizar nuestros servidores GNU/Linux (Hardening básico en GNU/Linux), en este caso vamos a fortalecer las contraseñas de acceso de los usuarios mediante Módulos de Autentificación Conectables.
¿Que es PAM?
La estructura del módulo de autenticación conectable (PAM) permite a los administradores coordinar y configurar requisitos de autenticación de usuarios para cuentas, credenciales, sesiones y contraseñas sin modificar los servicios que requieren autenticación.
La estructura PAM permite a las organizaciones personalizar la experiencia de autenticación del usuario y la función de administración de contraseñas, sesiones y cuentas. Los servicios de entrada del sistema, como login y ssh, utilizan la estructura PAM para proteger todos los puntos de entrada del sistema recién instalado. PAM permite la sustitución o modificación de los módulos de autenticación en el campo para proteger el sistema contra cualquier debilidad recién detectada sin la necesidad de realizar cambios a ningún servicio del sistema que use la estructura PAM.
Insalación de OSSEC en modo HIDS
OSSEC es un sistema de detección de intruso Open Source. Esta poderosa plataforma HIDS tiene la capacidad de realizar análisis de logs, comprobar de la integridad de los archivos, detectar rootkits, enviar alertas en tiempo real y dar respuestas activas sobre cualquier intento de penetración vía fuerza bruta en nuestros servidores.
Explotando XSS con Metasploit
XSSF es un framework, creado por Ludovic Courgnaud, que nos permite “administrar” víctimas de XSS genéricos y realizar posteriores ataques, así como mantener el enlace para futuros ataques. Podemos encontrar una descripción más detallada del framework aquí.