SAMBA 4 – Installation TranquilIT
Pour accéder aux autres documentations Samba4, cliquez ici : Autres documentations Samba
Besoins d’accompagnement, n’hésitez pas à nous contacter chez http://www.tranquil.it
Sommaire
Prérequis
Cette documentation se base sur la distribution debian Stretch
La distribution Stretch contient un paquet Samba 4.5.8, mais celui ci ne bénéficie pas des dernières évolutions du projet Samba qui avance très vite au niveau du contrôleur de domaine. Il reste donc préférable pour l’instant de recompiler son samba soi-même à partir des sources officielles (rien de bien méchant, nous allons voir).
Dans les instructions décrites ci-dessous, on prendra le domaine mondomaine.lan qui sera à remplacer avec votre propre nom de domaine (éviter d’employer un suffixe en .com, .fr, etc ; nous suggérons .lan et ça marchera très bien).
Installer une Debian Stretch de base
La première étape consiste à installer le système avec le strict minimum, donc uniquement avec le service SSH installé.
Il faut mettre la machine en ip fixe, sinon le fichier /etc/resolv.conf sera écrasé par le client dhcp lors de la mise à jour du bail.
Installation de SaMBa4
Préparer une configuration réseau propre
Modifier le fichier /etc/hostname pour qu’il contienne le nom FQDN (nom + suffixe DNS du réseau local) de la machine
srvads.mondomaine.lan
Modifier le fichier /etc/hosts pour qu’il contienne la résolution DNS du FQDN de la machine sur son ip (ie pas 127.0.0.1), avec le nom long puis le nom court
127.0.0.1 localhost 192.168.1.11 srvads.mondomaine.lan srvads
Rebooter la machine pour prendre en compte ce nouveau nom de machine (un hostname -F /etc/hostname n’a pas l’air de suffire pour le script samba qui récupère toujours l’ancien nom…)
reboot
Installer samba
- Dans cette documentation nous allons utiliser les paquets DEB Samba Tranquil IT Systems, vous trouverez sur ce lien comment installer samba en dernière version sous Centos, ou comment compiler Samba.
!! Nos paquets samba ne sont actuellement pas signés, il y aura donc une alerte lors de l’installation. !!
Ils sont actuellement validés uniquement pour Debian 9 Stretch 64 Bits
wget -O - http://samba.tranquil.it/tissamba-pubkey.gpg | apt-key add - echo "deb http://samba.tranquil.it/debian/samba-4.7 stretch main" > /etc/apt/sources.list.d/tissamba.list
export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install samba winbind libnss-winbind krb5-user unset DEBIAN_FRONTEND
Créer un domaine Active Directory sous Samba
Configuration kerberos locale, modification du fichier /etc/krb5.conf, supprimer tout ce qu’il y a dedans et rajouter les lignes suivantes. Attention de bien mettre le nom du domaine en majuscule.
[libdefaults] dns_lookup_realm = false dns_lookup_kdc = true default_realm = MONDOMAINE.LAN
Effacer le fichier smb.conf s’il a déjà été généré (il va être régénéré par la commande de provisionning samba-tool juste après)
rm -f /etc/samba/smb.conf
Création du passage du Samba4 en DC (note : le mot de passe xxxxxxx doit respecter un certain niveau de complexité, ie >=8 caractères avec des chiffres et caractères spéciaux). Dans la ligne qui suit, penser à changer à la fois le nom du « royaume » kerberos, ainsi que le nom court du domaine (nom netbios)
samba-tool domain provision --realm=MONDOMAINE.LAN --domain MONDOMAINE --adminpass xxxxxxx --server-role=dc
Configurer le DNS pour pointer sur lui même dans le fichier /etc/resolv.conf en renseignant 127.0.0.1.
search mondomaine.lan nameserver 127.0.0.1
Vérifier que les forwarders DNS ont bien été configurés dans le fichier /etc/samba/smb.conf
[global] workgroup = MONDOMAINE realm = MONDOMAINE.LAN netbios name = SRVADS server role = active directory domain controller dns forwarder = 8.8.8.8 ....
Par défaut, sous Debian le paquet samba utilise le service samba-ad-dc et non plus le service samba.
systemctl unmask samba-ad-dc systemctl enable samba-ad-dc systemctl disable samba winbind nmbd smbd systemctl mask samba winbind nmbd smbd
A l’installation des paquets, Samba est automatiquement démarré en tant que serveur de fichier, le plus simple est de reboot le serveur
reboot
Tester que le kerberos est bien configuré, attention, l’administrateur par défaut est administrator en anglais (taper le mdp, si ça ne renvoie rien ou qu’il parle juste de l’expiration de mot de passe, c’est que ça marche)
kinit administrator
Tester les DNS
dig @localhost google.fr dig @localhost srvads.mondomaine.lan dig -t SRV @localhost _ldap._tcp.mondomaine.lan
Valider la nouvelle installation
- joindre une machine au domaine
- vérifier que l’on a bien l’accès aux partages système \\mondomaine.lan\sysvol et \\mondomaine.lan\netlogon
Pour gérer votre nouveau domaine, il faut installer les interfaces de management sur un poste Windows. Beaucoup de tâches d’administrateur peuvent être effectuées en ligne de commande, mais certaines nécessites l’utilisation des RSAT (Remote Server Administration Tools)
- sur Win7 : installer les outils RSAT, voir la page SAMBA – Installation des outils de gestion RSAT
Une fois les interfaces installées, vous pouvez continuer vos tests
- test de connexion au DNS à partir de la console « DNS Active directory »
- test de connexion à partir de la console « Utilisateurs et ordinateurs active directory »
Avant de passer en production, il faut remplacer le DNS interne Samba par le module Bind DLZ. Pour cela suivre la documentation SAMBA – Integration avec bind9
Note : si vous avez des besoins d’accompagnement, n’hésitez pas à nous contacter chez http://www.tranquil.it
Sommaire
Remarque
Le DNS intégré à Samba4 est fonctionnel pour les tests, mais il est nécessaire de passer en mode « Bind DLZ » une fois que l’on passe en production. En effet, bien que le DNS interne Samba est très simple à mettre en place. Toutefois, il a deux gros désavantages:
- il ne fait pas de cache
- on ne peut pas avoir de configuration DNS avancée.
L’installation d’un serveur Bind9 en frontal de Samba4 avec une intégration DLZ permet d’avoir à la fois la performance et la flexibilité de Bind9, et de bénéficier de la gestion des zones DNS intégrées à Active Directory de la même manière que le DNS interne.
Debian
Installation
Procédure pour un debian Stretch 64bit avec une installation de Samba par paquet deb. Installation de Bind9:
apt-get install bind9
Suppression du rôle DNS sur le serveur Samba. Modifier le fichier /etc/samba/smb.conf et rajouter la ligne suivante
[global] ... server services = -dns ...
On peut aussi commenter ou supprimer la ligne de forwarder DNS qui peut se trouver dans le fichier /etc/samba/smb.conf car elle ne sera plus nécessaire.
# dns forwarders = 8.8.8.8
Modification du fichier /etc/bind/named.conf.local et rajouter la ligne suivante (note: la référence à "samba4" ici est purement informative car elle n’est utilisé ni par bind ni par le module samba4 dlz)
dlz "samba4" { # For BIND 9.9.0 database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so"; };
Modification de droits sur les répertoires et de liens symboliques pour permettre à bind d’accèder aux bases des données samba4
mkdir /var/lib/samba/private/dns/ ln -s /var/lib/samba/private/sam.ldb /var/lib/samba/private/dns/sam.ldb ln -s /var/lib/samba/private/sam.ldb.d /var/lib/samba/private/dns/sam.ldb.d chmod 755 /var/lib/samba/private chmod 750 /var/lib/samba/private/sam.ldb.d chgrp bind /var/lib/samba/private/sam.ldb.d /var/lib/samba/private/sam.ldb chmod 660 /var/lib/samba/private/sam.ldb chgrp bind /var/lib/samba/private/sam.ldb.d/* chmod 660 /var/lib/samba/private/sam.ldb.d/*
Changer le mode de fonctionnement DNS du mode « DNS interne » au mode « bind DLZ » (le mode par défaut est « DNS interne »)
samba_upgradedns --dns-backend=BIND9_DLZ chown bind /var/lib/samba/private/dns.keytab
Relancer le serveur samba
systemctl restart samba-ad-dc
Modification du fichier /etc/bind/named.conf.options, rajouter la ligne suivante
options { ... tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; ... };
Relance du serveur DNS bind
service bind9 restart
Vérification que c’est bien le serveur bind qui écoute sur le port 53
netstat -tapn | grep 53 tcp 0 0 192.168.149.11:53 0.0.0.0:* LISTEN 5291/named
Le serveur Samba4 sera probablement sur un réseau NATé et il sera alors préférable de configurer un forwarder DNS. Pour cela il faut modifier le fichier /etc/bind/named.conf.options et décommenter la partie concernant les forwarders
options{ .... forwarders { 192.168.147.11; }; .... }
Tester la résolution DNS
dig @localhost google.fr dig @localhost srvads.mondomaine.lan dig -t SRV @localhost _ldap._tcp.mondomaine.lan
Autres modifications
Si votre environnement n’est pas correctement configuré pour le DNSSEC, il peut être utile de modifier la ligne suivante dans le fichier /etc/bind/named.conf.options
options { ... dnssec-validation no; ... }
Désactivation de l’écoute ipv6, modifier le fichier /etc/default/bind9
OPTIONS="-4 -u bind"
Permettre aux différents sous réseaux de se connecter (par défaut uniquement le subnet du serveur est autorisé) en éditant le fichier /etc/bind/named.conf.options
options { ... allow-query { any;}; ... }
Centos
yum install bind
vi /etc/named.conf
ajouter dans la section options:
listen-on port 53 { any; }; forwarders { 8.8.8.8; }; tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; allow-query { any; }; allow-recursion { any; }; allow-query-cache { any; };
ajouter a la fin du fichiers:
dlz "mondomaine.local" { # For BIND 9.9.0 database "dlopen /usr/lib64/samba/bind9/dlz_bind9_9.so"; };
vi /etc/sysconfig/named
OPTIONS="-4"
systemctl enable named
mkdir /var/lib/samba/private/dns/ ln -s /var/lib/samba/private/sam.ldb /var/lib/samba/private/dns/sam.ldb ln -s /var/lib/samba/private/sam.ldb.d /var/lib/samba/private/dns/sam.ldb.d chmod 755 /var/lib/samba/private chmod 750 /var/lib/samba/private/sam.ldb.d chgrp named /var/lib/samba/private/sam.ldb.d /var/lib/samba/private/sam.ldb chmod 660 /var/lib/samba/private/sam.ldb chgrp named /var/lib/samba/private/sam.ldb.d/* chmod 660 /var/lib/samba/private/sam.ldb.d/*
vi /etc/samba/smb.conf
ajouter:
server services = -dns
et commenter la ligne:
# dns forwarders =
samba_upgradedns --dns-backend=BIND9_DLZ chown named /var/lib/samba/private/dns.keytab
systemctl restart samba systemctl restart bind
vérifications
Vérification que c’est bien le serveur bind qui écoute sur le port 53
netstat -tapn | grep 53 tcp 0 0 192.168.149.11:53 0.0.0.0:* LISTEN 5291/named
dig @localhost google.fr dig @localhost srvads.mondomaine.lan dig -t SRV @localhost _ldap._tcp.mondomaine.lan
Remarques
Note : Bind DLZ ne fonctionne pas en mode multiview de Bind si il est référencé dans plusieurs zones
Gestion des utilisateurs Samba 4 en ligne de commande
# samba-tool user setpassword Administrator
Commentaires récents