CentOS 6 – Controleur de domaine – Samba4

!! Article en cours de rédaction !!

hostname : monserveur
Realm et DNS domain name : ad.mondomaine.fr
NT4 domain name : ad
IP : 192.168.1.7
Rôle serveur : DC

 

Sur le serveur

———————————————————————————————————————–

Désactiver le firewall et SELinux

[root@ ~]# /etc/rc.d/init.d/iptables stop
iptables: Flushing firewall rules:
[ OK ]
iptables: Setting chains to policy ACCEPT: filter
[ OK ]
iptables: Unloading iptables modules:
[ OK ]
[root@ ~]#chkconfig iptables off
[root@ ~]#chkconfig ip6tables off

[root@ ~]#vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#enforcing – SELinux security policy is enforced.
#permissive – SELinux prints warnings instead of enforcing.
#disabled – SELinux is fully disabled.
SELINUX=disabled # change
#SELINUXTYPE= type of policy in use. Possible values are:
#targeted – Only targeted network daemons are protected.
#strict – Full SELinux protection.
SELINUXTYPE=targeted
———————————————————————————————————————–

Préparer une configuration réseau propre

Vérifier le nom FQDN de la machine :
[root@ ~]# setup
Configuration du réseau / DNS / nom d’hôte
srvads.mondomaine.local

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.local srvads

