# DMZ

## 📖 Définition

### 📋 Qu'est-ce qu'une DMZ ?

Une **Zone Démilitarisée (DMZ)** est un sous-réseau isolé qui héberge les services accessibles depuis Internet tout en protégeant le réseau interne (LAN).

**Architectures typiques** :

![DMZ Architecture](https://1740105922-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJGzei8x32QrP9ankTcp8%2Fuploads%2Fgit-blob-f8cef5aa88d1f0a7d106b1413764e58a92fc9de2%2Fdmz-architecture.png?alt=media)

***

## 🛡️ Principes de sécurité DMZ

{% tabs %}
{% tab title="🔐 Isolation réseau" %}

| Zone    | Réseau           | Isolation                         |
| ------- | ---------------- | --------------------------------- |
| **LAN** | 192.168.7.0/24   | Interne - Confiance élevée        |
| **DMZ** | 192.168.100.0/24 | Semi-confiance - Services publics |
| **WAN** | 10.229.38.75/20  | Externe - Non confiance           |

**Mise en œuvre** :

* Réseaux physiquement séparés (VMnet1 vs VMnet2)
* Firewall à chaque frontière
* Pas d'accès direct LAN ↔ WAN

**Validation** :

```bash
# Vérifier l'isolation:
ping 192.168.100.10    # Depuis LAN → DMZ ✓
ping 192.168.7.10      # Depuis DMZ → LAN ✗
telnet 192.168.100.10  # Vérifier les ports
```

{% endtab %}

{% tab title="🔑 Moindres privilèges" %}
Chaque service en DMZ :

* Reçoit **uniquement** les ports nécessaires
* Opère avec comptes d'application (non-root)
* N'a accès qu'aux ressources essentielles

**Exemple - Squid** :

```
✓ Permissions:
  • Écouter TCP/3128 (proxy)
  • Interroger RADIUS UDP/1812
  • Lire /etc/squid/acl/
  • Écrire dans /var/log/squid/

✗ Interdictions:
  • Accès direct au LAN interne
  • Écrire en /root
  • Exécuter des commandes shell
  • Modifier les règles de firewall
```

**Vérification** :

```bash
# Squid s'exécute avec l'utilisateur 'proxy'
ps aux | grep squid
# proxy    1234  0.0  0.1  ...  /usr/sbin/squid

# Vérifier les permissions:
ls -la /etc/squid/
ls -la /var/log/squid/
```

{% endtab %}

{% tab title="🛡️ Défense en profondeur" %}
![Défense en profondeur](https://1740105922-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJGzei8x32QrP9ankTcp8%2Fuploads%2Fgit-blob-c59bad46305a4cff861de5178132840177a58108%2Fdefense-en-profondeur.png?alt=media)

**Vérification Mikrotik** :

```mikrotik
# Couche 1 & 2: Firewall Mikrotik
/ip firewall filter print
# Chaines: input, forward, output
# Politiques: drop/reject par défaut
```

**Vérification Debian** :

```bash
# Couche 3 & 4: Application + OS
sudo iptables -L              # Firewall local
sudo netstat -tlnp            # Ports écoute
sudo systemctl status squid    # Service actif
```

{% endtab %}

{% tab title="📊 Traçabilité complète" %}
Tous les accès sont enregistrés sur 3 niveaux:

* **🖧 Firewall**: logs Mikrotik (src, dst, port, action)
* **🌐 Proxy**: logs Squid (user, URL, bytes, résultat)
* **🖥️ Système**: logs Debian (authentification, erreurs)

**Emplacements** :

```
Windows (NPS/RADIUS):
  C:\Windows\System32\LogFiles\IN*.log

Mikrotik (Firewall):
  System > Logging > Logs (via Winbox)
  /log print (via CLI)

Debian (Proxy):
  /var/log/squid/access.log
  /var/log/squid/cache.log
  /var/log/nginx/access.log
```

**Commandes d'analyse** :

```bash
# Analyser les accès Squid
tail -f /var/log/squid/access.log

# Compter par utilisateur
cut -d' ' -f10 /var/log/squid/access.log | sort | uniq -c

# Filtrer par heure
grep "14:32" /var/log/squid/access.log

# Voir les erreurs 407 (authentification)
grep "407" /var/log/squid/access.log
```

{% endtab %}
{% endtabs %}

***

## 🏗️ Architecture SEC2 - DMZ

### 🌐 Topologie complète

![Topologie SEC2 avec DMZ](https://1740105922-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJGzei8x32QrP9ankTcp8%2Fuploads%2Fgit-blob-116bb522273cea624f3bbdaca12be8f06ae2850c%2Ftopologie-sec2-dmz.png?alt=media)

***

## 🚀 Services en DMZ

### 🔒 Proxy HTTP/HTTPS (Squid)

| Paramètre            | Valeur                                |
| -------------------- | ------------------------------------- |
| **Rôle**             | Relais et filtrage HTTP/HTTPS         |
| **IP**               | 192.168.100.10                        |
| **Port**             | TCP/3128 (HTTP)                       |
| **Utilisateurs**     | LAN uniquement (192.168.7.0/24)       |
| **Authentification** | Via RADIUS (NPS)                      |
| **Whitelist**        | .cpnv.ch, .vd.ch, iam.secu07.internal |
| **Logs**             | /var/log/squid/access.log             |
