IPsec
IPsec (Internet Protocol Security) es un conjunto de protocolos de seguridad que proporciona autenticación, integridad y confidencialidad a nivel de red para comunicaciones IP.
¿Qué es IPsec?
IPsec es un framework de protocolos que protege las comunicaciones IP mediante cifrado, autenticación y gestión de claves, operando en la capa de red del modelo OSI.
Arquitectura IPsec
Componentes Principales
- AH (Authentication Header): Autenticación e integridad
- ESP (Encapsulating Security Payload): Cifrado y autenticación
- IKE (Internet Key Exchange): Intercambio de claves
- SAD (Security Association Database): Base de datos de asociaciones de seguridad
- SPD (Security Policy Database): Base de datos de políticas de seguridad
Modos de Operación
- Transport Mode: Modo de transporte
- Tunnel Mode: Modo de túnel
- Mixed Mode: Modo mixto
Protocolos IPsec
- Protocolo: 51
- Función: Autenticación e integridad
- Cifrado: No proporciona cifrado
- Uso: Integridad de paquetes
ESP (Encapsulating Security Payload)
- Protocolo: 50
- Función: Cifrado y autenticación
- Cifrado: Proporciona cifrado
- Uso: Confidencialidad e integridad
IKE (Internet Key Exchange)
- IKEv1: Versión 1 (obsoleta)
- IKEv2: Versión 2 (actual)
- Función: Intercambio de claves
- Uso: Establecer asociaciones de seguridad
Modos de Operación
Transport Mode
- Descripción: Protege solo el payload del paquete
- Uso: Comunicación host-to-host
- Overhead: Mínimo
- Aplicación: Comunicaciones directas
Tunnel Mode
- Descripción: Protege todo el paquete IP
- Uso: Comunicación gateway-to-gateway
- Overhead: Mayor
- Aplicación: VPNs, túneles
Asociaciones de Seguridad (SA)
Parámetros SA
- SPI (Security Parameter Index): Índice de parámetros de seguridad
- Destination IP: IP de destino
- Security Protocol: Protocolo de seguridad (AH/ESP)
- Encryption Algorithm: Algoritmo de cifrado
- Authentication Algorithm: Algoritmo de autenticación
- Keys: Claves criptográficas
Gestión de SA
- Manual: Configuración manual
- IKE: Gestión automática
- Lifetime: Tiempo de vida
- Replay Protection: Protección contra replay
Algoritmos Criptográficos
Cifrado
- AES: Advanced Encryption Standard
- 3DES: Triple DES
- ChaCha20: Cifrado de flujo
- Camellia: Alternativa a AES
Autenticación
- HMAC-SHA1: HMAC con SHA-1
- HMAC-SHA256: HMAC con SHA-256
- HMAC-SHA384: HMAC con SHA-384
- HMAC-SHA512: HMAC con SHA-512
Intercambio de Claves
- Diffie-Hellman: Intercambio de claves
- ECDH: Elliptic Curve Diffie-Hellman
- RSA: Cifrado de clave pública
- ECDSA: Firma digital de curva elíptica
Implementación
Configuración Básica
1
2
3
4
5
6
7
8
9
| # Configurar túnel IPsec
ip xfrm state add src 192.168.1.0/24 dst 192.168.2.0/24 proto esp spi 0x1000 mode tunnel enc aes 0x1234567890abcdef1234567890abcdef12345678 auth hmac(sha256) 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
ip xfrm policy add src 192.168.1.0/24 dst 192.168.2.0/24 dir out tmpl src 192.168.1.1 dst 192.168.2.1 proto esp mode tunnel
# Activar IPsec
ip xfrm state add src 192.168.2.0/24 dst 192.168.1.0/24 proto esp spi 0x2000 mode tunnel enc aes 0x1234567890abcdef1234567890abcdef12345678 auth hmac(sha256) 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
ip xfrm policy add src 192.168.2.0/24 dst 192.168.1.0/24 dir in tmpl src 192.168.2.1 dst 192.168.1.1 proto esp mode tunnel
|
StrongSwan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # Configuración /etc/ipsec.conf
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
conn site-to-site
left=192.168.1.1
leftsubnet=192.168.1.0/24
right=192.168.2.1
rightsubnet=192.168.2.0/24
ike=aes256-sha256-modp2048
esp=aes256-sha256
auto=start
|
OpenVPN con IPsec
1
2
3
4
5
6
7
8
| # Configuración OpenVPN
dev tun
proto udp
remote 192.168.2.1
port 1194
cipher AES-256-CBC
auth SHA256
key-direction 1
|
Aplicaciones
VPN (Virtual Private Network)
- Site-to-Site: Conexión entre sitios
- Remote Access: Acceso remoto
- Client-to-Site: Cliente a sitio
- Mobile VPN: VPN móvil
Túneles Seguros
- Internet Tunneling: Túneles por Internet
- WAN Security: Seguridad de WAN
- Cloud Connectivity: Conectividad a la nube
- Hybrid Cloud: Nube híbrida
Comunicaciones Seguras
- VoIP Security: Seguridad de VoIP
- Video Conferencing: Videoconferencias
- File Transfer: Transferencia de archivos
- Database Replication: Replicación de bases de datos
Ventajas y Desventajas
Ventajas
- Transparent: Transparente para aplicaciones
- Standard: Estándar ampliamente adoptado
- Flexible: Muy flexible
- Secure: Muy seguro
Desventajas
- Complex: Complejo de configurar
- Performance: Overhead de rendimiento
- NAT Issues: Problemas con NAT
- Firewall: Problemas con firewalls
Mejores Prácticas
Configuración
- Strong Algorithms: Usar algoritmos fuertes
- Key Management: Gestión adecuada de claves
- Monitoring: Monitoreo continuo
- Testing: Pruebas regulares
Seguridad
- Perfect Forward Secrecy: PFS habilitado
- Replay Protection: Protección contra replay
- Key Rotation: Rotación de claves
- Audit Logging: Registro de auditoría
Rendimiento
- Hardware Acceleration: Aceleración hardware
- Load Balancing: Balanceo de carga
- Traffic Shaping: Moldeado de tráfico
- QoS: Calidad de servicio
Herramientas de Gestión
Configuración
- ipsec-tools: Herramientas de línea de comandos
- StrongSwan: Implementación completa
- OpenSwan: Implementación alternativa
- Libreswan: Fork de OpenSwan
Monitoreo
- tcpdump: Captura de paquetes
- Wireshark: Análisis de protocolos
- ipsec status: Estado de IPsec
- Logs: Registros del sistema
Testing
- ping: Pruebas de conectividad
- traceroute: Rastreo de rutas
- iperf: Pruebas de rendimiento
- nmap: Escaneo de puertos
Troubleshooting
Problemas Comunes
- NAT Traversal: Problemas con NAT
- Firewall Rules: Reglas de firewall
- Key Exchange: Intercambio de claves
- Authentication: Problemas de autenticación
Herramientas de Diagnóstico
1
2
3
4
5
6
7
8
9
10
11
12
| # Ver estado de IPsec
ip xfrm state list
ip xfrm policy list
# Ver estadísticas
cat /proc/net/xfrm_stat
# Capturar tráfico
tcpdump -i any -n host 192.168.1.1
# Ver logs
journalctl -u strongswan
|
Conceptos Relacionados
Referencias