# 3. Administración de servidores de correo electrónico y sus protocolos. Administración de contenedores y microservicios.

# Administración de servidores de correo electrónico y sus protocolos

## Puertos de correo más importantes

| Puerto | Protocolo | Función |
|---|---|---|
| 25 | SMTP | Envío de correo entre servidores |
| 465 | SMTPS | SMTP seguro (SSL/TLS) |
| 587 | SMTP Submission | Envío autenticado desde clientes |
| 110 | POP3 | Descarga de correo |
| 995 | POP3S | POP3 cifrado |
| 143 | IMAP | Acceso y sincronización de correo |
| 993 | IMAPS | IMAP cifrado |

---

# 1. Introducción

El correo electrónico es uno de los servicios más utilizados en cualquier organización.  
La administración de servidores de correo consiste en gestionar:

- El envío y recepción de mensajes.
- El almacenamiento de buzones.
- La autenticación de usuarios.
- La seguridad del sistema.
- La protección frente a spam y malware.
- La disponibilidad y monitorización del servicio.

Los servidores de correo trabajan mediante protocolos estándar como SMTP, POP3 e IMAP.

---

# 2. Arquitectura de un sistema de correo

Un sistema de correo electrónico se divide normalmente en varios componentes.

## 2.1. MUA – Mail User Agent

Es el cliente de correo que utiliza el usuario final.

Ejemplos:

- Outlook
- Thunderbird
- Apple Mail
- Gmail Webmail

Funciones:

- Redactar mensajes.
- Leer correos.
- Organizar carpetas.
- Gestionar contactos.

---

## 2.2. MTA – Mail Transfer Agent

Es el servidor encargado de transferir correos entre servidores.

Funciones:

- Enviar mensajes.
- Recibir mensajes.
- Encaminamiento del correo.
- Reintentos de entrega.
- Aplicar políticas de seguridad.

Ejemplos:

- Postfix
- Sendmail
- Exim
- Microsoft Exchange

---

## 2.3. MDA – Mail Delivery Agent

Entrega el correo en el buzón final del usuario.

Funciones:

- Clasificar mensajes.
- Depositar correos en el buzón.
- Aplicar filtros locales.

Ejemplos:

- Dovecot
- Procmail

---

## 2.4. Buzones de correo

Los mensajes pueden almacenarse en distintos formatos.

### Maildir

Cada correo se guarda como un fichero independiente.

Ventajas:
- Más seguro.
- Mejor concurrencia.
- Menor corrupción.

### mbox

Todos los mensajes se almacenan en un único fichero.

Ventajas:
- Simplicidad.

Inconvenientes:
- Mayor riesgo de corrupción.
- Menor rendimiento.

---

# 3. Protocolos principales

## 3.1. SMTP – Simple Mail Transfer Protocol

Es el protocolo estándar para enviar correos.

Funciones:

- Envío cliente → servidor.
- Envío servidor → servidor.

Puertos:

- 25 → tránsito entre servidores.
- 587 → envío autenticado.
- 465 → SMTP cifrado.

### Extensiones importantes

- ESMTP → versión extendida.
- SMTP AUTH → autenticación.
- STARTTLS → cifrado TLS sobre conexión existente.

### Funcionamiento básico

1. Cliente conecta al servidor SMTP.
2. Se autentica.
3. Envía remitente y destinatario.
4. Se transmite el mensaje.
5. El servidor consulta DNS y registros MX.
6. El mensaje llega al servidor destino.

---

## 3.2. POP3 – Post Office Protocol v3

Permite descargar correos desde el servidor al cliente.

Puertos:

- 110 → sin cifrar.
- 995 → POP3S.

Características:

- Descarga local del correo.
- Puede eliminar mensajes del servidor.
- Poco adecuado para múltiples dispositivos.

### Ventajas

- Bajo consumo en servidor.
- Funciona offline.

### Inconvenientes

- Mala sincronización entre dispositivos.

---

## 3.3. IMAP – Internet Message Access Protocol

Permite acceder y sincronizar correos directamente en el servidor.

Puertos:

- 143 → sin cifrar.
- 993 → IMAPS.

Características:

- Mantiene mensajes en servidor.
- Sincroniza carpetas.
- Permite acceso multidispositivo.

### Ventajas

- Ideal para móviles y varios equipos.
- Gestión centralizada.

### Inconvenientes

- Mayor consumo de almacenamiento.

---

# 4. DNS y correo electrónico

El DNS es fundamental en el funcionamiento del correo.

## 4.1. Registro MX

Indica qué servidor recibe correo para un dominio.

Ejemplo:

```txt
midominio.com MX 10 mail.midominio.com
```

---

## 4.2. Registro SPF

Define qué servidores pueden enviar correo en nombre del dominio.

