📋 Table des Matières
- 1. Vue d'ensemble et objectifs Page 2
- 2. Configuration DNS sécurisé Page 3
- 3. Filtrage par listes d'adresses Page 4
- 4. Règles de firewall avancées Page 5
- 5. Configuration Web Proxy Page 6
- 6. Restrictions horaires Page 7
- 7. Suppression des restrictions Page 8
- 8. Sécurisation avancée anti-espionnage Page 9
- 9. Configuration VPN WireGuard Page 12
- 10. Dépannage et maintenance Page 15
1. Vue d'ensemble et Objectifs
🌐 Informations Réseau
| Paramètre | Valeur |
|---|---|
| Réseau LAN | 20.166.199.0/24 |
| Gateway/Routeur | 20.166.199.1 |
| Pool DHCP | 20.166.199.10-20.166.199.200 |
| Réseau VPN | 10.13.13.0/24 |
| Matériel | MikroTik L009 |
🎯 Objectifs de Sécurité
- Protection des mineurs : Bloquer tout contenu inapproprié pour les moins de 20 ans
- Filtrage DNS : Utilisation de serveurs DNS sécurisés avec DoH
- Contrôle d'accès : Règles de firewall granulaires
- Anti-espionnage : Protection contre la surveillance du FAI
- VPN sécurisé : Accès distant chiffré via WireGuard
💡 Note importante : Ce guide propose une approche multicouche pour une sécurité optimale. Chaque section peut être appliquée indépendamment selon vos besoins.
2. Configuration DNS Sécurisé
1DNS over HTTPS (DoH) avec Cloudflare
/ip dns
set servers=""
set use-doh-server=https://cloudflare-dns.com/dns-query
set verify-doh-cert=yes
set allow-remote-requests=yes
2DNS FamilyShield (OpenDNS)
# Alternative avec filtrage automatique du contenu adulte
/ip dns
set servers=208.67.222.123,208.67.220.123
set allow-remote-requests=yes
3Redirection DNS forcée
# Forcer tous les clients à utiliser le DNS sécurisé
/ip firewall nat
add action=redirect chain=dstnat comment="Redirect DNS to secure server" \
dst-port=53 protocol=udp src-address=20.166.199.0/24 \
to-addresses=1.1.1.1 to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=tcp \
src-address=20.166.199.0/24 to-addresses=1.1.1.1 to-ports=53
✅ Résultat attendu : Tous les clients utiliseront automatiquement les DNS sécurisés, même s'ils tentent de configurer d'autres serveurs DNS.
3. Filtrage par Listes d'Adresses
1Création des listes de sites bloqués
/ip firewall address-list
add address=*.pornhub.com list=blocked-sites comment="Adult content"
add address=*.xvideos.com list=blocked-sites
add address=*.redtube.com list=blocked-sites
add address=*.xhamster.com list=blocked-sites
add address=*.tube8.com list=blocked-sites
add address=*.youporn.com list=blocked-sites
add address=*.spankbang.com list=blocked-sites
add address=*.chaturbate.com list=blocked-sites
2Blocage des sites répertoriés
/ip firewall filter
add action=drop chain=forward dst-address-list=blocked-sites \
comment="Block adult content sites" log=yes log-prefix="BLOCKED-SITE"
3Listes d'adresses réseau internes
/ip firewall address-list
add address=20.166.199.0/24 comment="LAN Network" list=internal_networks
add address=10.0.0.0/8 comment="RFC1918" list=not_in_internet
add address=172.16.0.0/12 comment="RFC1918" list=not_in_internet
add address=192.168.0.0/16 comment="RFC1918" list=not_in_internet
add address=127.0.0.0/8 comment="Loopback" list=not_in_internet
4. Règles de Firewall Avancées
1Filtrage par mots-clés
# Créer un protocole layer7 pour détecter le contenu adulte
/ip firewall layer7-protocol
add name=adult-content regexp="(porn|sex|adult|xxx|nude|erotic)"
# Bloquer le trafic contenant ces mots-clés
/ip firewall filter
add action=drop chain=forward layer7-protocol=adult-content \
comment="Block adult keywords" log=yes log-prefix="ADULT-KEYWORD"
2Protection contre les scans et attaques
# Détecter les scanners de ports
/ip firewall filter
add action=add-src-to-address-list address-list=port_scanners \
address-list-timeout=2w chain=input comment="Port scanners" \
protocol=tcp psd=21,3s,3,1
# Bloquer les scanners détectés
add action=drop chain=input comment="Drop port scanners" \
src-address-list=port_scanners log=yes log-prefix="PORT-SCAN"
3Règles de base pour le LAN
# Accepter les connexions établies
/ip firewall filter
add action=accept chain=forward comment="Accept established,related" \
connection-state=established,related
# Accepter le trafic depuis le LAN vers internet
add action=accept chain=forward comment="Accept from LAN to internet" \
src-address=20.166.199.0/24 dst-address=!20.166.199.0/24
# Bloquer les connexions invalides
add action=drop chain=forward comment="Drop invalid" \
connection-state=invalid log=yes log-prefix="INVALID"
5. Configuration Web Proxy
1Activation du proxy web
/ip web-proxy
set enabled=yes port=8080 cache-administrator=admin@projetit.com \
cache-hit-dscp=4 cache-on-disk=yes max-cache-size=unlimited
2Règles d'accès du proxy
# Bloquer les sites par URL
/ip web-proxy access
add action=deny url="*porn*" comment="Block porn sites"
add action=deny url="*sex*" comment="Block sex sites"
add action=deny url="*adult*" comment="Block adult sites"
add action=deny url="*xxx*" comment="Block XXX sites"
add action=deny url="*nude*" comment="Block nude sites"
add action=deny url="*erotic*" comment="Block erotic sites"
# Autoriser le reste
add action=allow comment="Allow all other traffic"
3Redirection vers le proxy
# Rediriger le trafik HTTP vers le proxy
/ip firewall nat
add action=redirect chain=dstnat dst-port=80 protocol=tcp \
src-address=20.166.199.0/24 to-ports=8080 comment="Redirect to proxy"
⚠️ Attention : Le proxy ne fonctionne que pour le trafic HTTP (port 80). Le trafic HTTPS (port 443) nécessite d'autres méthodes de filtrage.
6. Restrictions Horaires
1Blocage nocturne
# Bloquer internet la nuit (22h-6h)
/ip firewall filter
add action=drop chain=forward time=22h-6h \
src-address=20.166.199.0/24 comment="Block internet at night" \
log=yes log-prefix="NIGHT-BLOCK"
2Restrictions par jours
# Bloquer pendant les heures de cours (lundi-vendredi 8h-17h)
/ip firewall filter
add action=drop chain=forward time=8h-17h,mon,tue,wed,thu,fri \
src-address=20.166.199.0/24 comment="Block during school hours" \
log=yes log-prefix="SCHOOL-BLOCK"
3Exceptions pour certaines IP
# Créer une liste d'IP exemptées des restrictions horaires
/ip firewall address-list
add address=20.166.199.5 list=time-exempt comment="Admin PC"
add address=20.166.199.10 list=time-exempt comment="Parent device"
# Modifier les règles pour exclure ces IP
/ip firewall filter
add action=accept chain=forward src-address-list=time-exempt \
comment="Allow exempt devices" place-before=0
7. Suppression des Restrictions
⚠️ Important : Sauvegardez votre configuration avant de supprimer les restrictions :
/system backup save name=avec-restrictions
1Suppression des règles de firewall
# Supprimer toutes les règles de blocage
/ip firewall filter
remove [find comment~"Block"]
remove [find comment~"adult"]
remove [find comment~"night"]
remove [find comment~"school"]
2Nettoyage des listes d'adresses
# Vider les listes de sites bloqués
/ip firewall address-list
remove [find list=blocked-sites]
remove [find list=time-exempt]
3Restauration DNS normal
# Revenir aux DNS publics standards
/ip dns
set servers=8.8.8.8,8.8.4.4
set use-doh-server=""
# Supprimer les redirections DNS
/ip firewall nat
remove [find comment~"Redirect DNS"]
4Désactivation du proxy
# Désactiver le web proxy
/ip web-proxy
set enabled=no
# Supprimer les règles d'accès
/ip web-proxy access
remove [find]
# Supprimer les redirections proxy
/ip firewall nat
remove [find comment~"proxy"]
8. Sécurisation Avancée Anti-Espionnage
1Configuration WireGuard VPN
# Créer l'interface WireGuard
/interface wireguard
add listen-port=51820 mtu=1420 name=wg-server
# Assigner une adresse IP au serveur VPN
/ip address
add address=10.13.13.1/24 interface=wg-server network=10.13.13.0
2Protection firewall multicouche
# Protection contre les attaques DDoS
/ip firewall filter
add action=add-src-to-address-list address-list=ddos-attackers \
address-list-timeout=1d chain=input comment="DDoS protection" \
connection-limit=20,32 protocol=tcp src-address-list=!internal_networks
add action=drop chain=input src-address-list=ddos-attackers \
comment="Drop DDoS attackers"
# Protection SSH brute force
add action=add-src-to-address-list address-list=ssh_blacklist \
address-list-timeout=1d chain=input comment="SSH brute force" \
connection-state=new dst-port=22 protocol=tcp src-address-list=ssh_stage3
3Chiffrement DNS et anti-fingerprinting
# DNS over HTTPS pour masquer les requêtes DNS
/ip dns
set use-doh-server=https://cloudflare-dns.com/dns-query
set verify-doh-cert=yes
# Normalisation TTL pour éviter le fingerprinting
/ip firewall mangle
add action=change-ttl chain=postrouting new-ttl=64 passthrough=yes \
src-address=20.166.199.0/24 comment="Normalize TTL"
4Sécurisation des services RouterOS
# Désactiver les services non nécessaires
/ip service
disable telnet,ftp,www,api,api-ssl
set ssh port=2222
set winbox port=8192
# Désactiver la découverte des voisins
/tool mac-server
set allowed-interface-list=none
/tool mac-server mac-winbox
set allowed-interface-list=none
/ip neighbor discovery-settings
set discover-interface-list=none
5NAT et masquerading sécurisé
# NAT pour le trafic LAN
/ip firewall nat
add action=masquerade chain=srcnat comment="Masquerade LAN" \
out-interface-list=WAN src-address=20.166.199.0/24
# NAT pour le trafic VPN
add action=masquerade chain=srcnat comment="Masquerade VPN" \
out-interface-list=WAN src-address=10.13.13.0/24
9. Configuration VPN WireGuard Complète
1Configuration serveur sur MikroTik
# Créer l'interface WireGuard
/interface wireguard
add listen-port=51820 mtu=1420 name=wg-server
# Noter la clé publique du serveur
/interface wireguard print
# Copier la valeur "public-key" pour la configuration client
# Assigner l'adresse IP
/ip address
add address=10.13.13.1/24 interface=wg-server network=10.13.13.0
2Ajout des clients (peers)
# Ajouter un client PC
/interface wireguard peers
add allowed-address=10.13.13.2/32 interface=wg-server \
public-key="[CLÉ_PUBLIQUE_CLIENT_PC]" comment="Client-PC"
# Ajouter un client mobile
add allowed-address=10.13.13.3/32 interface=wg-server \
public-key="[CLÉ_PUBLIQUE_CLIENT_MOBILE]" comment="Client-Mobile"
3Configuration firewall pour VPN
# Autoriser le port WireGuard
/ip firewall filter
add action=accept chain=input comment="Accept WireGuard" \
dst-port=51820 protocol=udp
# Autoriser le trafic VPN vers LAN
add action=accept chain=forward comment="Accept VPN to LAN" \
dst-address=20.166.199.0/24 src-address=10.13.13.0/24
# Autoriser le trafic VPN vers internet
add action=accept chain=forward comment="Accept VPN to internet" \
out-interface-list=WAN src-address=10.13.13.0/24
4Configuration client exemple
# Fichier de configuration client (mon-vpn.conf)
[Interface]
PrivateKey = [CLÉ_PRIVÉE_DU_CLIENT]
Address = 10.13.13.2/24
DNS = 1.1.1.1, 1.0.0.1
[Peer]
PublicKey = [CLÉ_PUBLIQUE_DU_SERVEUR]
Endpoint = [VOTRE_IP_PUBLIQUE]:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
💡 Astuce : Pour trouver votre IP publique depuis MikroTik :
/tool fetch url="https://api.ipify.org" dst-path=ip.txt
5Configuration DNS dynamique (DuckDNS)
# Script de mise à jour DuckDNS
/system script
add name=duckdns-update source={
:local domain "votre-nom.duckdns.org"
:local token "votre-token-duckdns"
:local url "https://www.duckdns.org/update\?domains=$domain&token=$token"
/tool fetch url=$url keep-result=no
:log info "DuckDNS updated"
}
# Planifier la mise à jour toutes les 5 minutes
/system scheduler
add interval=5m name=duckdns-scheduler on-event=duckdns-update start-time=startup
10. Dépannage et Maintenance
1Commandes de diagnostic
# Vérifier les connexions VPN actives
/interface wireguard peers print
# Voir les logs de sécurité
/log print where topics~"firewall"
# Tester la connectivité DNS
/tool dns-lookup name=google.com
# Vérifier les règles de firewall actives
/ip firewall filter print where !disabled
# Statistiques des interfaces
/interface print stats
2Tests de sécurité
# Tester l'accès depuis le LAN
/ping 20.166.199.10 count=3
# Vérifier les connexions établies
/ip firewall connection print
# Tester les règles de blocage
/log print where message~"BLOCKED"
# Vérifier la résolution DNS
/ip dns cache print
3Sauvegarde et restauration
# Créer une sauvegarde complète
/system backup save encryption=aes sha256 name=config-securise password=MonMotDePasse123
# Exporter la configuration en texte
/export file=config-backup
# Restaurer depuis une sauvegarde
/system backup load name=config-securise password=MonMotDePasse123
# Importer une configuration
/import file=config-backup
4Monitoring et alertes
# Configuration des logs vers un serveur externe
/system logging action
add name=remote-log remote=192.168.1.100 target=remote
/system logging
add action=remote-log topics=critical,error,warning
# Alertes par email (si configuré)
/tool e-mail
set address=smtp.gmail.com from=admin@projetit.com password=motdepasse \
port=587 start-tls=yes user=admin@projetit.com
# Script d'alerte en cas d'attaque
/system script
add name=security-alert source={
:local message "Alerte sécurité détectée sur le réseau"
/tool e-mail send to="admin@projetit.com" subject="Alerte Sécurité" body=$message
}
⚠️ Maintenance régulière :
- Mettre à jour RouterOS mensuellement
- Vérifier les logs de sécurité hebdomadairement
- Tester les sauvegardes trimestriellement
- Revoir les règles de firewall semestriellement
11. Optimisation des Performances
1Configuration FastTrack
# Optimiser les connexions établies
/ip firewall filter
add action=fasttrack-connection chain=forward comment="FastTrack" \
connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="Accept established,related" \
connection-state=established,related
2Optimisation QoS
# Marquer le trafic prioritaire
/ip firewall mangle
add action=mark-connection chain=prerouting comment="Mark VoIP" \
dst-port=5060,10000-20000 new-connection-mark=voip protocol=udp
add action=mark-packet chain=prerouting comment="Mark VoIP packets" \
connection-mark=voip new-packet-mark=voip_pkt
# Queue pour prioriser VoIP
/queue simple
add max-limit=100M/100M name=total target=20.166.199.0/24
add max-limit=2M/2M name=voip packet-marks=voip_pkt parent=total priority=1/1
3Cache DNS optimisé
# Optimiser le cache DNS
/ip dns
set cache-max-ttl=1d cache-size=10000KiB max-concurrent-queries=200 \
max-concurrent-tcp-sessions=40
12. Checklist de Déploiement
✅ Avant le déploiement
| Étape | Vérification | Statut |
|---|---|---|
| Sauvegarde actuelle | Configuration sauvegardée | ☐ |
| Accès physique | Câble console disponible | ☐ |
| IP publique | Adresse IP notée | ☐ |
| Ports ouverts | Port 51820 UDP redirigé | ☐ |
| DNS dynamique | Compte DuckDNS créé | ☐ |
✅ Après le déploiement
| Test | Commande | Résultat attendu |
|---|---|---|
| Connectivité LAN | ping 20.166.199.1 | Réponse positive |
| Résolution DNS | nslookup google.com | Réponse sécurisée |
| Blocage contenu | Accès site bloqué | Page bloquée |
| VPN WireGuard | Connexion client | Tunnel établi |
| Logs sécurité | /log print | Événements enregistrés |
1Script de déploiement automatique
# Script complet de déploiement
/system script add name=deploy-security source={
:log info "Début du déploiement sécurisé"
# Configuration DNS sécurisé
/ip dns set use-doh-server=https://cloudflare-dns.com/dns-query verify-doh-cert=yes
# Création des listes d'adresses
/ip firewall address-list
add address=20.166.199.0/24 list=internal_networks
add address=*.pornhub.com list=blocked-sites
# Configuration VPN
/interface wireguard add listen-port=51820 name=wg-server
/ip address add address=10.13.13.1/24 interface=wg-server
:log info "Déploiement terminé avec succès"
}
# Exécuter le script
/system script run deploy-security
13. Annexes et Références
📚 Documentation officielle
- MikroTik Wiki : https://wiki.mikrotik.com
- RouterOS Manual : https://help.mikrotik.com
- WireGuard : https://www.wireguard.com
- Cloudflare DNS : https://1.1.1.1
🔧 Outils recommandés
| Outil | Usage | URL |
|---|---|---|
| WinBox | Administration graphique | mikrotik.com/download |
| WireGuard Client | Client VPN | wireguard.com/install |
| DuckDNS | DNS dynamique | duckdns.org |
| Putty | Client SSH | putty.org |