!! 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/