Ejemplo:

```txt
v=spf1 ip4:192.168.1.10 include:_spf.google.com -all
```

Objetivo:
- Evitar spoofing.

---

## 4.3. DKIM

Firma criptográficamente los mensajes.

Garantiza:

- Integridad.
- Autenticidad.

---

## 4.4. DMARC

Define políticas cuando SPF o DKIM fallan.

Políticas:

- none
- quarantine
- reject

También genera informes de autenticación.

---

# 5. Seguridad en servidores de correo

La seguridad es crítica debido a ataques frecuentes.

## 5.1. TLS y STARTTLS

Permiten cifrar las comunicaciones.

Objetivos:

- Confidencialidad.
- Protección frente a sniffing.

---

## 5.2. Autenticación

Mecanismos habituales:

- LOGIN
- PLAIN
- CRAM-MD5
- OAuth2

---

## 5.3. Antispam

Herramientas habituales:

- SpamAssassin
- Rspamd
- Greylisting
- RBL (Real-time Blackhole List)

### Greylisting

Consiste en rechazar temporalmente mensajes sospechosos.

Muchos spambots no reintentan el envío.

---

## 5.4. Antivirus

Herramientas habituales:

- ClamAV

Permiten analizar:

- Adjuntos.
- Malware.
- Ransomware.

---

## 5.5. Relay abierto

Un servidor SMTP mal configurado puede permitir enviar correo sin autenticación.

Esto se denomina:

### Open Relay

Problemas:
- Spam masivo.
- Inclusión en listas negras.

---

# 6. Administración y mantenimiento

## 6.1. Gestión de usuarios

Tareas habituales:

- Crear cuentas.
- Gestionar alias.
- Cuotas de almacenamiento.
- Listas de distribución.

---

## 6.2. Configuración del servidor

Parámetros habituales:

- Dominios permitidos.
- Límites de tamaño.
- Retransmisión.
- Cifrado.
- Autenticación.

---

## 6.3. Monitorización

Se supervisan:

- Cola de correo.
- Errores SMTP.
- Uso de disco.
- Latencia.
- Intentos de spam.

Logs típicos:

```bash
/var/log/mail.log
/var/log/maillog
```

---

## 6.4. Certificados digitales

Se utilizan certificados TLS.

Muy habitual:
- Let's Encrypt.

Permiten:
- HTTPS seguro.
- IMAPS.
- SMTPS.

---

# 7. Alta disponibilidad y redundancia

En entornos corporativos se utilizan mecanismos de tolerancia a fallos.

## Técnicas habituales

- Servidores MX secundarios.
- Replicación de buzones.
- Balanceadores de carga.
- Clustering.
- Backups periódicos.

---

# 8. Flujo completo de un correo electrónico

1. El usuario redacta un mensaje en el MUA.
2. El cliente se conecta al SMTP.
3. El servidor autentica al usuario.
4. El MTA consulta el DNS y registros MX.
5. El correo se envía al servidor destino.
6. El MDA deposita el mensaje en el buzón.
7. El usuario accede mediante IMAP o POP3.

---

# 9. Microsoft Exchange y alternativas

## Microsoft Exchange

Servidor corporativo integrado con Active Directory.

Funciones:

- Correo.
- Calendario.
- Contactos.
- Sincronización móvil.

---

## Alternativas Linux

- Postfix
- Exim
- Sendmail
- Dovecot
- Zimbra

---

# Miniresumen rápido

- SMTP → envío de correo.
- POP3 → descarga local.
- IMAP → sincronización en servidor.
- SPF → valida remitentes.
- DKIM → firma mensajes.
- DMARC → política de validación.
- MTA → transfiere correo.
- MDA → entrega correo.
- TLS → cifra comunicaciones.
- Open Relay → servidor SMTP inseguro.

---

# Administración de contenedores y microservicios

# 1. Introducción

La virtualización tradicional ejecuta sistemas operativos completos sobre un hipervisor.

Los contenedores, en cambio:

- Comparten el kernel del sistema operativo.
- Son más ligeros.
- Arrancan rápidamente.
- Consumen menos recursos.

Los microservicios son una arquitectura donde una aplicación se divide en pequeños servicios independientes.

Actualmente son fundamentales en:

- Cloud computing.
- DevOps.
- Kubernetes.
- Arquitecturas escalables.

---

# 2. Contenedores

## 2.1. ¿Qué es un contenedor?

Un contenedor es una unidad ligera y portable que incluye:

- Aplicación.
- Librerías.
- Dependencias.
- Configuración.

Todo ello aislado del sistema.

---

## 2.2. Características

- Portabilidad.
- Rapidez de despliegue.
- Aislamiento.
- Escalabilidad.
- Bajo consumo.

