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 :

sudo cp /etc/netplan/00-installer-config.yaml
/etc/netplan//00-installer-config.yaml.bkp

Dans le fichier /etc/netplan/00-installer-config.yaml

_images/image460.png

sudo netplan apply

Installation des logiciels d’authentification sur le domaine

sudo apt install acl realmd libnss-winbind winbind

Créer l’espace de stockage des partages

_images/image461.png

Création nouvelle partition

_images/image462.png

Créer le groupe de volumes LVM

vgcreate samba /dev/sdb1

_images/image463.png

Joindre la machine virtuelle au domaine

Installer Kerberos

sudo apt install krb5-user

_images/image464.png

_images/image465.png

_images/image466.png

On a édité le fichier /etc/krb5.conf

[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

sudo apt update && sudo apt upgrade -y
sudo apt install -y samba

Modifier le fichier /etc/samba/smb.conf

# 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
sudo apt install -y ntp

On a modifié le fichier /etc/ntp.conf comme suite :

#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

systemctl restart ntp smbd 

Nous avons rentré notre serveur samba dans le domaine

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

passwd:     files systemd winbind
group:      files systemd winbind
shadow:     files winbind

Pour vérifier si tout est fonctionnel jusqu’au présent

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

# 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
pam-auth-update

_images/image476.png

Nous avons sélectionné Non.

Nous avons modifié le fichier /etc/pam.d/common-auth

# 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

# 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

# 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)

sudo dpkg-reconfigure tzdata
sudo reboot

Vérification espace de partage disponible

sudo vgdisplay \> vgdisplay.txt  
vim vgdisplay.txt

_images/image480.png

Création du partage

_images/image481.png

Création du volume logique

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

_images/image483.png

Montage du volume logique

Récupération ID du disque

_images/image484.png

Nous avons ajouté le fichier /etc/fstab pour un montage automatique

_images/image485.png

Montage de toutes les partitions et vérifier le montage

_images/image486.png

Astuce

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

_images/image488.png

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

_images/image489.png

Puis j’ai ajouté deux membres

_images/image490.png

Définition ACL sur la racine du partage

setfacl -R -m g:"T2SR\smbpartage":rwx /home/partage

Avertissement

T2SR\smbpartage – partage correspond au nom groupe précédemment créé

Définition ACL par défaut du partage

setfacl -R -m d:g:"T2SR\smbpartage":rwx /home/partage

Modification du Samba

[partage]
path = /home/partage
writable = yes
printable = no
browseable = yes
valid users = @smbpartage

Redémarrage le service Samba

sudo systemctl restart smbd

Test partage avec un client Debian

+ Autre emplacements

_images/image494.png

Nous avons renseigné le dossier partage

_images/image495.png

Si le fichier /etc/hosts est bien renseigné, on peut se connecter par le nom aussi

_images/image496.png

_images/image497.png

_images/image498.png

Test partage avec un client Windows

J’ai ajouté un emplacement réseau

_images/image499.png

_images/image500.png

_images/image501.png

Intégrer Samba dans Active Directory

_images/image148.png

NB : le procédé d’intégration est expliqué dans le chapitre Active Directory.

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.

  Pierre & Zoltan v: 0.1
Sur Pierre & Zoltan
Home
Sur GitHub
View
Search
Hosted by GitHub ·