Je vais vous guider pas à pas pour configurer votre serveur Linux avec DHCP, DNS et Samba.
Je vais tout
expliquer en détail comme si vous étiez débutant.
Étape 1: Configuration de base du serveur
Vérification de la configuration actuelle
```bash
# Vérifier le nom d'hôte actuel
hostname
```
Explication: hostname affiche le nom actuel de votre serveur.
```bash
# Vérifier l'utilisateur actuel
echo $USER
```
Explication: echo $USER affiche le nom de l'utilisateur connecté.
```bash
# Vérifier l'adresse IP
ip a s eno1
```
Explication: ip a s eno1 montre la configuration IP de l'interface eno1.
Configuration du nom d'hôte (OPTIONNEL - seulement si vous voulez changer)
Non, ns1 n'est PAS obligatoire. Vous pouvez utiliser ns2 comme vous le souhaitez.
```bash
# Changer le nom d'hôte temporairement
sudo hostnamectl set-hostname [Link]
# OU modifier le fichier manuellement
sudo nano /etc/hostname
```
Dans nano:
· Effacez tout le contenu
· Tapez: [Link]
· Ctrl+S pour sauvegarder
· Ctrl+X pour quitter
```bash
# Modifier aussi le fichier hosts
sudo nano /etc/hosts
```
Dans le fichier /etc/hosts, ajoutez cette ligne (remplacez ce qui existe):
```
[Link] localhost
[Link] [Link] ns2
```
Explication: Ce fichier fait la correspondance entre adresses IP et noms d'hôtes.
```bash
# Redémarrer pour appliquer les changements
sudo reboot
```
Étape 2: Configuration IP statique
```bash
# Éditer le fichier de configuration réseau
sudo nano /etc/netplan/[Link]
```
Collez cette configuration exactement (faites attention aux espaces et indentations):
```yaml
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- [Link]/24
nameservers:
addresses: [[Link], [Link]]
routes:
- to: default
via: [Link]
```
Explication du fichier:
· version: 2 - version de la configuration Netplan
· renderer: networkd - utilise systemd-networkd
· eno1 - nom de votre interface réseau
· addresses: - [Link]/24 - IP et masque de sous-réseau
· nameservers - DNS externes pour votre serveur
· routes - configuration de la route par défaut
```bash
# Appliquer la configuration
sudo netplan apply
# Vérifier que l'IP est correcte
ip a s eno1
```
Vous devriez voir: inet [Link]/24
Étape 3: Installation et configuration du serveur DHCP
```bash
# Installer le serveur DHCP
sudo apt update
sudo apt install isc-dhcp-server -y
```
Configuration du DHCP
```bash
# Éditer le fichier de configuration principal
sudo nano /etc/dhcp/[Link]
```
Remplacez tout le contenu par:
```
# Configuration DHCP pour le réseau [Link]/24
authoritative;
subnet [Link] netmask [Link] {
range [Link] [Link];
option domain-name-servers [Link];
option domain-name "[Link]";
option routers [Link];
option subnet-mask [Link];
option broadcast-address [Link];
default-lease-time 600;
max-lease-time 7200;
```
Explication de chaque ligne:
· authoritative; - ce serveur est l'autorité pour ce réseau
· subnet [Link] netmask [Link] - définition du réseau
· range [Link] [Link]; - plage d'IPs à distribuer
· option domain-name-servers [Link]; - DNS à donner aux clients
· option domain-name "[Link]"; - nom de domaine
· option routers [Link]; - passerelle par défaut
· option subnet-mask [Link]; - masque de sous-réseau
```bash
# Spécifier l'interface sur laquelle écouter
sudo nano /etc/default/isc-dhcp-server
```
Modifiez la ligne INTERFACESv4:
```
INTERFACESv4="eno1"
```
```bash
# Démarrer et activer le service DHCP
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl status isc-dhcp-server
```
Vous devriez voir: active (running) en vert
Étape 4: Installation et configuration du serveur DNS (Bind9)
```bash
# Installer Bind9
sudo apt install bind9 bind9utils bind9-doc -y
```
Configuration du DNS
```bash
# Éditer le fichier de configuration principal
sudo nano /etc/bind/[Link]
```
Ajoutez à la fin du fichier:
```
// Zone directe pour [Link]
zone "[Link]" {
type master;
file "/etc/bind/[Link]";
};
// Zone inverse pour [Link]/24
zone "[Link]" {
type master;
file "/etc/bind/db.192.168.1";
};
```
Créer le fichier de zone directe:
```bash
sudo nano /etc/bind/[Link]
```
Collez ce contenu:
```
$TTL 604800
@ IN SOA [Link]. [Link]. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; Enregistrements NS
@ IN NS [Link].
; Enregistrements A
@ IN A [Link]
ns2 IN A [Link]
www IN A [Link]
ftp IN A [Link]
samba IN A [Link]
```
Explication des enregistrements DNS:
· SOA - Start of Authority, information sur la zone
· NS - Name Server, serveur DNS autoritaire
· A - Address, fait correspondre un nom à une IP
· Serial - numéro de version de la zone
· [Link]. - votre serveur DNS (notez le point à la fin)
Créer le fichier de zone inverse:
```bash
sudo nano /etc/bind/db.192.168.1
```
Collez ce contenu:
```
$TTL 604800
@ IN SOA [Link]. [Link]. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; Serveurs NS
@ IN NS [Link].
; Enregistrements PTR
1 IN PTR [Link].
1 IN PTR [Link].
```
Configurer les forwarders:
```bash
sudo nano /etc/bind/[Link]
```
Ajoutez dans le bloc options:
```
options {
directory "/var/cache/bind";
forwarders {
[Link];
[Link];
};
listen-on { [Link]; };
listen-on-v6 { none; };
allow-query { any; };
recursion yes;
dnssec-validation auto;
auth-nxdomain no;
};
```
```bash
# Vérifier la syntaxe des fichiers de configuration
sudo named-checkconf
sudo named-checkzone [Link] /etc/bind/[Link]
sudo named-checkzone [Link] /etc/bind/db.192.168.1
```
Vous devriez voir: OK pour chaque commande
```bash
# Redémarrer Bind9
sudo systemctl restart bind9
sudo systemctl enable bind9
sudo systemctl status bind9
```
Étape 5: Configuration de Samba
```bash
# Installer Samba
sudo apt install samba -y
```
Configuration de Samba
```bash
# Sauvegarder la configuration originale
sudo cp /etc/samba/[Link] /etc/samba/[Link]
# Éditer la configuration Samba
sudo nano /etc/samba/[Link]
```
Remplacez tout le contenu par:
```
[global]
workgroup = WORKGROUP
server string = Serveur Samba %v
netbios name = NS2
security = user
map to guest = bad user
dns proxy = no
interfaces = [Link]/24
bind interfaces only = yes
[partage-public]
path = /srv/samba/partage-public
browsable = yes
writable = yes
guest ok = yes
read only = no
create mask = 0755
[partage-prive]
path = /srv/samba/partage-prive
valid users = admin_202
browsable = yes
writable = yes
guest ok = no
read only = no
```
Explication de la configuration Samba:
· workgroup = WORKGROUP - groupe de travail Windows
· security = user - authentification par utilisateur
· [partage-public] - partage accessible à tous
· [partage-prive] - partage nécessitant authentification
· path - chemin du dossier partagé
· writable = yes - autorise l'écriture
```bash
# Créer les dossiers de partage
sudo mkdir -p /srv/samba/partage-public
sudo mkdir -p /srv/samba/partage-prive
# Donner les permissions
sudo chmod 777 /srv/samba/partage-public
sudo chmod 755 /srv/samba/partage-prive
# Créer un fichier test
sudo echo "Bienvenue sur le partage public" > /srv/samba/partage-public/[Link]
```
Créer un utilisateur Samba
```bash
# Créer l'utilisateur système (si pas déjà fait)
sudo adduser admin_202
# Ajouter l'utilisateur à Samba
sudo smbpasswd -a admin_202
```
Vous devrez taper un mot de passe deux fois
```bash
# Redémarrer Samba
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
```
Étape 6: Configuration du firewall
```bash
# Activer le firewall
sudo ufw enable
# Autoriser les services
sudo ufw allow ssh
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
```
Étape 7: Vérifications finales
```bash
# Vérifier le statut de tous les services
sudo systemctl status isc-dhcp-server
sudo systemctl status bind9
sudo systemctl status smbd
# Tester la résolution DNS
nslookup [Link] [Link]
nslookup [Link] [Link]
# Tester la résolution inverse
nslookup [Link] [Link]
```
Étape 8: Test depuis Windows 11
Une fois tout configuré et que vous avez débranché le routeur:
1. Connectez le câble réseau entre votre serveur et le PC Windows
2. Sur Windows 11:
· Ouvrez Paramètres → Réseau et Internet
· Cliquez sur Centre réseau et partage
· Modifier les paramètres de la carte
· Clic droit sur Ethernet → Propriétés
· Double-cliquez sur Protocole Internet version 4 (TCP/IPv4)
· Sélectionnez Obtenir une adresse IP automatiquement
· Sélectionnez Obtenir les adresses des serveurs DNS automatiquement
3. Ouvrez l'invite de commande (cmd) et testez:
```cmd
ipconfig /all
```
Vous devriez voir: une IP dans la plage [Link]-200
```cmd
nslookup [Link]
```
Vous devriez voir: Address: [Link]
1. Accéder aux partages Samba:
· Ouvrez l'Explorateur de fichiers
· Dans la barre d'adresse, tapez: \\[Link]
· Vous devriez voir les dossiers "partage-public" et "partage-prive"
Dépannage
Si quelque chose ne fonctionne pas:
```bash
# Vérifier les logs
sudo journalctl -u isc-dhcp-server -f
sudo journalctl -u bind9 -f
sudo tail -f /var/log/syslog
# Redémarrer les services
sudo systemctl restart isc-dhcp-server
sudo systemctl restart bind9
sudo systemctl restart smbd
```
Votre serveur est maintenant configuré avec:
· ✅ DHCP pour distribuer les IP automatiquement
· ✅ DNS pour la résolution de noms
· ✅ Samba pour le partage de fichiers
· ✅ ns2 comme nom de serveur (pas ns1)
· ✅ [Link] comme domaine
Tout devrait fonctionner même sans connexion Internet, puisque tous les services sont hébergés
localement sur votre serveur.