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
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
Création nouvelle partition
Créer le groupe de volumes LVM
vgcreate samba /dev/sdb1
Joindre la machine virtuelle au domaine
Installer Kerberos
sudo apt install krb5-user
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
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
Création du partage
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
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
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
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
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
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.
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.