---

## 2.3. Diferencia entre máquina virtual y contenedor

| Característica | Máquina virtual | Contenedor |
|---|---|---|
| Kernel propio | Sí | No |
| Peso | Alto | Bajo |
| Arranque | Lento | Muy rápido |
| Consumo RAM | Alto | Bajo |
| Aislamiento | Muy alto | Alto |
| Hipervisor | Necesario | No |

---

# 3. Docker

Docker es la plataforma de contenedores más utilizada.

## 3.1. Componentes de Docker

### Docker Engine

Motor principal.

### Docker Image

Plantilla inmutable para crear contenedores.

### Docker Container

Instancia en ejecución de una imagen.

### Docker Hub

Repositorio de imágenes.

---

## 3.2. Comandos básicos Docker

### Descargar imágenes

```bash
docker pull nginx
```

### Ejecutar contenedor

```bash
docker run nginx
```

### Listar contenedores

```bash
docker ps
```

### Parar contenedor

```bash
docker stop ID
```

### Eliminar contenedor

```bash
docker rm ID
```

---

## 3.3. Dockerfile

Archivo que define cómo construir una imagen.

Ejemplo:

```dockerfile
FROM nginx
COPY web /usr/share/nginx/html
```

---

## 3.4. Docker Compose

Permite desplegar múltiples contenedores.

Ejemplo típico:

- Aplicación web.
- Base de datos.
- Redis.

---

# 4. Orquestación de contenedores

Cuando existen muchos contenedores es necesario gestionarlos automáticamente.

## Herramientas

- Kubernetes
- Docker Swarm
- OpenShift

---

# 5. Kubernetes

Es la plataforma de orquestación más utilizada.

Funciones:

- Despliegue automático.
- Escalado.
- Balanceo.
- Alta disponibilidad.
- Recuperación automática.

---

## 5.1. Componentes principales

### Pod

Unidad mínima de ejecución.

### Node

Servidor que ejecuta pods.

### Cluster

Conjunto de nodos.

### Deployment

Gestiona réplicas y actualizaciones.

### Service

Expone aplicaciones en red.

---

# 6. Microservicios

## 6.1. ¿Qué son?

Arquitectura donde una aplicación se divide en servicios pequeños e independientes.

Cada microservicio:

- Tiene una función concreta.
- Puede desplegarse individualmente.
- Se comunica mediante APIs.

---

## 6.2. Características

- Desacoplamiento.
- Escalabilidad independiente.
- Despliegue independiente.
- Resiliencia.
- Mantenimiento sencillo.

---

## 6.3. Comunicación entre microservicios

Habitualmente mediante:

- REST
- HTTP/HTTPS
- gRPC
- Mensajería (RabbitMQ, Kafka)

---

# 7. Arquitectura monolítica vs microservicios

| Monolítica | Microservicios |
|---|---|
| Aplicación única | Servicios independientes |
| Despliegue completo | Despliegue parcial |
| Escalado global | Escalado independiente |
| Más simple inicialmente | Más compleja |
| Menos flexible | Muy flexible |

---

# 8. DevOps y CI/CD

Los contenedores están muy ligados a DevOps.

## DevOps

Metodología que une:

- Desarrollo.
- Operaciones.

Objetivos:

- Automatización.
- Integración continua.
- Despliegue continuo.

---

## CI/CD

### CI – Continuous Integration

Integración continua de cambios.

### CD – Continuous Delivery/Deployment

Despliegue automatizado.

Herramientas habituales:

- Jenkins
- GitLab CI/CD
- GitHub Actions

---

# 9. Seguridad en contenedores

## Riesgos

- Imágenes vulnerables.
- Escalada de privilegios.
- Fugas entre contenedores.
- Secretos expuestos.

---

## Medidas de seguridad

- Imágenes oficiales.
- Escaneo de vulnerabilidades.
- Mínimos privilegios.
- Segmentación de red.
- Actualizaciones periódicas.

---

# 10. Ventajas e inconvenientes

## Ventajas

- Rapidez.
- Escalabilidad.
- Portabilidad.
- Automatización.
- Mejor aprovechamiento hardware.

---

## Inconvenientes

- Mayor complejidad.
- Seguridad más delicada.
- Dependencia de orquestadores.
- Monitorización compleja.

---

# Miniresumen final

- Contenedor → aplicación aislada y ligera.
- Docker → plataforma de contenedores.
- Kubernetes → orquestador de contenedores.
- Microservicios → aplicaciones divididas en servicios pequeños.
- Pod → unidad mínima de Kubernetes.
- Dockerfile → receta de imagen.
- CI/CD → automatización de integración y despliegue.
- Monolito → aplicación única.
- Microservicios → arquitectura distribuida.