Voici un petit article décrivant l’installation de Samba 4.x en mode contrôleur de domaine Active Directory, la création d’un domaine, l’utilisation de Kerberos, des partages de fichiers, des impressions et de quelques commandes de gestion…
- Prérequis (pour Mageia)
# urpmi krb5-workstation attr python-devel libacl-devel openldap-devel
- Prérequis (pour CentOS 7 – Minimal install)
# yum install krb5-workstation attr python-devel libacl-devel openldap-devel # yum install gcc perl libxslt docbook-xsl # yum install krb5-devel ncurses-devel pam-devel cups-devel systemd-devel
- Obtenir et compiler Samba 4 (vérifier la dernière version disponible et adapter le lien)
# cd /opt/Packages/ # wget https://www.samba.org/samba/ftp/stable/samba-4.1.12.tar.gz
# cd /usr/local/src/ # tar -zxvf /opt/Packages/samba-4.1.12.tar.gz # cd samba-4.1.12/ # ./configure -p -j 2 # make # make install
- Ajout des pages Man
# vi /etc/man.config -Add: MANPATH_MAP /usr/local/samba/bin /usr/local/samba/share/man
- A ce stade, il faut soit provisionner un nouveau domaine, soit mettre à jour un domaine PDC SaMBA 3 existant vers le mode ADS
!! Stop old samba + disable restart !! Verif que pas RID en double # cd /usr/local/samba/ # mkdir olddb # cd olddb/ # cp /etc/samba/* . # cp /var/cache/samba/* . # rm -rf ../private/* # rm -f ../etc/smb.conf # vi smb.conf <- check logon master = yes # ../bin/samba-tool domain classicupgrade --dbdir /usr/local/samba/olddb --use-xattrs=yes --realm=mydomain.com /usr/local/samba/olddb/smb.conf # cd .. # vi etc/smb.conf <- add dns forwarders # vi adm_pwd.txt
- Lancer le démon SaMBa
# /usr/local/samba/sbin/samba
- Vérification que le processus tourne ainsi que les ports TCP/UDP à l’écoute
# ps -ef <- process # netstat -tupan <- ports (139,445,3268,389,53,...)
- Vérification du DNS intégré
# dig www.google.com # dig mydomain.com # host -t SRV _ldap._tcp.mydomain.com
- Configurer le DNS de la machine vers le serveur DNS intégré
# vi /etc/resolv.conf <- or better trought the system network manager
- Vérification de l’heure (ceci est très important pour le bon fonctionnement de Kerberos). L’utilisation de NTP est fortement conseillée pour aligner les horloges des différentes machines sur le réseau local.
# date
- Mise à jour de la configuration locale de Kerberos
# mv /etc/krb5.conf /etc/krb5.conf.orig # ln -sf /usr/local/samba/private/krb5.conf /etc/krb5.conf # cat /etc/krb5.conf
- Test d’une authentification Kerberos
# kinit administrator@MYDOMAIN.COM <- MAJUSCULE # klist # kpasswd <- normal pwd change # samba-tool user setpassword Administrator <- reset admin account (if lost)
- Mise en place de droits spécifiques pour autoriser la gestion des partages via les outils GUI
# net rpc rights grant 'MYDOMAIN\Domain Admins' SeDiskOperatorPrivilege -Uadministrator # net rpc rights list accounts -Uadministrator | grep Disk
- Quelques commandes en CLI
# bin/net ads group # bin/net ads user # bin/net ads user info # bin/net ads user info dufour # bin/net ads info
# samba-tool group listmembers "domain admins" # samba-tool group addmembers "domain admins" dufour # samba-tool group listmembers "domain admins"
- Ajout d’un partage
[home] path = /home read only = No [data] path = /data read only = No
# smbcontrol all reload-config
-> Gestion des droits via les outils GUI Windows -> Pour la gestion des 'home directory', voir ici : https://wiki.samba.org/index.php/Setting_up_a_home_share
- Gestion des ACL sur le système de fichier local
getfacl / setfacl
- NTP Signing (pour synchroniser les clients Windows avec le contrôleur de domaine)
See : http://blog.mycroes.nl/2013/03/setting-up-ntp-signing-ntpsignd-with.html
chown ntp:root /usr/local/samba/var/lib/ntp_signd vi /etc/ntp.conf add: ntpsigndsocket /usr/local/samba/var/lib/ntp_signd add: restrict default mssntp service ntpd restart -> ou ntpd -d (pour debug)
c:\w32tm /monitor
- Authentifier d’autres services avec l’AD
https://wiki.samba.org/index.php/Authenticating_other_services_against_AD
- Impression avec gestion centralisée des pilotes d’impression
# net rpc rights grant 'SEIA\Domain Admins' SePrintOperatorPrivilege -Uadministrator # cd /usr/local/samba/ # mkdir spooler # mkdir drivers # chmod 1777 spool # chmod 2755 drivers # cd drivers/ # BASEDIR=/usr/local/samba/print/drivers # for i in COLOR IA64 W32ALPHA W32MIPS W32PPC W32X86/{2,3} WIN40 x64; do mkdir -p $BASEDIR/$i; done
# vi smb.config [print$] path = /usr/local/samba/print/drivers comment = Printer Drivers read only = No writeable = yes [Dell 3100cn] path = /usr/local/samba/print/spool comment = Dell 3100cn Printer browseable = yes printable = yes printer name = Dell-3100cn OR [printers] <- like [homes] : gen auto path = /usr/local/samba/print/spool browseable = yes printable = yes
permission on print$ Creator Owner: Full control (Subfolders and files only) Authenticated Users: Read & execute, List folder contents, Read (This folder, subfolders and files) System: Full control (This folder, subfolders and files) Domain Admins: Full control (This folder, subfolders and files)
# smbcontrol all reload-config
- Copie des pilotes vers le serveur pour l’impression Point-n-Print et association de l’imprimante au pilote.
http://wiki.samba.org/index.php/Configuring_Point_n_Click_Automatic_Printer_Driver_Deployment
Check : # rpcclient wks -U administrator -c "enumdrivers"
- Niveau fonctionnel du domaine et de la foret AD
By default as of Samba 4.1.x default is 2003 -> Switch to 2008R2 # samba-tool domain level raise --domain-level=2008_R2 # samba-tool domain level raise --forest-level=2008_R2 # samba-tool domain level show