Documentation du service Réseau interne - CardinPatson/SysAdmin GitHub Wiki

Organisation des configurations

Les fichiers de configuration du service interne se trouvent ici.

Ils sont organisés de la manière suivante :

Dossier Resolver

Qui contient la configuration du resolver situé sur un docker. Dans le named.conf on retrouve les lignes suivantes

commande Description
listen-on-v6 { none; }; N'autorise l'écoute pour les adresses ipv6
listen-on port 53 { any; }; Permettre à tout le monde d'écouter sur le port 53
allow-transfer {none;}; Permet d'empêcher le transfert de zone car on n'a qu'un serveur pour la zone
allow-recursion {
192.168.0.0/24;
192.168.1.0/24;
192.168.2.0/24;
192.168.3.0/24;
192.168.4.0/24;
192.168.5.0/24;
127.0.0.1/32;
};
Car on veut rediriger les requêtes vers les zones
forwarders{<br>8.8.8.8<br>192.168.4.1; //secretaire<br>} Car on veut utiliser le resolver de google comme serveur secondaire pour les requêtes
dnssec-enable yes;dnssec-validation yes; Activer la sécurisation pour les requêtes dns

Configuration de la zone dans le fichier named.conf

zone "m1-3.ephec-ti.be." IN {
        type forward;                     // car notre resolver doit rediriger les requêtes destinées à notre zone interne vers notre domaine 
        forwarders { 176.96.231.203; };
        forward only;
};

//INTERNE
zone "intranet.woody" IN{
        type forward;
        forwarders { 176.96.231.202 };     // Qui est l'intranet représente le soa interne vers lequel le resolveur va rediriger les requêtes
        forward only;

}

Dossier soa_interne

On a les fichiers qui nous permettent de configurer notre zone:

  • named.conf qui réprésente le fichier principale de configuration
commande Description
listen-on-v6 { none; }; N'autorise l'écoute pour les adresses ipv6
listen-on port 53 { any; }; Permettre à tout le monde d'écouter sur le port 53
allow-transfer {none;}; Permet d'empêcher le transfert de zone car on n'a qu'un serveur pour la zone
allow-recursion {none }; Car on ne veut pas rediriger les requêtes
recursion no: Bloquer la recursion car notre zone ne doit pas transférer les requêtes

Configuration de la zone

zone "intranet.woody" IN {
            type master;
            file "/etc/bind/db.intranet.woody"; # Pointe vers le fichier de configuration de la zone
};
commande Description
$ORIGIN intranet.woody. Permet de définir le domaine de notre zone interne
@ IN SOA ns.intranet.woody. marina.m1-3.ephec-ti.be. (); Permet de définir les paramètres de notre zone comme le délai d'expiration, le délai de rafraichissement, etc
@ IN NS ns.intranet.woody Permet de définir le name server de notre zone intranet.woody
ns IN A 176.96.231.202 Permet de spécifier l'adresse du name server
mail IN A 176.96.231.203
voip IN A 176.96.231.201
www IN A 176.96.231.202
Préciser les IP des autres enregistrements et CNAME

Dans le dossier samba

  • smb.conf représente le fichier de configuration principale de samba
[global]
        server string = File Server # Définit la chaine à afficher à côté du nom de la machine
        workgroup = SAMBA
        security = user    # Permet l'éxecution uniquement en tant que utilisateur qui doit être connecté avec un mot de passe
        server role= standalone server # Définit le mode d'opération de samba : ici il sera un simple serveur 
        map to guest = Bad User
        include = /etc/samba/shares.conf # Permet de prendre en compte la configuration dans shares.conf 
        usershare allow guests = yes
        hosts allow = 192.168.0.0/16  # Permet de définir les utilisateurs qui peuvent partager les fichiers
        hosts deny = 0.0.0.0/0     # Permet de restreindre l'accès à internet 
        log file = /var/log/samba/log.%m # Définit le fichier où les logs samba seront stocké
  • shares.conf : Se référer au commentaire pour l'explication des lignes
[Public Files]
 # Définit le répertoire où seront stocké les fichiers partagés en public
path = /share/public_files 
# Permet d'assigner l'utilisateur pour tout les utilisateurs samba
force user = smbuser        
# Permet de définir le groupe qui sera assigné pour tous les utilisateurs du service samba
force group = smbgroup   
# Définit le mask pour l'utilisateur de samba   
create mask = 0664      
# Définit les autorisations sur les fichiers nouvelllement crées par le user de samba     
force create mode = 0664  
# Définit les permissions avec lesquels le user samba peut créer des dossiers  
directory mask = 0775       
force directory mask = 0775 
public = yes
 # Permet de définir les fichiers partagés en public accessible en écriture
writable = yes             

[Protected Files]
# Définit le répertoire où seront stocké les fichiers partagés en privés
path = /share/private_files  
# Permet d'assigner l'utilisateur pour tout les utilisateurs samba 
force user = smbuser              
force group = smbgroup
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mask = 0775
public = yes
 # Permet de définir les fichiers partagés en public pas accessible en écriture
writable = no              

Maintenance

Procédure pour mettre à jour le conteneur

  1. Resolver
  • Arretez l'exécution du conteneur et supprimer le
docker stop <nom_conteneur>
docker rm <nom_conteneur>
  • Télécharger l'image mise à jour docker pull <nom_image>

  • Construisez votre conteneur

docker run -d --name <nom_container> <image_container>
  1. Soa Interne
  • Arretez l'exécution du conteneur et supprimer le
docker stop <nom_conteneur>
docker rm <nom_conteneur>
  • Télécharger l'image mise à jour docker pull <nom_image>

  • Construisez votre conteneur

docker run -d -p 53:53/tcp --name <nom_container> <image_container>
  1. Samba
  • Arretez l'exécution du conteneur et supprimer le
docker stop <nom_conteneur>
docker rm <nom_conteneur>
  • Télécharger l'image mise à jour docker pull <nom_image>

  • Construisez votre conteneur

docker run -d -p 139:139 --name <nom_container> <image_container>
  • Si nécessaire, entrez dans le conteneur et redemarrez les services samba
service restart smbd

Troubleshooting

Tester la connexion au soa interne et vérifiez bien s'il est accessible qu'au intranet

ping intranet.woody # Devrait echouer pour un hote ne faisant par partie de l'intranet et réussir pour tout ceux qui en font parti
  • Utilisation de l'outil wireshark qui nous permet d'analyser les requêtes dns pour notre zone interne

Tester le fonctionnement du resolver

Sur un des conteneurs qui représente un partie de l'entreprise

dig intranet.woody

dig -x 192.168.0.5

Utilisez wireshark pour analyser le traffic vers le résolveur.

ping 192.168.0.5

Tester le partage de fichier samba

Vérifier si le port 139 de samba est bien accessible

nmap <ip server> 
  • Dans le conteneur

Procédures et collecte d'information

En cas de dysfonctionnement, voici les éléments à observer pour trouver des informations de debug :

Pour déboguer le conteneur :

docker logs -f <nom_conteneur>

Pour obtenir un shell interactif :

docker exec -it <nom_conteneur> /bin/bash

Logs : Fichiers /var/log/samba/ Procédure de test 1 : Taper la commande dig @ns110.ovh.net m1-3.ephec-ti.be pour tester la joignabilité du NS. Si résultat pas de serveur trouvé: Le problème vient d'une mauvaise configuration des ressources records, sinon, le problème ailleurs.

Erreurs fréquentes

  • Oubli de la configuration des ports UDP => le service n'est pas joignable
  • Permissions incorrectes sur le fichier /var/log/misc.log => Les logs ne sont pas générées
  • Oubli de rendre le service bind9 accessible en ligne. Pour résoudre ce problème il suffit d'ajouter la ligne suivante dans le fichier named.conf.options :
listen-on port 53 { any; };
  • ...
⚠️ **GitHub.com Fallback** ⚠️