Seguretat Perimetral
Introducció
La seguretat perimetral és el conjunt de mesures que protegeixen la frontera entre la xarxa interna d'una organització i les xarxes externes (Internet, partners, etc.). Malgrat que el model Zero Trust modern qüestiona el concepte de "perímetre" tradicional, les eines perimeterals continuen sent essencials com a primera línia de defensa.
flowchart TB
Internet --> DDoS[Protecció DDoS\nCloudflare/AWS Shield]
DDoS --> FW[Next-Gen Firewall\npfSense / FortiGate]
FW --> WAF[WAF\nModSecurity]
WAF --> IPS[IPS/IDS\nSuricata / Snort]
IPS --> PROXY[Proxy invers\nNGINX / HAProxy]
PROXY --> APP[Aplicació\nInterna]
IPS --> SIEM[SIEM\nWazuh / Splunk]
FW --> SIEM
style DDoS fill:#FF5722
style FW fill:#FF9800
style WAF fill:#FFC107
style IPS fill:#8BC34A
style SIEM fill:#2196F3
Next-Generation Firewalls (NGFW)
Un NGFW va molt més enllà del firewall tradicional (que sols filtra per IP/port). Inclou:
- Deep Packet Inspection (DPI): analitza el contingut dels paquets, no sols les capçaleres
- Application Awareness: identifica aplicacions (Facebook, YouTube, WhatsApp) independentment del port
- User Identity: associa tràfic a usuaris concrets (integració amb Active Directory)
- TLS Inspection: descifra i re-xifra tràfic HTTPS per a inspecció
- IPS integrat: detecció i prevenció d'intrusions en el propi firewall
- URL Filtering: bloqueig per categories de URLs
Eines open source: pfSense / OPNsense
# docker-compose.yml per a lab de pfSense (OPNsense és més Docker-friendly)
version: '3'
services:
opnsense-lab:
image: opnsense/opnsense:24.1
container_name: firewall-NOMCOGNOM
privileged: true
networks:
external_net:
ipv4_address: 10.0.1.1
internal_net:
ipv4_address: 192.168.100.1
networks:
external_net:
driver: bridge
ipam:
config:
- subnet: 10.0.1.0/24
internal_net:
driver: bridge
ipam:
config:
- subnet: 192.168.100.0/24
Regles de firewall: bones pràctiques
# Principis per a regles de firewall
1. DEFAULT DENY: blocar tot per defecte, permetre explícitament
2. Regles específiques > regles genèriques
3. Documentar cada regla (propòsit, data, responsable)
4. Revisar i eliminar regles obsoletes periòdicament
5. Separar regles d'entrada i sortida
# Exemple de política de firewall (lògica)
REGLA 1: PERMETRE tràfic establert i relacionat (ESTABLISHED, RELATED)
REGLA 2: PERMETRE SSH des de xarxa de gestió (192.168.10.0/24)
REGLA 3: PERMETRE HTTPS des de qualsevol cap als servidors web (DMZ)
REGLA 4: PERMETRE SMTP des dels servidors de correu (DMZ) cap a Internet
REGLA 5: PERMETRE DNS des de la xarxa interna cap al DNS intern
REGLA 6: PERMETRE HTTP/HTTPS des de la xarxa interna cap a Internet (via proxy)
REGLA 7: BLOCAR accés des de la xarxa IoT a la xarxa de servidors
REGLA 8: BLOCAR TOT (default deny - LOG)
Miniactivitat
Tens una empresa amb: - Xarxa corporativa: 192.168.1.0/24 - Servidors web en DMZ: 10.0.1.0/24 - Servidor de BBDD intern: 192.168.100.10 - Accés a internet permès per als usuaris (HTTP/HTTPS)
Escriu 5 regles de firewall (en lèxic natural o iptables) que implementin la política de seguretat adequada.
Web Application Firewall (WAF)
Un WAF protegeix específicament les aplicacions web analitzant el tràfic HTTP/HTTPS per detectar i blocar atacs com XSS, SQL injection, CSRF, etc.
ModSecurity amb NGINX
# nginx.conf amb ModSecurity
server {
listen 443 ssl;
server_name app.empresa.cat;
# ModSecurity
modsecurity on;
modsecurity_rules_file /etc/nginx/modsecurity/main.conf;
ssl_certificate /etc/ssl/app.crt;
ssl_certificate_key /etc/ssl/app.key;
ssl_protocols TLSv1.3;
location / {
proxy_pass http://backend:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# Desplegar NGINX + ModSecurity en Docker
docker run -d \
--name waf-NOMCOGNOM \
-p 443:443 \
-v $(pwd)/nginx.conf:/etc/nginx/nginx.conf \
owasp/modsecurity-crs:nginx
IDS/IPS: Suricata i Snort
Un IDS (Intrusion Detection System) monitora el tràfic i genera alertes. Un IPS (Intrusion Prevention System) pot a més blocar el tràfic maliciós activament.
Suricata: IDS/IPS modern
# docker-compose.yml per a Suricata
services:
suricata:
image: jasonish/suricata:latest
container_name: ids-NOMCOGNOM
network_mode: host # Per monitorar tota la xarxa de l'host
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- ./suricata/rules:/var/lib/suricata/rules
- ./suricata/logs:/var/log/suricata
command: -i eth0 --init-errors-fatal
# Regla Suricata personalitzada (suricata/rules/local.rules)
# Detectar escaneig Nmap
alert tcp any any -> $HOME_NET any (
msg:"SCAN Nmap SYN scan detected";
flags:S;
detection_filter: track by_src, count 100, seconds 10;
sid:9000001;
rev:1;
)
# Detectar força bruta SSH
alert tcp any any -> $HOME_NET 22 (
msg:"BRUTE FORCE SSH login attempt";
content:"SSH";
detection_filter: track by_src, count 10, seconds 60;
sid:9000002;
rev:1;
)
Diferència IDS vs IPS
| IDS | IPS | |
|---|---|---|
| Posicionament | Out-of-band (còpia del tràfic) | Inline (intercepta tràfic) |
| Acció | Alerta | Alerta + Bloqueig |
| Latència | Zero (no afecta tràfic) | Afegeix latència |
| Risc falsos positius | Baix (no bloca) | Alt (pot blocar tràfic legítim) |
| Cas d'ús | Monitoratge, detecció | Xarxes amb tràfic conegut |
SIEM i SOC
Un SIEM (Security Information and Event Management) centralitza i correlaciona logs de tots els dispositius de seguretat per identificar patrons d'atac.
Arquitectura d'un SOC bàsic
flowchart LR
subgraph Fonts de dades
FW[Firewall Logs]
IDS[IDS/IPS Alerts]
AD[Active Directory Logs]
WEB[Web Server Logs]
EDR[Endpoint EDR]
end
subgraph SIEM
COLLECT[Col·lector\nWazuh Agent/Syslog]
PROCESS[Processament\nNormalització + Correlació]
STORE[Emmagatzematge\nOpenSearch/Elasticsearch]
ALERT[Motor d'Alertes]
end
subgraph SOC
L1[Analyst L1\nTriatge]
L2[Analyst L2\nInvestigació]
L3[Analyst L3\nThreat Hunting]
IR[IR Team\nResposta]
end
FW --> COLLECT
IDS --> COLLECT
AD --> COLLECT
WEB --> COLLECT
EDR --> COLLECT
COLLECT --> PROCESS
PROCESS --> STORE
STORE --> ALERT
ALERT --> L1
L1 -->|Escalat| L2
L2 -->|Escalat| L3
L3 -->|Incident| IR
Protecció DDoS
Un atac DDoS (Distributed Denial of Service) intenta saturar els recursos d'un sistema per fer-lo indisponible. Es realitza des de molts orígens simultàniament (botnet).
Tipus d'atacs DDoS
| Capa OSI | Tipus | Exemple | Volum típic |
|---|---|---|---|
| L3 (Xarxa) | Volumètric | UDP flood, ICMP flood | 100+ Gbps |
| L4 (Transport) | Protocol | SYN flood, ACK flood | 10+ Mpps |
| L7 (Aplicació) | Aplicació | HTTP flood, SlowLoris | Menor volum, difícil detecció |
Mitigació
# Protecció bàsica contra SYN flood amb iptables
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 \
-j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
# Fail2ban per a blocar IPs amb massa intents
apt-get install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600 # 1 hora de ban
findtime = 600 # Finestra de 10 minuts
Per a atacs de gran volum, cal solucions externes com Cloudflare, AWS Shield o Akamai.