Essentielle
- DNS
- Connection de base
- LAP
- BDD Maria-DB
- OPNsense = Installation
- Paserelle
- OPNSENSE = IP vlan etc
- DHCP ( sur serveur dns debian 12)
- Certification
DNS
DNS
Mise en place d’un résolveur DNS local
Le réseau contient un serveur DNS local.
screne
(schéma réseau avec DNS)
Installer bind9 avec apt-get install bind9.
Configurer le fichier /etc/bind/named.conf.options.
Activer la récursivité.
Ajouter allow-recursion et listen-on.
Ajouter un forwarder 8.8.8.8.
bien enlever les commentaire pour les forwarder
https://sioaubusson.fr/books/essentielle/page/dhcp-sur-serveur-dns-debian-12
Le cache DNS accélère les requêtes suivantes.
Mise en place d’une zone DNS
Modifier le fichier /etc/bind/named.conf.local.
Ajouter une zone DNS.
Créer le fichier db.gchauquet.sio.jja à partir de db.local.
Associer le domaine à l’IP du DNS.
Configurer le serveur NS.
Ajouter le serveur LAMP.
Créer un sous-domaine test.
Zones DNS inversées
Ajouter une zone inversée dans named.conf.local.
screne
(zone in-addr.arpa ajoutée)
Créer le fichier rev.gchauquet.sio.jja.
Ajouter un enregistrement PTR.
Redémarrer bind9 pour appliquer.
Vérifier avec named-checkzone et named-checkconf.
Sécurisation du DNS
Configurer une ACL dans named.conf.options.
screne
(fichier avec ACL)
Autoriser les requêtes avec allow-query.
Autoriser la récursivité avec allow-recursion.
screne
(configuration finale sécurisée)
Connection de base
Chemin du fichier :
/etc/network
puis
nano interfaces
3 ligne :
address : l'adresse de la machine
gatway : la paserelle du réseau/ du vlan
dns-server = opbtionelle mais c le dns
SI probléme avec le dns
Aller dans le fichier resolv.conf a la positition /etc/
Si il n'existe pas crée le avec nano
et mettre le nom du dns dans le fichier comme ceci
LAP
LAMP
Mise en place d’un serveur apache2
Installer apache2 avec la commande apt install apache2.
Les fichiers de configuration sont dans /etc/apache2/.
Les sites web sont dans /var/www/html/.
Démarrer ou gérer le service avec systemctl start apache2
Installer PHP avec apt install php.
La page de base d'apache avec l'ip de la machine et celle ci :
Mise en place de vhosts
Un vhost permet d’avoir plusieurs sites sur une seule machine.
Les fichiers sont dans /etc/apache2/sites-available/.
(exemple de vhost)
Ajouter un enregistrement DNS pour le domaine.
Activer le site avec a2ensite exemple.conf.
Mise en place de certificat
Le SSL permet de sécuriser les échanges entre client et serveur.
Ci dessous mise en place d'un auto signé, pour un signé par autorité de certif :
https://sioaubusson.fr/books/essentielle/page/certification
Génération d’un certificat auto-signé
Créer un certificat avec openssl.
screne
(commande openssl dans le terminal)
Les fichiers sont créés dans /etc/ssl/.
Copier le fichier SSL avec cp default-ssl.conf test-ssl.conf.
screne
(fichier test-ssl.conf ouvert)
Ajouter une redirection HTTP vers HTTPS.
Configurer ServerName et DocumentRoot.
Configurer les chemins des certificats.
screne
(fichier avec SSLCertificateFile et Key)
Activer SSL avec a2enmod ssl.
Activer le site avec a2ensite test-ssl.conf.
Recharger apache.
screne
(terminal avec activation SSL)
Accéder au site en HTTPS.
screne
(site sécurisé affiché dans navigateur)
BDD Maria-DB
Pour la mise en place d'une BDD il faut faire les commande suivant :
Commandes :
-
apt update && apt upgrade -y
-
apt install apache2 php mariadb-server -y
-
apt install php extensions
Configuration MariaDB :
-
mariadb-secure-installation
Réponses :
-
y / n / n / y / y / y / y
Par la suite et pour une utilisation a disance il faut
Aller ici :
puis une fois dans le fichier aller a la ligne bind-address et mettre 0.0.0.0
OPNsense = Installation
Installation d’OPNsense
Démarrer la VM OPNsense et attendre l’écran de connexion.
(console avec demande de login root)
Se connecter avec
login : installer
MDP : opnsense
Choisir la langue du clavier.
Sélectionner Install ZFS.
Choisir sans RAID puis le disque.
Lancer l’installation.
(écran choix disque et progression installation)
Changer le mot de passe root en caribou.
Terminer puis redémarrer.
Paserelle
# Documentation : Mise en place d’une passerelle réseau sous Debian 12
## 1. Définition
Une passerelle réseau permet de relier plusieurs réseaux entre eux et de donner un accès Internet aux machines d’un réseau local.
Sous Debian 12, une machine peut être configurée comme routeur/passerelle grâce au routage IP et au NAT.
--------------------------------------------------
## 2. Prérequis
- Une machine sous Debian 12
- Deux interfaces réseau :
- eth0 = accès Internet
- eth1 = réseau local
- Accès root ou sudo
Exemple :
eth0 → Internet
eth1 → Réseau local : 192.168.1.1/24
--------------------------------------------------
## 3. Configuration des interfaces réseau
Modifier le fichier :
nano /etc/network/interfaces
Exemple de configuration :
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
Redémarrer le réseau :
systemctl restart networking
--------------------------------------------------
## 4. Activation du routage IP
Modifier le fichier :
nano /etc/sysctl.conf
Ajouter ou décommenter :
net.ipv4.ip_forward=1
Appliquer la configuration :
sysctl -p
--------------------------------------------------
## 5. Configuration du NAT avec iptables
Mettre à jour les paquets :
apt update
Installer iptables :
apt install iptables -y
Ajouter la règle NAT :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Autoriser le transfert des paquets :
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
--------------------------------------------------
## 6. Sauvegarde des règles
Installer le service de sauvegarde :
apt install iptables-persistent -y
Sauvegarder les règles :
iptables-save > /etc/iptables/rules.v4
--------------------------------------------------
## 7. Configuration des postes clients
Configurer sur les postes :
Adresse IP : 192.168.1.X
Masque : 255.255.255.0
Passerelle : 192.168.1.1
DNS : 8.8.8.8
--------------------------------------------------
## 8. Vérifications
Tester la connexion Internet :
ping 8.8.8.8
Tester la résolution DNS :
ping google.com
Vérifier les interfaces :
ip a
Vérifier les routes :
ip route
--------------------------------------------------
## 9. Résultat
La machine Debian agit maintenant comme passerelle réseau :
- partage de connexion Internet ;
- routage entre réseaux ;
- NAT activé ;
- gestion possible du filtrage réseau avec iptables.
OPNSENSE = IP vlan etc
Configuration des interfaces réseaux
Se connecter en root après redémarrage.
Taper 1 pour assigner les interfaces.
Ne pas configurer de LAGG.
Créer des VLANs.
Utiliser vtnet1 comme interface parent.
Créer VLAN 2, 3 et 4. Puis une fois que toute les Vlan sont mise , faire entré
Mettre WAN sur vtnet0.
Mettre LAN sur vtnet1
Puis mettre LAN sur vtnet1_vlan2 Faut faire cela pour chaque vlan
Puis quand on a terminer on ne met rien on tape entré , aprés on vois les différente vlan puis on proceed
On peut désormais les voir aparaitre ici :
Maintenant il vas faloire appliquer les ip au vlan :
On vas dans 2 ( set interface ip @
On répond non au ipv4 dhcp :
Iic et maintenant il est demandé de configuré OPT1 ( qui correspond a la vlan 2 précédament crée)
On indique donc une IP
Puis un masque :
Il faut faire cela pour toute les vlan ou bien accédé comment on vas le voir plus tard a l'interface grahpique ou l'on pourrais aussi mettre les ip.
Puis on répond non au 6 question suit
Et voila l'IP est mise en place :
Accès à l’interface web
Ajouter VMBR24x sur la VM Fedora dans Proxmox.
Configurer le bon VLAN tag.
Mettre une IP manuelle sur Fedora.
Accéder à 192.168.1.1 avec un navigateur.
Configuration des VLANs
Aller dans Interfaces.
Configurer chaque interface.
Définir description, IP statique et passerelle.
Configuration DHCP
Aller dans Services puis Kea DHCPv4.
Activer le service DHCP.
Sélectionner le VLAN clients.
Créer un sous-réseau.
Mettre 192.168.10.64/26.
Définir la plage 192.168.10.65 à 192.168.10.99.
screne
(configuration pool DHCP)
Désactiver l’automatique et ajouter DNS et passerelle.
Règles de pare-feu
Aller dans Pare-feu puis Règles.
Choisir une interface.
Créer une règle pour autoriser le trafic.
(exemple de régle)
Appliquer les modifications.
Proxy web (incomplet)
Assurez-vous d'installer os-squid via Système ‣ firmware ‣ Plugins afin d'utiliser le proxy Web. Depuis OPNsense 24.1, le proxy n'est plus inclus dans l'installation par défaut.
Aller dans Système puis Firmware puis Greffons.
Pour mettre en place un proxy transparant il faut :
Tout d’abord aller dans system : trust : authorities
Mise en place d'un proxy transparent
Aprés je suis aller dans mon proxy (service, proxy : administration) et j’ai activer enable proxy puis j’ai fait apply :
Par la suite je suis allé dans Forward Proxy puis j’ai coché « enable transparent HTTP proxy ».
Par la suite j’ai cliquer sur le « 1 » collé a enable tran... Et j’ai cliqué sur add nex firewall rule.
Arriver sur la page j’ai cliqué sur save dirrectement sans changer les paramétre de base.
Et j’arive sur cette page :
Par la suite je suis retourné dans squid (dans forward)
J’ai coché l’obtion ssl puis j’ai appliqué
Et j’arive sur cette page :
Donc sa donne ça :
Puis :
J’ai tout re vérifier :
Page proxy générale :
Forward proxy :
NAT :
Regle du parefeux admin :
Configuration du WAN
mettre ip fixe dans un réseau au part avant configuré
Ne pas oublié de crée dans l'interface graphique d'opn une gateway
DHCP ( sur serveur dns debian 12)
Installation du serveur DHCP KEA
sudo apt-get update
sudo apt-get install kea-dhcp4-server -y
Relever l'interface ( ici ens19) avec ip a
Nous allons partir sur un fichier de configuration vierge, car le fichier d'origine contient beaucoup d'informations. Nous allons renommer le fichier de configuration par défaut, car il peut être utile afin d'avoir un exemple :
sudo mv /etc/kea/kea-dhcp4.conf /etc/kea/kea-dhcp4.conf.bkp
Puis, créez et éditez le fichier de configuration du serveur DHCP via cette commande :
sudo nano /etc/kea/kea-dhcp4.conf
Dans ce fichier, vous devez commencer par indiquer les lignes spécifiées ci-dessous.
Attention : il est déconseillé d'utiliser des commentaires dans un fichier JSON (cela peut être à l'origine de certains problèmes), donc supprimez les lignes commençant par "//", elles sont là uniquement pour vous aider.
{
"Dhcp4": {
// Interface réseau sur laquelle le service DHCP doit être en écoute
"interfaces-config": {
"interfaces": [ "ens19" ]
},
// Durée des baux DHCP (bail de 8 jours, renouvelable à partir de 4 jours, pas néssésaire d'y toucher)
"valid-lifetime": 691200,
"renew-timer": 345600,
"rebind-timer": 604800,
// Serveur DHCP principal sur ce réseau local
"authoritative": true,
// Configuration de la base des baux DHCP
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases4.csv",
"lfc-interval": 3600
},
"subnet4": [
{
"subnet": "192.168.130.0/24",
"pools": [ { "pool": "192.168.130.10 - 192.168.130.50" } ],
"option-data": [
{
"name": "domain-name-servers",
"data": "192.168.100.2"
},
{
"name": "domain-search",
"data": "gsb.sio.jja"
},
{
"name": "routers",
"data": "192.168.130.1"
}
]
}
]
}
}
- domain-name-servers : serveur DNS à distribuer aux clients (plusieurs valeurs possibles)
- domain-search : domaine de recherche sur le réseau local (plusieurs valeurs possibles)
- routers : passerelle par défaut.
Quand la configuration est prête, enregistrez le fichier et relancez le service du serveur DHCP :
sudo systemctl restart kea-dhcp4-server.service
Si le serveur DHCP ne démarre pas, vérifiez les journaux. Vous pouvez utiliser cette commande :
sudo journalctl -xe | grep -e kea
Une erreur de saisie ou de syntaxe est vite arrivée... Donc, vous n'êtes pas à l'abri de voir une erreur telle que celle-ci :
DHCP4_INIT_FAIL failed to initialize Kea server: configuration error using file '/etc/kea/kea-dhcp4.conf': /etc/kea/kea-dhcp4.conf:2.1-7: syntax error
Configurer le relais DHCP sur opnsense
- Toujours dans Services > DHCP Relay, descends à la section Relays.
- Clique sur le bouton + (Add).
- Remplis les champs comme suit :
- Enabled : Coché (✅)
- Interface : Sélectionne l'interface de tes clients (ex:
Clientqui correspond au VLAN 14) - Destination : Sélectionne la destination créée précédemment (
Kea_DNS) - Agent Information : Décoché (sauf besoin spécifique)
- Clique sur Save.
Configurer le relais DHCP sur L3 :
ip dhcp relay address <ip du serveur DHCP>
Certification
Documentation — Mise en place de Certbot avec Let's Encrypt
Présentation
Certbot est un client ACME permettant d'obtenir et de renouveler automatiquement des certificats SSL/TLS délivrés par Let's Encrypt, une autorité de certification gratuite et reconnue par tous les navigateurs modernes.
Certbot remplace avantageusement les certificats auto-signés (OpenSSL) en offrant une reconnaissance universelle sans avertissement de sécurité.
Prérequis
- Un serveur Linux (Debian/Ubuntu)
- Un nom de domaine pointant vers l'IP publique du serveur
- Le port 80 (HTTP) accessible depuis Internet au moment de la génération du certificat
- Droits sudo sur le serveur
Installation
sudo apt update
sudo apt install certbot python3-certbot-apache -y
Pour Nginx, remplacer
python3-certbot-apacheparpython3-certbot-nginx.
Génération du certificat
Avec Apache (configuration automatique)
sudo certbot --apache -d mondomaine.fr
Avec Nginx (configuration automatique)
sudo certbot --nginx -d mondomaine.fr
Sans serveur web (autres services)
sudo certbot certonly --standalone -d mondomaine.fr
Le port 80 doit être libre au moment de la commande.
Via validation DNS (serveur sans IP publique)
sudo certbot certonly --manual --preferred-challenges dns -d mondomaine.fr
Certbot demandera d'ajouter un enregistrement TXT dans la zone DNS du domaine pour prouver sa propriété.
Fichiers générés
Les certificats sont stockés dans /etc/letsencrypt/live/mondomaine.fr/ :
| Fichier | Rôle |
|---|---|
fullchain.pem |
Certificat complet (à utiliser côté serveur) |
privkey.pem |
Clé privée associée |
Ces fichiers peuvent être utilisés par n'importe quel service (Proxmox, Gitea, BookStack, etc.) en les référençant dans leur configuration respective.
Renouvellement
Les certificats Let's Encrypt ont une durée de validité de 90 jours.
Certbot configure automatiquement un renouvellement périodique via un timer systemd. Pour vérifier que le renouvellement automatique fonctionne correctement :
sudo certbot renew --dry-run
Pour forcer un renouvellement manuel :
sudo certbot renew
Vérification
Après la génération, vérifier qu'Apache écoute bien sur le port 443 :
sudo ss -tlnp | grep 443
Vérifier également la date d'expiration du certificat :
sudo certbot certificates
Compatibilité
Certbot fonctionne sur tout type de machine Linux :
- Serveur dédié
- VPS
- Machine virtuelle (VM sous Proxmox, VMware, etc.)
- Conteneur (sous réserve d'accès réseau)
La seule contrainte reste la validation du domaine : Let's Encrypt doit pouvoir vérifier la propriété du domaine, soit via HTTP (port 80), soit via DNS.
Récapitulatif des commandes utiles
| Action | Commande |
|---|---|
| Installer Certbot | sudo apt install certbot python3-certbot-apache -y |
| Générer un certificat (Apache) | sudo certbot --apache -d mondomaine.fr |
| Générer un certificat (standalone) | sudo certbot certonly --standalone -d mondomaine.fr |
| Tester le renouvellement auto | sudo certbot renew --dry-run |
| Lister les certificats | sudo certbot certificates |
| Renouveler manuellement | sudo certbot renew |