Infrastructure réseau Linux (Ubuntu)
Tutoriel : Mettre en place l’infrastructure réseau sécurisée
Mettre en place une infrastructure réseau virtualisée sous Linux permettant de simuler un environnement sécurisé pour le traitement de fichiers.
Ici j’utilise VMware pour virtualiser les différentes machines.
L’infra comprend :
- Un routeur/firewall (machine pivot avec 4 interfaces réseau, une carte NAT et 3 cartes VMnet (10, 11 & 12))
- Un serveur DNS
- Un serveur DHCP
- Un serveur de fichiers externe (zone publique)
- Un serveur de fichiers interne (zone sécurisée)
- Un poste immigrant (client externe SFTP)
- Un poste inspecteur (consultation de documents validés)

Je vous laisse réfléchir un peu pour définir vous mêmes vos adresses IP 😀
Routeur / Firewall
- Distribution : Ubuntu Server
- Fonctions :
- Routage entre les sous-réseaux
- Règles
iptables
pour filtrer le trafic (accès SSH/SFTP uniquement depuis certaines IP) - NAT configuré pour permettre à certaines VM de sortir vers internet
- Pour activer le routage :
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
- Définir vos règles firewall (ceci est un exemple minimal, il faut une meilleure configuration que vous devrez personnalisé vous mêmes en fonction de ce que vous souhaitez faire).
# Autoriser le forwarding
iptables -A FORWARD -i ens37 -o ens38 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens37 -m state --state ESTABLISHED,RELATED -j ACCEPT
#NAT pour internet
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
# autoriser SFTP du LAN2 vers LAN3
iptables -A FORWARD -i ens38 -o ens39 -p tcp --dport 22 -j ACCEPT
- Sauvegarder les règles :
apt install iptables-persistent
netfilter-persistent save
Serveur DHCP
- Distribution automatique des IPs pour les clients internes
- Installer le service DHCP :
apt update && apt install isc-dhcp-server -y
- Modifier le fichier de configuration 50-cloud-init.yaml :
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses: [Mettre IP]
gateway4:
nameservers:
addresses: [Mettre IP]
- Appliquer les modifications :
sudo netplan apply
- Configurer l’interface réseau :
sudo nano /etc/default/isc-dhcp-server
#Ajoutez :
INTERFACESv4=“ens33“
- Configurer le fichier principal du DHCP :
sudo nano /etc/dhcp/dhcpd.conf
- Ajouter votre configuration : (ceci est un exemple de configuration que vous devrez personnaliser)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.2;
option domain-name "interne.local";
}
- Redémarrer le service et vérifier le status :
sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server
Serveur DNS
- Installer Bind9 pour résoudre les noms internes
- Zones configurées pour
interne.local
etexterne.local
- Tous les postes utilisent ce serveur comme résolveur principal
- Installer Bind9 :
apt install bind9 bind9utils -y
- Configurer la redirection DNS :
sudo nano /etc/bind/named.conf.options
#Ceci est un exemple de configuration :
zone "interne.local" {
type master;
file "/etc/bind/db.interne.local";
};
- Créer le fichier de zone :
cp /etc/bind/db.local /etc/bind/db.interne.local
nano /etc/bind/db.interne.local
#Ajoutez ceci au fichier (c'est une config exemple) :
@ IN SOA ns.interne.local. root.interne.local. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200; Expire
604800 ); Negative Cache TTL
@ IN NS ns
ns IN A 192.168.1.2
router IN A 192.168.1.1
- Vérifier et redémarrer :
named-checkconf
systemctl restart bind9
Serveur de fichiers externe
- Accueille les dépôts SFTP des clients
- Utilisateur client restreint à son répertoire
- Envoie les archives valides via
scp
au serveur interne
- Créer l’utilisateur SFTP :
useradd -m -d /srv/immigration_uploads/immigrant -s /usr/sbin/nologin immigrant
passwd immigrant
- Configurer SSHD config :
Match User client
ChrootDirectory /srv/immigration_uploads
ForceCommand internal-sftp
AllowTcpForwarding no
- Redémarrez ssh :
systemctl restart ssh
Serveur de fichiers interne
- Répertoire
/cases/waiting
- Accès SFTP uniquement depuis le serveur externe (via
le client
)
- Créer l’utilisateur de transfert :
useradd -m -s /bin/bash inspecteurcontrole
passwd inspecteurcontrole
- Créer le dossier d’attente :
mkdir -p /cases/waiting
chown inspecteurcontrole: /cases/waiting
Poste client
- Ce poste simule un utilisateur externe qui dépose des archives compressées (.zip) via SFTP sur le serveur de fichiers externe, sans pouvoir voir ou modifier autre chose.
- Config minimal :
# Configuration IP manuelle (Mettez vos ip correctes)
IP: 192.168.X.X
Gateway: 192.168.X.X
DNS: 192.168.X.X
- Accès SFTP :
sftp VOTRECLIENT@192.168.X.X
- Une fois connecter pour déposer un fichier :
put archive.zip
Poste inspecteur
- Ce poste simule un inspecteur du ministère qui consulte les dossiers validés, accessibles uniquement via SFTP en lecture, depuis le serveur interne.
- Config minimal :
# Configuration IP manuelle (Mettez vos ip correctes)
IP: 192.168.X.X
Gateway: 192.168.X.X
DNS: 192.168.X.X
- Accès SFTP :
sftp inspecteurcontrole@192.168.X.X
- Une fois connecter pour récupérer les fichiers :
cd /cases/waiting
get archive.zip