# **Serveur SAMBA** ## Objectif et environnement ### Objectif L’installation et configuration un serveur de partage de fichier SAMBA et impression sur Ubuntu serveur. ### Environnement Matériels : - Dell PowerEdge r240 avec Proxmox 7.1-7 Adressage des VMS : - Réseaux : 172.16.0.0/16 - Serveur Samba et impression : SRV-UBU-SMB 172.28.1.202/16 - Client Debian 1 : clideb1 172.28.2.1/16 ### Documentation - ## Processus ### Installation J’ai créé une sauvegarde en faisant : ```bash sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan//00-installer-config.yaml.bkp ``` Dans le fichier /etc/netplan/00-installer-config.yaml ```bash sudo netplan apply ``` #### Installation des logiciels d’authentification sur le domaine ```bash sudo apt install acl realmd libnss-winbind winbind ``` #### Créer l’espace de stockage des partages Création nouvelle partition Créer le groupe de volumes LVM ```bash vgcreate samba /dev/sdb1 ``` ### Joindre la machine virtuelle au domaine #### Installer Kerberos ```bash sudo apt install krb5-user ``` On a édité le fichier /etc/krb5.conf ```bash [libdefaults] default_realm = T2SR.IO [realms] T2SR.IO = { kdc = srv-w19-ad.t2sr.io admin_server = srv-w19-ad.t2sr.io default_domain = t2sr.io } [domain_realm] .t2sr.io = .T2SR.IO t2sr.io = T2SR.IO [login] krb4_convert = true krb4_get_tickets = false ``` #### Installation SAMBA ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y samba ``` Modifier le fichier /etc/samba/smb.conf ```bash # Change this to the workgroup/NT-domain name your Samba server will part of workgroup = T2SR # Hide lost+found hide files = /lost+found/ # Most people will want "standalone server" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. server role = member server # This option controls how unsuccessful authentication attempts are mapped # to anonymous connections map to guest = bad user # Ajout ACL nt acl support = yes inherit acls = yes username map = /etc/samba/user.map map acl inherit = yes map archive = no map hidden = no map read only = no map system = no store dos attributes = yes inherit permissions = yes security = ADS realm = T2SR.io template shell = /bin/bash # Ajout parametres idmap config example : schema_mode = rfc2307 idmap config example : range = 10000000-29999999 idmap config example : default = yes idmap congig example : backend = rid idmap config * : range = 20000-29999 idmap config * : backend = tdb winbind use default domain = true ``` ```bash sudo apt install -y ntp ``` On a modifié le fichier /etc/ntp.conf comme suite : ```bash #pool 0.ubuntu.pool.ntp.org iburst #pool 1.ubuntu.pool.ntp.org iburst #pool 2.ubuntu.pool.ntp.org iburst #pool 3.ubuntu.pool.ntp.org iburst # Use Ubuntu's ntp server as a fallback. #pool ntp.ubuntu.com NTPSERVERS="SRV-W19-AD.t2sr.io" NTPOPTIONS="-u" ``` Redémarrer ntp et smbd ```bash systemctl restart ntp smbd ``` Nous avons rentré notre serveur samba dans le domaine ```console net ads join -S SRV-W19-AD -U Administrateur joined srv-ubu-smb to realm t2sr.io systemctl restart winbind ``` Configurer NSS Nous avons modifié le fichier /etc/nsswitch.conf ```console passwd: files systemd winbind group: files systemd winbind shadow: files winbind ``` Pour vérifier si tout est fonctionnel jusqu’au présent ```bash root@CT-DEB-CUPS:~# realm discover -v t2sr.io * Resolving: _ldap._tcp.t2sr.io * Performing LDAP DSE lookup on: 172.28.1.200 * Successfully discovered: t2sr.io t2sr.io type: kerberos realm-name: T2SR.IO domain-name: t2sr.io configured: no server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin ``` #### Préparation PAM ```bash # here are the per-package modules (the "Primary" block) account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so ``` ```bash pam-auth-update ``` Nous avons sélectionné **Non**. Nous avons modifié le fichier /etc/pam.d/common-auth ```bash # here are the per-package modules (the "Primary" block) auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass ``` Nous avons modifié le fichier /etc/pam.d/common-password ```bash # here are the per-package modules (the "Primary" block) password [success=2 default=ignore] pam_unix.so obscure sha512 password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass ``` Nous avons modifié le fichier /etc/pam.d/common-session ```bash # and here are more per-package modules (the "Additional" block) session required pam_unix.so session optional pam_systemd.so session optional pam_winbind.so session optional pam_mkhomedir.so session required pam_mkhomedir.so skel=/etc/skel ``` Configuration du fuseau horaire (choix France/Paris) ```bash sudo dpkg-reconfigure tzdata sudo reboot ``` Vérification espace de partage disponible ```bash sudo vgdisplay \> vgdisplay.txt vim vgdisplay.txt ``` Création du partage Création du volume logique ```bash lvcreate -n partage -L 9.9G samba ``` Retour de la commande : >Rounding up size to full physical extent 9.90 GiB >Logical volume "partage" created. Formatage de la partition ### Montage du volume logique Récupération ID du disque Nous avons ajouté le fichier /etc/fstab pour un montage automatique Montage de toutes les partitions et vérifier le montage ```{tip} Retirer l’espace réservé pour root, inutile de le gardé dans notre cas.
tune2fs -m 0 /dev/mapper/samba-partage
``` #### Définition des droits d’accès avec les ACL Création d’un groupe sur l’Active Directory En prévision des définitions ACL j’ai créé un groupe nommé **partage** sur l’AD Puis j’ai ajouté deux membres Définition ACL sur la racine du partage ```console setfacl -R -m g:"T2SR\smbpartage":rwx /home/partage ``` ```{warning} T2SR\\**smbpartage** – partage correspond au nom groupe précédemment créé ``` Définition ACL par défaut du partage ```console setfacl -R -m d:g:"T2SR\smbpartage":rwx /home/partage ``` #### Modification du Samba ```console [partage] path = /home/partage writable = yes printable = no browseable = yes valid users = @smbpartage ``` Redémarrage le service Samba ```bash sudo systemctl restart smbd ``` #### Test partage avec un client Debian \+ Autre emplacements Nous avons renseigné le dossier partage Si le fichier /etc/hosts est bien renseigné, on peut se connecter par le nom aussi #### Test partage avec un client Windows J’ai ajouté un emplacement réseau ### Intégrer Samba dans Active Directory NB : le procédé d’intégration est expliqué dans le chapitre [Active Directory](active_directory.md). ## Conclusion La mise en place d’un serveur de partage est complexe si on souhaite synchroniser les accès et droits avec un Active Directory. ```{eval-rst} .. raw:: html :file: flyout.html ```