puis :
[root@ ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:50:43:00:3B:AE
ONBOOT= yes # change
# add lines as follows
BOOTPROTO=none
# this server’s IP address
IPADDR=10.0.0.30
# subnet mask
NETMASK=255.255.255.0
TYPE=Ethernet
# default gateway
GATEWAY=10.0.0.1
# DNS server’s IP address
DNS1=10.0.0.10
IPV6INIT=no
USERCTL=no
[root@ ~]# /etc/rc.d/init.d/network restart
Shutting down interface eth0:
[ OK ]
Shutting down loopback interface:
[ OK ]
Bringing up loopback interface:
[ OK ]
Bringing up interface eth0:
[ OK ]
[root@ ~]#chkconfig network on

Disable IPv6 if you don’t need it.
[root@ ~]#vi /etc/sysctl.conf
# add at the last
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# reload
[root@ ~]#sysctl -p

—————————————————————————————————————————-

Installer le serveur DHCP

[root@ ~]# yum -y install dhcp
[root@ ~]# vi /etc/dhcp/dhcpd.conf

# create new
# specify domain name
option domain-name "server.world";
# specify DNS's hostname or IP address
option domain-name-servers dlp.server.world;
# default lease time
default-lease-time 600;
# max lease time
max-lease-time 7200;
# this DHCP server to be declared valid
authoritative;
# specify network address and subnet mask
subnet 10.0.0.0 netmask 255.255.255.0 {
# specify the range of lease IP address
range dynamic-bootp 10.0.0.200 10.0.0.254;
# specify broadcast address
option broadcast-address 10.0.0.255;
# specify default gateway
option routers 10.0.0.1;
}
[root@ ~]# /etc/rc.d/init.d/dhcpd start
Starting dhcpd: [ OK ]
[root@ ~]# chkconfig dhcpd on

—————————————————————————————————————————-
Pré-requis à l’installation de Samba :

 

Ces paquets sont requis pour compiler / installer samba 4 :

Python — A good portion of Samba is written using python, including the build system itself (waf).

Librairies et programmes optionnels mais recommandés :


# yum install gcc libacl-devel libblkid-devel gnutls-devel \
readline-devel python-devel gdb pkgconfig krb5-workstation \
zlib-devel setroubleshoot-server libaio-devel \
setroubleshoot-plugins policycoreutils-python \
libsemanage-python setools-libs-python setools-libs \
popt-devel libpcap-devel sqlite-devel libidn-devel \
libxml2-devel libacl-devel libsepol-devel libattr-devel \
keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils \
docbook-style-xsl openldap-devel pam-devel

File System Support

Pour utiliser les fonctions avancées de Samba4, vous devez utiliser un système de fichier qui support les « user » et « system » xattr namespaces.

Il est nécessaire de configurer les système de fichiers utilisé par samba. Pour la plus part des utilisateurs, ce sera le volume /home.
Mais les commandes ‘samba-tool’ de provisionning vont également tester le support en créant un répertoire temporaire dans ‘sysvol’.
Ce peut être dans le volume /usr/local/samba pour une installation locale, ou peut être ailleurs. Ce système de fichier doit également supporter ACL et XATTR.

Système de fichier ext3/ext4

Si vous utilisez ext3 ou ext4, il faut ajouter les options « user_xattr », »acl » et « barrier=1 » dans le fichier /etc/fstab. Par exemple:

/dev/hda3 /home ext3 user_xattr,acl,barrier=1 1 1

Il suffit de changer ext3 par ext4 si vous l’utilisez. Normalement, vous modifierez simplement la ou les lignes existantes pour jouter ces options.
Attention, en modifiant le fichier fstab, le système peut ne plus booter si vous modifier la mauvaise ligne.

L’option « barrier=1 » permet de s’assurer que les transactions tdb sont protégé en cas de coupure de courant. Un grand nombre de sites ont corrompu leur base AD dans sam.ldb en n’ayant pas activé cette option.

 

Tester le système de fichier :

Pour tester le système de fichier, installez le paquet ‘attr’ et lancez les quatre commande suivante en tant que root:

# touch test.txt
# setfattr -n user.test -v test test.txt
# setfattr -n security.test -v test2 test.txt
# getfattr -d test.txt
# getfattr -n security.test -d test.txt

Vous devriez voir les résultats suivants :

# file: test.txt
user.test= »test »

# file: test.txt
security.test= »test2″

Pour tester l’ACL lancez les commandes suivantes en tant que root:

# touch test3.txt
# setfacl -m g:adm:rwx test3.txt
# getfacl test3.txt

et vous devriez voir une ligne telle que group:adm:rwx .

Si vous avez l’erreur « Operation not supported », votre noyau n’est pas configuré correctement ou votre système de fichier n’est pas monté avec les bonnes options.

Si vous avez l’erreur « Operation not permitted », vous n’avez probablement pas lancé les commandes en tant que root.

Si vous utilisez l’option posix:eadb, vous n’avez pas besoin de tester votre système de fichier de cette manière.

Installation

Téléchargement :

via git:
$ git clone -b v4-1-stable git://git.samba.org/samba.git samba-v4-1-stable

Compilation:

Pour compiler Samba, lancer les commandes suivantes dans le répertoire samba-v4-:

$ cd samba-v4-
$ ./configure
$ make

Les commandes ci-dessus vont installer Samba dans le répertoire /usr/local/samba.

Pour changer de répertoire, il faut utiliser l’option –prefix .

Les options –enable-debug –enable-selftest pour la commande ./configure sont recommandé mais optionnelles. Elles vont ajouter des informations de débogage supplémentaire utiles en cas de problèmes et vont également permet re de lancer la commande d’autotest ‘make’ pour valider la configuration de la machine.

Install Samba

Pour installer Samba, lancer la commande suivante avec les droit root dans le répertoire samba-v4-x :

$ make install

—————————————————————————————————————————-

Créer le nouveau domaine (Provisioning)

L’approvisionnement va créer la base de données lors de la création du domaine par le premier contrôleur de domaine Samba.

L’étape d’approvisionnement doit être lancé avec un utilisateur qui a la permission d’écrire dans les répertoire d’installation

Lancer la commande suivante :

# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive

L’outil d’approvisionnement va se lancer de manière interactive.
Certaines options ne peuvent pas être configuré interactivement.Il est recommandé de lancer la commande samba-tool domain provision –help pour voir les autres options possibles .

L’option –use-rfc2307 va permettre à AD Samba d’enregistrer automatiquement les attribut posix. Cela va également créer les informations NIS information dans l’AD, ce qui nous permettra de gérer la configuration des UIDs/GIDs et autre options Unix. il est plus facile d’activer cette option maintenant et même si vous ne l’utilisez pas (encore), cela n’a pas d’impact sur l’installation.

Notes importantes:

Avec Samba 4.x, l’approvisionnement utilise le serveur DNS interne par défaut. Pour utiliser Bind comme DNS backend, ajoutez –dns-backend=BIND9_DLZ à la commande d’approvisionnement. Vous pouvez changer le serveur DNS à tous moments.

Si vous devez relancer l’approvisionnement, vous devez supprimer le fichier /usr/local/samba/etc/smb.conf! Vous devriez également supprimer les fichier de la base de données rm -rf /usr/local/samba/private/*

Le mot de passe admin doit respecter la complexité requise. C’est à dire, au moins une majuscule, un chiffre et huit caractères de long. Si vous n’utilisez pas un mot de passe fort, le script va s’arrêter avec un erreur et il faudra recommencer avec un meilleur mot de passe (supprimez /usr/local/samba/private/ and /usr/local/samba/etc/).

Si votre site web est modomaine.fr, le domaine de votre AD devrait être un sous-domaine par exemple : ad.mondomaine.fr (ou corp.mondomaine.fr).
—————————————————————————————————————————-

Démarrer Samba AD DC

# /usr/local/samba/sbin/samba

Script de démarrages :

le script à placer dans un nouveau fichier /et/rc.d/init.d/samba4

#!/bin/bash
#
# samba4 This shell script takes care of starting and stopping
# samba4 daemons.
#
# chkconfig: - 58 74
# description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.

### BEGIN INIT INFO
# Provides: samba4
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop samba4
# Description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

prog=samba
prog_dir=/usr/local/samba/sbin/
lockfile=/var/lock/subsys/$prog

start() {
[ « $NETWORKING » = « no » ] && exit 1
# [ -x /usr/sbin/ntpd ] || exit 5

# Start daemons.
echo -n $ »Starting samba4:  »
daemon $prog_dir/$prog -D
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}

stop() {
[ « $EUID » != « 0 » ] && exit 4
echo -n $ »Shutting down samba4:  »
killproc $prog_dir/$prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
return $RETVAL
}

# See how we were called.
case « $1 » in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
stop
start
;;
reload)
echo « Not implemented yet. »
exit 3
;;
*)
echo $ »Usage: $0 {start|stop|status|restart|reload} »
exit 2
esac

puis :

chmod 755 /etc/rc.d/init.d/samba4
chown root:root /etc/rc.d/init.d/samba4
chkconfig --add samba4
service samba4 start
chkconfig samba4 on

service samba4 restart
service samba4 stop

—————————————————————————————————————————-

Test de connections avec Samba AD DC

Premièrement vérifiez que vous avez la bonne version de smbclient qui tourne:

$ /usr/local/samba/bin/smbclient --version

La version devrait commencer par « Version 4.x ».

Maintenant lancer cette commande pour lister les partages sur le serveur Samba:

$ /usr/local/samba/bin/smbclient -L localhost -U%

Sharename Type Comment
——— —- ——-
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.x.y)

L’affichage devrait être similaire. Les partages netlogon et sysvol sont nécessaires pour le bon fonctionnement du serveur Active Directory serveur et sont créé par défaut dans le fichier smb.conf pendant l’approvisionnement.

Si la commande donne une erreur, relancez samba:

# killall samba
# /usr/local/samba/sbin/samba

Pour vérifier que l’authentification fonctionne, essayer de vous connecter au partage netlogon, en utilisant le compte adminstrateur créer lors de l’approvisionnement. L’affichage de la commande devrait être similaire à celle-ci:

$ smbclient //localhost/netlogon -UAdministrator -c 'ls'

Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y]
. D 0 Tue Dec 11 20:00:00 2012
.. D 0 Tue Dec 11 20:00:00 2012

—————————————————————————————————————————-

Configurer le DNS

Un DNS qui fonctionne est essentiel au bon fonctionnement de Samba et de l’AD. Sans les bonnes entrées DNS, Kerberos ne fonctionnera pas, ce qui implique que nombre de fonctionnalité de bases ne seront pas disponible
Il vaut mieux passer un peu de temps maintenant pour s’assurer que le configuration DNS est correcte. Débugger les problèmes par la suite dû a une mauvaise configuration du DNS peut prendre beaucoup de temps.
Pour gérer les entrées DNS, vous pouvez utiliser le DNS MMC sur une machine Windows ou samba-tool sur Linux.

Samba Internal DNS Server

Par défaut Samba utilise sont propre serveur DNS interne et aucune autre configuration n’est nécessaire.

Si vous voulez que le serveur DNS renvoi les requêtes dont il n’est pas responsable, ajoutez la ligne suivante :

dns forwarder = {IP-Address of the DNS you want to forward to}

dans le fichier /usr/local/samba/etc/smb.conf et relancez Samba.

Pour que le serveur DNS interne démarre, les ports 53 udp/tcp doivent être disponible et non pas utilisé par une autre application (telle qu’un autre serveur DNS , Dnsmasq, etc.).
Vous verrez cette erreur dans le fichier de log samba , si Samba ne peut pas s’approprier le port 53:

Failed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED

Pour savoir quel programme écoute le port 53, lacez la commande suivante en tant que root

# netstat -tunpe | grep ":53"

Configure /etc/resolv.conf

Pour que la résolution DNS locale fonctionne correctement, il faut modifier la configuration DNS à l’aide l’outil setup
ou

Exemple:

domain ad.mondomaine.fr
nameserver 192.168.1.7

Tester le DNS

Pour verifier que le DNS fonctionne correctment, lancez les commandes suivantes et comparez les réponses:

$ host -t SRV _ldap._tcp.samdom.example.com.
_ldap._tcp.samdom.example.com has SRV record 0 100 389 samba.samdom.example.com.

$ host -t SRV _kerberos._udp.samdom.example.com.
_kerberos._udp.samdom.example.com has SRV record 0 100 88 samba.samdom.example.com.

$ host -t A samba.samdom.example.com.
samba.samdom.example.com has address 192.168.1.2

Vérifier que les forwarders DNS ont bien été configurés dans le fichier /usr/local/samba/etc/smb.conf
[global]
workgroup = MONDOMAINE
realm = MONDOMAINE.LOCAL
netbios name = MONSERVEUR
server role = active directory domain controller
dns forwarder = 8.8.8.8

Le dns forwarder peut être ceux de Google 8.8.4.4 8.8.8.8 ou ceux d’OPENDNS 208.67.222.222 208.67.220.220 ou simplement ceux de votre FAI en utilisant l’IP du routeur
—————————————————————————————————————————-

Configure Kerberos

la configuration de Kerberos s’effectue à travers le fichier krb5.conf.
Ce fichier est situé dansle répertoire /etc/
Le fichier exemple créé pendant l’approvisionnement (/usr/local/samba/private/krb5.conf) peut être utilisé pour remplacer le fichier existant. Son contenu est le suivant :

[libdefaults]
default_realm = AD.MONDOMAINE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true

Note: Si vous avez oublié le nom de votre royaume (realm), lancez la commande ‘samba-tool testparm –suppress-prompt | grep realm’, pour le retrouver.

Tester Kerberos

Le test le plus simple à utiliser est la commande kinit :

$ kinit administrator@AD.MONDOMAINE.FR

Note: Vous devez spécifier votre royaume en lettre capitale!

Pour vérifier que Kerberos fonctionne, et que vous recevez un ticket, lancez:

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@AD.MONDOMAINE.FR

Valid starting Expires Service principal
02/10/13 19:39:48 02/11/13 19:39:46 krbtgt/AD.MONDOMAINE.FR@AD.MONDOMAINE.FR
—————————————————————————————————————————-

Configuration de NTP (Optional, but highly recommended)

Active Directory nécessite une bonne synchronisation du temps entre les clients et le contrôleur de domaine.

Pour cela, il faut configurer NTP sur le controleur de domaine afin qu’il soit serveur de temps :
Il faut une version récente de ntp (=>4.2.6) qui supporte les signatures.

Changez les permission du répertoire ntp_signd (par défaut /usr/local/samba/var/lib/ntp_signd/) pour 0750 et le propriétaire pour root:ntp afin qu’il soit lisible par ntpd.

chmod 750 /usr/local/samba/var/lib/ntp_signd/
chown root:ntp /usr/local/samba/var/lib/ntp_signd/

Ajoutez/modifiez simplement les lignes suivantes dans le fichier /etc/ntp.conf pour une configuration minimale:

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default mssntp

Voici une configuration plus complète :

driftfile /var/lib/ntp/drift

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery mssntp
restrict -6 default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst

includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

 

Il n’y a rien de particulier à configurer sur les clients windows. Il recevront les correctifs de temps par le PDC (Ne fonctionne pas avec Win2k)
Ntp dot être installé sur les client Linux. Dans le fichier ntp.conf du client, ajoutez simplement « server 192.168.L’IPDuServeurDeTemps » au dessus des autres entrées server.

—————————————————————————————————————————-

Client Windows

Vous pouvez ajouter une machine Windows dans le domaine avec l’utilisateur ad/administrator

Installer les outils d’administrations de serveur sur la machine client :

Windows Vista/7/8

Téléchargez la console d’administration (RSAT) from:
http://www.microsoft.com/downloads/details.aspx?FamilyId=9FF6E897-23CE-4A36-B7FC-D52065DE9960&displaylang=en (Vista)
http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&displaylang=en (Windows 7)
http://www.microsoft.com/download/details.aspx?id=28972 (Windows 8)
http://www.microsoft.com/en-us/download/details.aspx?id=39296 (Windows 8.1)

Note: Après l’installation, vous devez activer les fonctions dans « activer ou désactiver des fonctionnalité Windows » dans « programme » du panneau de contrôle.

—————————————————————————————————————————-

Créer et configurer le partage de fichier

Pour configurer les permissions de partages, vous avez besoin du compte avec le privilège « SeDiskOperatorPrivilege ». Pour donner ce privilège au group « Domain Admin » (par exemple, mais c’est un bon exemple), lancez la commande suivante sur le serveur :

# net rpc rights grant 'SAMDOM\Domain Admins' SeDiskOperatorPrivilege -Uadministrator

Les privilèges d’un utilisateurs peuvent être listé par :

# net rpc rights list accounts -Uadministrator

Ajouter un nouveau partage :

Créer un répertoire à partager

# mkdir -p /srv/samba/Demo/

Ajoutez ce répertoire au fichier /usr/local/samba/etc/smb.conf:

[Demo]
path = /srv/samba/Demo/
read only = no

Rechargez Samba:

# smbcontrol all reload-config

Configurer les permissions dur les partages :

Loguez-vous sur une machine windows (dans le domaine) avec un compte administrateur du domaine

Ouvrez le menu start et recherchez « Gestion de l’ordinateur »
Dans la barre de menu, cliquez sur action / « se connecter à un autre ordinateur »
Entrez le nom du serveur samba
Allez dans « Outils systèmes », « dossiers partagés », « partages » et cliquez sur le partage ajouté.

Faites un clique droit et choisissez Propriétés
Cliquez sur l’onglet « Autorisation du partage »
Vous pouvez ajouter / retirer les groupes et utilisateurs et leurs donner les permissions adéquates.
Cliquez sur l’onglet « sécurité » et configurez les permission du système de fichier.
Sauvegardez les modifications avec « OK ».
—————————————————————————————————————————-

Mettre en place des profils itinérant avec Samba

Partage des profils sur le serveur Samba 4.x

Créer un répertoire sur le serveur pour les profils itinérants

# mkdir -p /srv/samba/Profiles/

Ajouter un nouveau partage au fichier smb.conf:

[Profiles]
path = /srv/samba/Profiles/
read only = no

Recharger la configuration de samba :

# smbcontrol all reload-config

Se loguer sur une machine Windows en tant qu’admin dedomain et aller sur « \\Servername ».
Vous verrez le nouveau partage.

Faites un clique droit sur le partage et choisissez « Propriétés ». allez sur l’onglet « Securité ».
Cliquez sur « Avancé » et sur le bouton « Changer les permissions ».

Configurez les permissions comme suit

Name Permissions Apply to
Administrator Full control This folder, subfolders and files
Domain Users Traverse folder/execute file, List folder/read data, Create folder/append data This folder only
CREATOR OWNER Full control Subfolders and files only

Sauvegardez les modification en cliquant sur « OK ».

—————————————————————————————————————————-

Configurer la redirection de répertoire
Dans un environnement AD

Pour garder ce guide simple, nous allons configurer les stratégies dans « Default Domain Policy ». Vous pouvez bien sûr adapter à vos besoins.

Ouvrez la console de gestion de stratégie de groupe.
Allez dans « Forest: votre.domaine » / « Domain » / « votre.domaine »
Faites un clique droit sur « Default Domain Policy“ et choisissez « Modifier » pour ouvrir l’éditeur de gestion de stratégie de groupe.
Allez sur « Configuration utilisateur » / « Stratégie » / « Paramètres Windows » / « Redirection de dossiers », faites un clique droit sur « Documents » et choisissez « Propriétés ».

Redirigez le dossier en fonction de vos besoins et ajustez les valeur de l’onglet « Paramètres »
Par exemple :
« De base – Rediriger les dossiers de tout le monde vers le même emplacement »
« Rediriger vers l’emplacement du profil utilisateur local »
L’emplacement sera configuré dans le profil de l’utilisateur

Décochez « Accorder à l’utilisateur des droits exclusifs sur ». Ce paramètre est activé par défaut. Ce paramètre spécifie que l’administrateur et les autres utilisateurs n’ont pas de droits d’accès à ce dossier.
Décochez « Déplacer le contenu de [NomDossier] vers le nouvel emplacement ». Cette option déplace toutes les données stockées par l’utilisateur dans le dossier local vers le dossier partagé sur le réseau.
Cochez « Appliquer aussi la stratégie de redirection aux systèmes d’exploitation Windows 2000, Windows 2000 Server, Windows XP et Windows Server 2003 ». Ceci permet à la redirection de dossiers de fonctionner avec Windows 7 et Windows Vista, et avec les systèmes d’exploitation Windows antérieurs. Cette option s’applique seulement aux dossiers qui peuvent être redirigés dans les systèmes d’exploitation Windows antérieurs, qui sont les dossiers Application Data, Bureau, Mes documents, Mes images et Menu Démarrer.
Cochez « Conserver le dossier dans le nouvel emplacement lorsque la stratégie est supprimée »

Vous pouvez rediriger d’autre dossiers

Sauvegardez les changements en fermant l’éditeur de gestion de stratégie de groupe.
—————————————————————————————————————————-

Configurer les profiles itinérant pour un utilisateur

Dans un environnement AD, vous pouvez configurer les profiles itinérant individuellement.

Ouvrez « Utilisateurs et Ordinateurs Active Directory ».

Faites un clique droit sur un compte utilisateur et choisissez « Propriétés »
Allez sur l’onglet « Profile » et indiquez dans le chemin du profil utilisateur :

\\serveur\profiles\%USERNAME%

Avec la variable %USERNAME%, vous pouvez configurer le chemein de profils de plusieurs utilisateur à la fois.

Windows Vista (et les version suivantes) créé un répertoire .V2 pour leur profiles.

—————————————————————————————————————————-

Dépanner les profiles itinérants

Sous Windows 7, la base de registre contiens les informations sur chaque profiles itinérant d’utilisateurs, et si l’infrastructure de Samba change, Windows peut ne pas retrouver les profiles utilisateurs. La liste des profiles utilisateurs sont situé dans :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList

En supprimant une entrée, cela force Windows à rechercher le profil sur le contrôleur de domaine et à restaure le profile.
—————————————————————————————————————————-

Configurer le répertoire Home itinérant

Ajouter le partage

Ajouter le partage au fichier smb.conf

[home]
path = /srv/samba/home/
read only = No

Ne pas appeler le partage « [homes] », c’est une section spéciales du fichier (Voir la page man smb.conf)!

Créer le dossier qui contiendra les dossiers Home. Nous verrons les permissions par la suite

# mkdir /srv/samba/home/

Recharger Samba

# smbcontrol all reload-config

Configuration du partage et des permissions

Les étapes suivante peuvent être faites à partir d’une machine Windows.

Note: S’il est nécessaire que les utilisateur accède à leur répertoire home localement sur le serveur, vous devez ajouter un groupe qui contient ces comptes utilisateurs. Ajouter ce groupe dans toutes les étapes qui vont suivre et ajuster les droits exactement comme pour « Utilisateurs authentifiés ». Bien entendu, ce groupe doit être validé localement par l’intermèdiare de Winbindd, sssd, nslcd, or autre. Ceci est nécessaire parce que si un utilisateur se logue localement sur le serveur, il n’y a pas d' »utilisateur authentifié »!

Loguez-vous sur une machine Windows avec un profile membre d’un compte ayant le privilège « SeDiskOperatorPrivilege ».

Ouvrez la console « Gestion de l’ordinateur ».

Dans la barre de menu, cliquez sur « Action » / « Se connecter à un autre ordinateur ».

Tapez le nom de votre serveur Samba.

Allez dans « Outils systèmes » / « répertoires partagés » / « Partages » et sélectionnez le partage nouvellement créé.

Faites un clique droit sur le partage et sélectionnez « Propriétés ».

Allez sur l’onglet « permission du partages ».

Changez les permissions pour :

Authenticated Users: Full Control
Domain Admins: Full Control
System: Full Control

Allez sur l’onglet « sécurité ».

Cliquez sur le bouton « avancés » et dans la nouvelle fenêtre, cliquez sur « Changer les permissions ».
Dans la fenêtre suivante, décochez l’option « Inclure les permissions héritées des parents ». Fermer les fenêtre à l’aide du bouton « OK » jusqau’à retourtner dans l’onglet « Sécurité »

Cliquez sur le bouton « Édition » pour modifier les ACL comme suit:

Administrator: Full Control
Authenticated Users: Read & Execute, List Folder Contents, Read
Creator Owner: Full Control
Domain Admins: Full Control
System: Full Control

Les permissions de l’utilisateur « Créateur propriétaire » sont automatiquement limité à  » sous-répertoire et fichier seulement ». Ceci est normal.

Fermez la fenêtre d’édition avec « OK » et retournez dans l’onglet « Sécurité »

Pour que le groupe « Utilisateur authentifiés » n’accèdent pas au dossier home des autres utilisateurs, cliquez sur le bouton « Avancée » à nouveau puis sur »Changer les permissions ».
Selectionnez « Utilisateurs authentifiés » dans la liste et cliquez sur « édition » et changez la valeur de « Appliqué à  » pour « Ce répertoire seulement ».

Fermez toutes les fenêtres avec « OK » pour sauvegarder les changements

Définir le répertoire Home dans le compte utilisateur

Le compte utilisé pour la création de compte doit avoir les droits dans l’AD et sur le répertoire partagé Home. (Par exemple, le compte « domain Admin »).

Ouvrez « Utilisateurs et Ordinateurs Active Directory ».
Allez dans les propriétés d’un compte existant (ou créez-en un avant)

Si vous devez assigner un UID dans les « attributs Unix », faites le maintenant et sauvegarder le changement. Ainsi, les ACL de l’utilisateur inclurons cet UID.
Allez dans l’onglet « Profile ». Choisissez un lecteur réseau sur lequel le dossier home sera monté. et marquez dans le champs « vers » le chemin du dossier home de l’utilisateur.
Vous pouvez utiliser la variable « %USERNAME% » a la place des nom individuel. Ce qui permet de modifier plusieurs compte en même temps.

Fermez la fenêtre des propriétés de l’utilisateur pour sauvegarder les modifications.
Le dossier Home de l’utilisateur est automatiquement créé.

Valider les résultats
Sous Windows

Si vous vérifiez les ACLs sur le répertoire sous Windows, vous pouvez voir :

Seul les utilisateurs défini ont des droits. Le groupe « Utilisateur authentifié » n’est pas inclus et ne peut pas accéder aux répertoire home des utilisateurs.

Sous *nix

Du coté de *nix, il faut vérifier tout les ACL avec getfacl, pour voir les ACL étendus.

Voici la sortie de getfacl sur le répertoire de l’exemple Windows ci-dessus:

# getfacl /srv/samba/home/utilisateur1

# file: srv/samba/home/demo1
# owner: 3000000
# group: Domain\040Users
user::rwx
user:Administrator:rwx
user:demo1:rwx group::—
group:Domain\040Users:—
group:3000000:rwx
group:3000002:rwx
group:3000008:rwx
mask::rwx
other::—
default:user::rwx
default:user:Administrator:rwx
default:user:demo1:rwx default:user:3000000:rwx
default:group::—
default:group:Domain\040Users:—
default:group:3000000:rwx
default:group:3000002:rwx
default:group:3000008:rwx
default:mask::rwx
default:other::—

Comme certaine xIDs ne sont peut-être pas résolu, vous pouvez les rechercher dans la base samba locale ID mapping. Exemple:

# ldbsearch -H /usr/local/samba/private/idmap.ldb xidNumber=3000000 dn
# record 1
dn: CN=S-1-5-32-544

# returned 1 records
# 1 entries
# 0 referrals

Les assignations xidNumber sont propre à chaque machines, il n’y a donc pas de table d’association générale. Mais la commande ldbsearcch montre, que l’entrée avec le xidNumber 3000000 est associée au DN « S-1-5-32-544 ». Une liste des Identifiant de sécurité connues est fourni par Microsoft: http://support.microsoft.com/kb/243330/en

—————————————————————————————————————————-

Connecting to AD via Kerberos

The following basic example of an nslcd.conf let nslcd retrieve it’s information by using Kerberos. The connection will be encrypted.

Create a new user account in your AD. Make sure, that you configure this account with the „Password never expires“ option! It’s recommented also to set „User cannot change password“. If the machine is joined to the domain, you can skip this step and use the machine account instead, if you want. The following example uses the domain account „ldap-connect“.

Add a SPN (service principal name) to the account you’ve created. On your Samba host this can be done by the following command (replace „dc1.samdom.example.com“ with the name of the host you’ll run nslcd on):

# samba-tool spn add nslcd/dc1.samdom.example.com ldap-connect

Extract the keytab for this account and make sure, it is readable only for the user nslcd runs under:

# samba-tool domain exportkeytab /etc/krb5.nslcd.keytab –principal=ldap-connect
# chown nslcd:root /etc/krb5.nslcd.keytab
# chmod 600 /etc/krb5.nslcd.keytab

As Kerberos tickets have to be renewed before they expire, you have to take care of this job. k5start is a usefull tool for that. The following command starts k5start in background mode. The above created keytab is used and the owner of the the cache file will be the local account, nslcd uses to run (parameter „uid“ in nslcd.conf):

# k5start -f /etc/krb5.nslcd.keytab -U -o nslcd -K 360 -b -k /tmp/nslcd.tkt

Remember to start k5start on system startup. Otherwise the ticket won’t be renewed after reboot!

Use the following content in your /etc/nslcd.conf:

# User/group with which the daemon should run (must be a local account!)
uid nslcd
gid ldap

# LDAP/AD server settings
uri ldap://127.0.0.1:389
base dc=SAMDOM,dc=example,dc=com

# Some settings for AD
pagesize 1000
referrals off

# Filters (only required if your accounts doesn’t have objectClass=posixAccount
# and your groups haven’t objectClass=posixGroup. This objectClasses won’t be added
# by ADUC. So they won’t be there automatically!)
filter passwd (objectClass=user)
filter group (objectClass=group)

# Attribut mappings (depending on your nslcd version, some might not be
# necessary or can cause errors and can/must be removed)
map passwd uid sAMAccountName
map passwd homeDirectory unixHomeDirectory
map passwd gecos displayName
map passwd gidNumber primaryGroupID
map group uniqueMember member

# Kerberos
sasl_mech GSSAPI
sasl_realm SAMDOM.EXAMPLE.COM
krb5_ccname /tmp/nslcd.tkt

Append ldap to the passwd and group entry of your /etc/nsswitch.conf, to let the system query LDAP for these databases.

passwd: files ldap
group: files ldap

Start the nslcd daemon.

All domain accounts/groups are now available to the local system.

Testing

Test 1: Retrieving accounts via getent. This should show local and domain accounts with posix attributes. Please check that all fields contain the values set in AD (UID, primaryGroup, homeDirectory, shell).

# getent passwd

Administrator:*:10000:10513:Administrator:/home/Administrator:/bin/bash
demo1:*:10008:10513:demo1:/home/demo1:/bin/bash

Test 2: Retrieving groups via getent. This should show local and domain groups with posix attributes. Please check that the output contains all fields set in AD (GID, members).

# getent group

Domain Users:*:10513:
demo-group:*:10015:demo1

Test 3: Change owner/group of of a file to a domain user/group:

# touch /tmp/testfile
# chown Administrator: »Domain Users » /tmp/testfile
# ls -l /tmp/testfile
-rw-r–r– 1 Administrator Domain Users 0 26. Aug 22:35 /tmp/testfile

—————————————————————————————————————————-
Authentication against AD

Example where you need this: You want to authenticate users against AD.

1. This requires, that you have successfully configured Nslcd with to AD to get the user information to the system..

2. Edit your « /etc/pam_ldap.conf » the following way:

base {your Domain DN}
binddn cn=nslcd-connect,cn=Users,{your Domain DN}
bindpw {password}
bind_policy soft
pam_login_attribute sAMAccountName
uri ldap://{openLDAP-Proxy-Hostname/IP}:389/
ssl no

—————————————————————————————————————————-

https://wiki.samba.org/index.php/Samba
http://dev.tranquil.it/index.php/SAMBA_-_Installation_d’un_AD_Samba4_pour_un_nouveau_domaine
http://www.linuxgfx.co.uk/karoshi/documentation/wiki/index.php?title=Samba4_Testing
http://ordiwiki.com/index.php/Samba4
http://zachbethel.wordpress.com/2013/04/10/linux-ldap-authentication-with-samba4/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*