Vous êtes sur la page 1sur 29

Sommaire

Alternative : Samba / Unix......................................................................................2


• Pourquoi Samba/Unix.......................................................................................2
• Autres solutions d’interopérabilité...................................................................2
Pourquoi OpenLDAP...............................................................................................3
Pourquoi Postfix......................................................................................................4
Installation Debian.................................................................................................5
Procedure............................................................................................................5
DHCP:..................................................................................................................5
DNS:....................................................................................................................6
Installation du serveur OpenLDAP.......................................................................8
Installation du serveur OpenLDAP

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


I. Alternative : Samba / Unix

• Pourquoi Samba/Unix
– Besoin d’interopérabilité Unix - PC
– Faible coût (pas de licence par poste client)
– Refus du « tout Microsoft »

• Autres solutions d’interopérabilité


– concurrents de Samba
• VisionFs, TotalNet, LanManager / Unix: SCO, Solaris, HPUX...
– clients Windows d’un serveur NFS
• Sun Solstice Network Client, PC-NFS ...
– serveur NFS sur Windows NT et passerelle
• HummingBird NFS Server, ...
Payantes
Modification du poste client ou du serveur NT

Samba – fonctions

Source: http://samba.anu.edu.au/samba/samba.html

Licence GNU GPL, Y2K compliant


• fonctionnalités de Samba
– simule un serveur LanMan en modes share & user-level
– simule un client LanMan
– fonctions d’authentification
– fonctions de transfert de fichiers
– fonctions d’impression
– fonction serveur WINS
– fonction Maître Explorateur du domaine
– actuellement pas d’intégration dans un domaine NT
pas de partage de comptes avec les postes NT du domaine
obligation de créer des comptes équivalents sur chaque station NT

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


II. Pourquoi OpenLDAP

OpenLDAP est un serveur d’annuaire LDAP Open Source et issu des


implémentations du protocole par l’Université de Michigan. Il est
développé selon les termes de la licence GNU GPL, ce qui signifie qu’il est
entièrement gratuit et que son code source est accessible et modifiable.

Ce serveur LDAP Open Source a l’avantage d’être gratuit et peut être


installé sur tout type de plate-forme, y compris Windows et les principaux
Unix, dont Linux bien sûr.

Second argument en faveur d’OpenLDAP : son code source est accessible


et il est tout à fait possible de faire évoluer le serveur d’annuaire en
fonction des besoins de l’entreprise. On trouve par exemple des
extensions permettant d’intégrer OpenLDAP avec Kerberos, Radius, et tout
autre mécanisme d’authentification. Des développeurs maîtrisant le
langage C et le code d’OpenLDAP peuvent également réaliser leurs
propres extensions de l’annuaire.

Le troisième atout d’OpenLDAP est sa disponibilité sur toutes les plates-


formes. Dans le cas d’une entreprise qui ne peut exploiter simultanément
plusieurs systèmes (Windows, Linux, Solaris, HP, etc.), ou qui souhaite
réduire les formations et l’expertise requise par ses administrateurs, le
déploiement d’un seul serveur d’annuaire commun à toutes ces plates-
formes peut constituer un avantage indéniable.
S’il existe des produits du marché qui fonctionnent sur plusieurs plates-
formes (par exemple, Novell eDirectory), aucun de ces logiciels n’est
gratuit.

Et enfin, OpenLDAP est totalement intégré à Linux. Des serveurs


d’annuaires sont en effet intégrés dans la plupart des systèmes
d’exploitation, et il est alors possible de les utiliser pour ses propres
applications. Ainsi, la plupart des distributions Linux ont adopté OpenLDAP
comme annuaire de référence, et offre une version compilée et prête à
l’emploi de celui-ci. De plus, OpenLDAP peut être utilisé pour gérer les
utilisateurs du système d’exploitation, et partager ainsi un même
référentiel avec les applications fonctionnant sous Linux et livré avec le
système, comme Samba, NIS, etc.

Bien entendu, OpenLDAP a ses limites. Ce serveur n’a pas la richesse


fonctionnelle que l’on peut trouver dans un produit du marché : il lui
manque notamment une console d’administration intégrée, une gestion de
la réplication multi-maître évoluée à l’instar de celle des produits de

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


Microsoft, Novell et Sun, des fonctionnalités d’exploitation (monitoring,
suivi et optimisation des performances, etc.), et surtout une bonne
documentation.

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


III. Pourquoi Postfix
Le serveur de messagerie standard sur les systèmes Unix est le serveur
Sendmail. Sendmail a fait ses preuves. L'inconvénient est son mode de
configuration. Toutes les fonctions de messagerie sont réalisées par un
seul programme. Sa structure est dite monolithique et la configuration
(fichier sendmail.cf) en est d'autant plus compliquée. Ce phénomène
s'accroit avec l'amplification de l'utilisation du service de messagerie
(augmentation de fréquence/volume) et avec l'exposition aux tentatives
de piratage des serveurs de messagerie. Il existe d'autres serveurs de
messagerie sur Unix (QMail, Z-mailer...) tous présentent des inconvénients
au niveau utilisation de la bande passante, inter-opérabilté, respect des
RFC, facilité de configuration, sécurité...
L'objectif de postfix est d'apporter une solution à ces différents problèmes.
1. bénéficier de l'expérience de sendmail
2. facile à administrer : ce qui est facile à comprendre est plus facile à
sécuriser.
3. compatibilité sendmail maximale
Il assure également une compatibilité et le support :
1. des gestionnaires de liste (majordomo, sympa...)
2. des formats de boîte aux lettres (mh, mbox, qmail-dir, ...)
3. des agents d'acheminement local (procmail, deliver, cyrus...)
4. des configurations (UUCP, réécriture, mailertable, ...)
5. des utilisateurs (alias, .forward, ...)
6. des RFCs

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


I. Installation Debian

Procedure
Changer nom pc :

Gedit /etc/hostname

Configuration réseau :

Gedit /etc/network/interfaces une en dhcp l’autre en statique : renseigner


« adress », « netmask », « network », « broadcast », « gateway »

/etc/init.d/networking stop et apres start (ou ifup ethx ifdown ethx)

DHCP:
Apt-get install dhcp3-server

Demander au serveur DHCP de n’écouter que les requêtes en provenance de


l’interface réseau eth1 :

gedit /etc/default/dhcp3-server et renseigner interface « »

Gedit /etc/dhcp3/dhcpd.conf

Copier:

subnet 192.168.113.0 netmask 255.255.255.0 {


range 192.168.113.150 192.168.113.200;
option domain-name-servers 192.168.113.1;
option domain-name "ROSEA-PHOENIX.org";
option routers 192.168.113.1;
}

/etc/init.d/dhcp3-server restart

Vérifier le bon fonctionnement sur /var/log/daemon.log

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


DNS:
Apt-get install bind9

Dans /etc/bind/:

Gedit named.conf:

// option: include "/etc/bind/named.conf.options";

zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
zone "ROSEA-PHOENIX.org" {
type master;
file "/etc/bind/ROSEA-PHOENIX.org";
};
zone "113.168.192.in-addr.arpa" {
type master;
file "/etc/bind/reverse-ROSEA-PHOENIX.org";
};

// option: include "/etc/bind/named.conf.local";

Les zones ont été créées, pointant vers leur fichier d’info : rosea-phoenix.org et
reverse-…

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


Créer maintenant ces fichier : rosea-phoenix.org et reverse-rosea-phœnix et les
renseigner :

Gedit /etc/bind/rosea… : (zone : nom  ip)

$ttl 38400
ROSEA-PHOENIX.org. IN SOA ns.ROSEA-PHOENIX.org.
hostmaster.ROSEA-PHOENIX.org(
2009060820
10800
3600
604800
38400 )
NS ns.ROSEA-PHOENIX.org.
clientxp A 192.168.113.150
serveur A 192.168.113.1
ns.ROSEA-PHOENIX.org. A 192.168.113.1

gedit /etc/bind/rev-rosea… : (zone inverse : ip  nom)

$ttl 38400
@ IN SOA ns.ROSEA-PHOENIX.org. hostmaster.ROSEA-
PHOENIX.org(
2009060821
10800
3600
604800
38400 )
NS ns.ROSEA-PHOENIX.org.
1 PTR serveur.ROSEA-PHOENIX.org.
2 PTR clientxp.ROSEA-PHOENIX.org.

Redémarrer les services :

/etc/init.d/bind9 restart

/etc/init.d/dhcp3-server restart

Ensuite sur le serveur faire : dig @192.168.113.1 clientxp.ROSEA-PHOENIX.org

Ensuite sur le client faire un nslookup :

Renseigner le nom : clientxp ou serveur.

Voir le résultat

Aussi : ipconfig /renew : voir le resultat (dhcp + dns)

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


Installation du serveur OpenLDAP

Le paquet slapd contient la partie serveur d'openLDAP :


apt-get install slapd db4.2-util ldap-utils

Debconf nous pose plusieurs questions :


• Le nom du domaine : c'est celui de LDAP (Totalement différent du domaine
Samba):
Si vous mettez domaine.local vous aurez donc dc=domaine,dc=local (à retenir)
Car au nom FQDN: domaine.local correspondra le Workgroup: domaine.
Nom de votre organisation: représente la visibilité de l’annuaire.
Exemple avec domaine.local
Mot de passe de l'administrateur : C'est ce mot de passe que l’on utilisera pour
se connecter
Module de base de données à utiliser : BDB
Faut-il supprimer la base de données à la purge du paquet ? NON
Faut-il déplacer l'ancienne base de données ? NON
Faut-il autoriser le protocole LDAPv2 ? NON

Schéma Samba
LDAP fonctionne avec des schémas, par défaut 4 schémas sont déjà présents,
pour utiliser samba avec LDAP il faut le schéma approprié. Celui se trouve dans
le paquet SAMBA-DOC
• Installation:
apt-get install samba-doc

• On copie le schéma que l'on place dans le répertoire dans le répertoire des
schémas de LDAP:
gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz
> /etc/ldap/schema/samba.schema

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


Modification du fichier slapd.conf
Il reste maintenant à éditer le fichier de configuration du serveur OpenLDAP
nano /etc/ldap/slapd.conf

• On déclare le schéma de samba


include /etc/ldap/schema/samba.schema

Juste en dessous des autres déclarations


Enfin on relance le serveur OpenLDAP:
/etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: running BDB recovery, slapd.

Installation du serveur SAMBA

On installe le paquet samba (le serveur) et des outils pour le client:


apt-get install samba smbclient smbfs

Répondre à debconf en laissant tout par défaut, de toute façon on fera notre
propre fichier de configuration.
Modification du fichier smb.conf
Le fichier de configuration du serveur SAMBA est : /etc/samba/smb.conf

Supprimez tout le contenu et copiez toutes ces lignes:


# Samba config file created using SWAT
# from 127.0.1.1 (127.0.1.1)
# Date: 2008/06/15 07:55:18

[global]
display charset = ISO8859-1
unix charset = ISO8859-1
dos charset = 850

workgroup = DOMAIN
realm = DOMAIN.LOCAL
netbios name = debian
server string = Domain DOMAIN PDC

security = DOMAIN
passdb backend = ldapsam:ldap://127.0.0.1/
passwd program = /usr/bin/smbpasswd %u
username map = /etc/samba/smbusers
unix password sync = Yes

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


log level = 3
syslog = 3
log file = /var/log/samba/log.%m
max log size = 1000

announce version = 5.0


name resolve order = wins lmhosts bcast
server signing = Yes
keepalive = 5
socket options = TCP_NODELAY SO_SNDBUF=819200 SO_RCVBUF=819200

ldap admin dn = cn=admin,dc=DOMAIN,dc=local


ldap delete dn = Yes
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap machine suffix = ou=Computers
ldap suffix = dc=DOMAIN,dc=local
ldap ssl = no
ldap user suffix = ou=Users
idmap backend = dc=DOMAIN,dc=local
idmap uid = 500-10000000
idmap gid = 500-10000000
add user script = /usr/sbin/smbldap-useradd -a -m -G "Domain Users" "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"

logon script = %u.bat


logon path = \\%L\profiles\%u
logon drive = H:
logon home = \\%L\homes\%u
domain logons = Yes

os level = 95
preferred master = Yes
domain master = Yes

eventlog list = Security, Application, Syslog, Apache


message command = /bin/sh -c '/usr/bin/linpopup
panic action = /usr/share/samba/panic-action %d

winbind enum users = yes


winbind enum groups = yes

hide unreadable = Yes


#interfaces = 192.168. 10.0 127.0.0.1

printcap name = cups


printing = cups

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


[homes]
comment = Home Directories
path = /home/%u
read only = No
locking = No
share modes = No

[netlogon]
comment = Network Logon Service
path = /home/netlogon
locking = No
share modes = No

[profiles]
comment = User Profiles
path = /home/profiles
read only = No
create mask = 0660
directory mask = 0770
profile acls = Yes
browseable = No
locking = No
root preexec = mkdir -m 770 /home/"%U" && mkdir -m 770
/home/"%U"/test && mkdir -m 770 /home/"%U"/bin && mkdir -m 770
/home/"%U"/Desktop && mkdir -m 770 /home/"%U"/"Mes Documents"
root postexec = chown -R "%u:Domain Users" /home/"%u"/

[profiles.V2]
copy = profiles

# Defining printers
#################################################
###
[print$]
path = /var/lib/samba/drivers/
guest ok = No
browseable = Yes
read only = Yes
valid users = @"Print Operators"
write list = @"Print Operators"
create mask = 0664
directory mask = 0775

[printers]
comment = All Printers
path = /var/spool/samba
available = yes
printable = Yes

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


browseable = Yes
locking = No
share modes = Yes
use client driver = no

[pdf-documents]
comment = Converted PDF Documents
path = /home/pdf-documents
read only = No
available = yes
browseable = yes
guest ok = yes
public = yes
writable = yes
valid users = @"Domain Users"

[pdf-printer]
comment = PDF Printer Service
path = /tmp
guest ok = Yes
printable = Yes
use client driver = Yes
use client driver = yes
printing = bsd
print command = /usr/bin/gsambadpdf %s %u
lpq command =
lprm command =
valid users = @"Domain Users"

[Drivers]
comment = Drivers
path = /var/lib/samba/printers/
read only = Yes
guest ok = Yes
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[GPO]
comment = Strategies de groupe
path = /home/gpo
available = yes
invalid users = root
valid users = @"Domain Admins"

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


browseable = No
root preexec = /etc/samba/script/createGPO --win_user=%U --win_group=
%G --ip=%I --os_type=%a --win_host=%m --share=/home/gpo

[Partage]
comment = Partage
path = /home/lolo/Partage
read only = No
guest ok = Yes
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Ma Musique]
comment = Ma Musique
path = /home/lolo/Ma Musique
read only = No
guest ok = Yes
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Account Operators]
comment = Account Operators
path = /home/groups/Account Operators
read only = No
locking = No
share modes = No
valid users = @"Account Operators"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


[Administrators]
comment = Administrators
path = /home/groups/Administrators
read only = No
locking = No
share modes = No
valid users = @"Administrators"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Domain Admins]
comment = Domain Admins
path = /home/groups/Domain Admins
read only = No
locking = No
share modes = No
valid users = @"Domain Admins"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Domain Users]
comment = Domain Users
path = /home/groups/Domain Users
read only = No
locking = No
share modes = No
valid users = @"Domain Users"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


[Domain Computers]
comment = Domain Computers
path = /home/groups/Domain Computers
read only = No
locking = No
share modes = No
valid users = @"Domain Computers"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Domain Guests]
comment = Domain Guests
path = /home/groups/Domain Guests
read only = No
locking = No
share modes = No
valid users = lolo
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Print Operators]
comment = Print Operators
path = /home/groups/Print Operators
read only = No
locking = No
share modes = No
valid users = @"Print Operators"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


[Backup Operators]
comment = Backup Operators
path = /home/groups/Backup Operators
read only = No
locking = No
share modes = No
valid users = @"Backup Operators"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt

[Replicators]
comment = Replicators
path = /home/groups/Replicators
read only = No
locking = No
share modes = No
valid users = @"Replicators"
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ?~$*,~$*,*.tmp,index*.pl,index*.htm*,*.temp,*.TMP
recycle:exclude_dir= /tmp,/temp,/cache
recycle:repository = .recycle/.recycle.%u
recycle:noversions = *.doc,*.xls,*.ppt
Vous devez changer au moins les lignes:
• workgroup
C'est le nom de votre domaine, celui que vous allez donner à windows
• netbios name
C'est le nom votre machine (résultat de la commande 'hostname').
• ldap suffix
dc=.....,dc=......
• ldap admin dn
cn=admin,dc=......,dc=.....
Et éventuellement:
• hosts allow
Voir mon fichier smb.html
Création des dossiers partagés

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


Comme vous avez pu le voir dans le fichier de configuration de samba, on
partage plusieurs répertoires.
• /home/netlogon
Contient les éventuels scripts qui sont éxécutés à chaque connexion d'un
utilisateur (.bat)
• /home/export/profile
Contient les profils windows de chaque utilisateur, ils sont créés
automatiquement pour les nouveaux
• /home/partage
Partage commun à tous les utilisateurs du domaine
• /home/lenomdelutilisateur
Les répertoires personnels linux sont aussi partagés
Création des répertoires:
mkdir -p /home/netlogon
mkdir -p /home/profiles

On donne les droits aux répertoires:


chmod a+w /home/profiles
Les scripts smbldap-tools
Installation
Etch et SID
Le paquet smbldap-tools contient plusieurs scripts facilitant l'administration
apt-get install smbldap-tools

Modification du fichier smbldap_bind.conf


Créez le fichier /etc/smbldap-tools/smbldap_bind.conf et copiez ceci:
slaveDN="cn=admin,dc=domaine,dc=local"
slavePw=votremotdepasseenclair
masterDN="cn=admin,dc=domaine,dc=local"
masterPw=votremotdepasseenclair
• Adaptez le comme d'habitude à votre configuration
• Il y a ici un probléme de sécurité car votre mot de passe est en clair,
changez les droits de ce fichier pour que seul root puisse le lire
chmod 600 /etc/smbldap-tools/smbldap_bind.conf

Modification du fichier smbldap.conf


Éditez ou créez le fichier /etc/smbldap-tools/smbldap.conf et copiez ceci:

#################################################
#############################
#
# General Configuration

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


#
#################################################
#############################

# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-2955114329-942759136-1117618233"

# Domain name the Samba server is in charged.


# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="DOMAIN"
sambaDomain="DOMAIN"

#################################################
#############################
#
# LDAP Configuration
#
#################################################
#############################

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
# (typically a replication directory)

# Slave LDAP server


# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="127.0.0.1"

# Slave LDAP port


# If not defined, parameter is set to "389"
slavePort="389"

# Master LDAP server: needed for write operations


# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="127.0.0.1"

# Master LDAP port


# If not defined, parameter is set to "389"
masterPort="389"

# Use TLS for LDAP


# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "1"

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


ldapTLS="0"

# How to verify the server's certificate (none, optional or require)


# see "man Net::LDAP" in start_tls section for more details
verify="require"

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
#cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server


# see "man Net::LDAP" in start_tls section for more details
#clientcert="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.pem"

# key certificate to use to connect to the ldap server


# see "man Net::LDAP" in start_tls section for more details
#clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key"

# LDAP Suffix
# Ex: suffix=dc=DOMAIN,dc=local
suffix="dc=DOMAIN,dc=local"

# Where are stored Users


# Ex: usersdn="ou=Users,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for usersdn
usersdn="ou=Users,${suffix}"

# Where are stored Computers


# Ex: computersdn="ou=Computers,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for computersdn
computersdn="ou=Computers,${suffix}"

# Where are stored Groups


# Ex: groupsdn="ou=Groups,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
groupsdn="ou=Groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for idmapdn
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available for new users and
groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=DOMAIN,${suffix}"

# Default scope Used


scope="sub"

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"

# if hash_encrypt is set to CRYPT, you may set a salt format.


# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

#################################################
#############################
#
# Unix Accounts Configuration
#
#################################################
#############################

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Default mode used for user homeDirectory


userHomeDirectoryMode="700"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID


defaultUserGid="513"

# Default Computer (Samba) GID


defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="45"

#################################################
#############################
#
# SAMBA Configuration
#

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


#################################################
#############################

# The UNC path to home drives location (%U username substitution)


# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome="\\debian\%U"

# The UNC path to profiles locations (%U username substitution)


# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile="\\debian\profiles\%U"

# The default Home Drive Letter mapping


# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"

# The default user netlogon script name (%U username substitution)


# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="%U.bat"

# Domain appended to the users "mail"-attribute


# when smbldap-useradd -M is used
# Ex: mailDomain="DOMAIN.local"
mailDomain="DOMAIN.local"

#################################################
#############################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
#################################################
#############################

# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm)


but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)


# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

# comment out the following line to get rid of the default banner

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


# no_banner="1"
Vous devez changer:
• suffix="dc=.........,dc=......"
On commence tout d'abord par stopper samba
/etc/init.d/samba stop

Puis il faut créer le fichier /var/lib/samba/secrets.tdb: On fournit à samba le mot


de passe du compte administrateur qui effectue les requétes dans l'annuaire
LDAP.
smbpasswd -w votremotdepasseroot

On relance ensuite le serveur samba:


/etc/init.d/samba start

Le démarrage du service doit etre quasi immédia, s'il dure plusiers secondes
c'est qu'il y a une erreur
net getlocalsid
Vérifiez que tout c'est bien passé:
shuttle:~# net getlocalsid
SID for domain DOMAINE is: S-1-5-21-344654654654654654654654
La commande net getlocalsid ne doit retourner aucune erreur ni warning !
Vous pouvez donc changer la valeur dans /etc/smbldap-tools/smbldap.conf
smbldap-populate
On va pouvoir créer l'archictecture de notre base LDAP:
smbldap-populate

Vous devez saisir deux fois votre mot de passe root si tout se passe bien !
Cette commande créée:
• Les différentes OU (Organisation Unit) qui contiendront vos Machines,
Users et Groups
• Deux UID : root et nobody qui seront dans OU = Users
• Plusieurs CN (Common Name): Les groupes qui seront dans OU = Groups
Copiez quelque part la derniére ligne
sambaDomainName=domaine,dc=domaine,dc=local

domaine est le nom workroup que vous avez renseigné dans smb.conf, cette
ligne servira à configurer l'interface LAM (si vous le souhaitez), copiez la quelque
part.
Faites un test, ajoutez un utilisateur:
smbldap-useradd -a -c "Pierre Dupont" -m -P pdupont

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


• -a : désigne un utilisateur
• -c : Information Gecos : Le nom entier
• -m : Créé le répertoire personnel
• -P : création du mot de passe
Lisez l'aide:
smbldap-useradd -?

Pour étre certain que l'utilisateur root a été correctement créé:


smbldap-usershow root

Cette commande vous retourne toutes les informations de l'utilisateur root de


votre annuaire.
Authentification Unix
Un systéme Linux peut aller chercher dans différents endroits pour authentifier
des utilisateurs. Par défaut il s'agit du fichier /etc/passwd Cependant on peut lui
en ajouter d'autres sources de données. Or sur la machine elle méme le but
n'étant pas d'authentifier les utilisateurs locaux de la machine par LDAP, cette
partie n'est pas nécessaire. Si toute fois vous désirez l'implémenter veuillez vous
reporter à : http://damstux.free.fr/wiki/index.php?
title=PDC_Samba_LDAP#Authentification_Unix : Authentification Unix
Un systéme Linux peut aller chercher dans différents endroits pour authentifier
des utilisateurs. Par défaut il s'agit du fichier /etc/passwd Cependant on peut lui
en ajouter d'autres sources de données. On va donc lui indiquer notre annuaire
LDAP
NSS (Name Service Switch)
On ajoute un module à NSS qui lui permet d'interroger notre annuaire LDAP
apt-get install libnss-ldap

Debconf nous pose plusieurs questions:


• Adresse du serveur LDAP : 127.0.0.1
• Nom distinctif (DN) de la base de recherche: dc=.......,dc=.....
• Version de LDAP: 3
• La base de données demande-t-elle une identification ? NON
• Le fichier de configuration doit-il étre lisible et modifiable uniquement par
son propriétaire ? NON
Expliquation: sinon seul root pourra interroger l'annuaire. De toute façon, il n'y a
pas de mot de passe dans ce fichier
Vérifiez que dans /etc/libnss-ldap.conf vos paramétres sont corrects.
Vous devez avoir:
host 127.0.0.1
base dc=domaine,dc=local
uri ldap://127.0.0.1/

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


Une nouvelle version de libnss-ldap exige une modification de son fichier de
configuration: /etc/libnss-ldap.conf. Il faudra peut-étre aussi modifier une ligne
rootbinddn cn=admin,dc=domaine,dc=local en plus de base et uri
Par défaut, si la connexion au serveur LDAP échoue, celle-ci est
automatiquement relancée, le temps écoulé avant une nouvelle connexion est
augmenté à chaque fois, si bien que votre poste client n'arrive pas à booter
(obligation de booter sur un live CD et de monter la partition systéme pour
revenir à une configuration correcte).
Il faut donc modifier le mode de connexion: Par défaut il est à HARD, on
décommente la ligne #bind_policy hard et l'on remplace hard par soft Ainsi, en
cas d'erreur, le poste démarre quand méme.
Vous devez donc avoir dans /etc/libnss-ldap.conf
# Reconnect policy:
# hard_open: reconnect to DSA with exponential backoff if
# opening connection failed
# hard_init: reconnect to DSA with exponential backoff if
# initializing connection failed
# hard: alias for hard_open
# soft: return immediately on server failure
bind_policy soft
Il est possible d'affiner considérablement la configuration, mais seule la directive
base est à changer pour une configuration classique

PAM
De même, on installe le module LDAP pour PAM:
apt-get install libpam-ldap
• Hôte du serveur LDAP : 127.0.0.1
• Nom distinctif (« distinguished name») de la base de recherche :
dc=........,dc=......
• Version de LDAP: 3
• Faut-il créer une base de données locale pour l'administrateur ? NON
• La base de données requiert-elle une connexion authentifiée ? NON
• Méthode de chiffrement pour les changements de mots de passe : crypt

Vérifiez que le fichier /etc/pam_ldap.conf contient au moins:


host 127.0.0.1
base dc=domaine,dc=local
uri ldap://127.0.0.1/
Authentification grâce à LDAP
Il suffit d'indiquer maintenant au système d'aller interroger notre annuaire LDAP
nano /etc/nsswitch.conf

Il vous suffit de rajouter après compat la directive ldap pour

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


• passwd

• group

• shadow

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat ldap


group: compat ldap
shadow: compat ldap

hosts: files dns


networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

ATTENTION !! En manipulant ce fichier si vous faites une erreur, vous ne


pourrez plus vous connecter avec aucun de vos utilisateurs (même
root) !!
On teste
Vous avez créé un utilisateur toto dans votre annuaire LDAP:
La commande:
getent passwd
Doit vous retourner quelque chose comme:
pdupont:x:1507:513:Pierre Dupont:/home/pdupont:/bin/bash
Intégration d'un client Windows (XP Pro, Serveur 2003/2008)
Une fois que vous avez terminé toute l'installation et la configuration de votre
serveur Linux, penser à relancer les deux services:
/etc/init.d/samba stop
/etc/init.d/slapd restart
/etc/init.d/samba start
Enfin, vous pouvez tester sous Windows.
• Click droit sur Poste de Travail, Propriétés.
• Onglet Nom de l'ordinateur
• Click sur le bouton Modifier...

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


• Membre de: Choisissez Domaine : Saisissez le nom de la directive
workgroup que vous avez renseigné dans smb.conf
• OK
• On vous demande un login: root et votre mot de passe : celui de root
• Si tout va bien le message " Bienvenue dans le domaine ...." s'affiche.
• Redémarrez la machine
• Choisissez le domaine que vous avez créé et connectez vous avec root ou
toto
Votre profile Windows XP/2003 est stocké sur le serveur Linux dans
/home/profiles/ chaque utilisateur possède son répertoire $LOGIN.
Votre profile Windows 2008 Serveur/Vista est stocké sur le serveur Linux dans
/home/profiles/ chaque utilisateur possède son répertoire $LOGIN.V2. V2 pour
différencier le profile avant et après Vista. Sachant que Vista cherche un partage
profiles.v2, c'est pourquoi nous avons créé un :
[profiles.V2]
copy = profiles
Ils contient les éléments de votre bureau, le répertoire "Mes Documents", les
fichiers de configuration des applications (Firefox, Thunderbird....).
ATTENTION : Si vous avez des scripts de logon, pensez à ajouter vos comptes aux
groupes voulus : smbldap-groupmod -m $USER "$GROUP1 , $GROUP2"
Intégration d'un client Linux
Si vous avez des clients Linux avec les quels vous ne désirez pas créer de
compte en local suivez la méthode dans 5 Authentification Unix , puis
http://www.e-glop.net/main/GDM-LDAP-Ubuntu.
Car GDM ou KDM utilisant /etc/pam.d/ pour chercher les logins il advient qu'à la
connexion de session :
• Login Failed !
La solution se situe dans la modification des pam.d :
Configuration
PAM (authentification)
Pour faire fonctionner GDM/KDM, voici comment paramétrer l'authentification
PAM :
$ cat /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so

$ cat /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so use_first_pass nullok_secure

$ cat /etc/pam.d/common-password
password sufficient pam_ldap.so md5
password required pam_unix.so nullok obscure min=4 max=8 md5

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


$ cat /etc/pam.d/common-session
session required pam_mkhomedir.so skel=/etc/skel
session sufficient pam_ldap.so
session required pam_unix.so

$ cat /etc/pam.d/kdm
session required pam_mkhomedir.so skel=/etc/skel
auth required pam_nologin.so
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
session required pam_limits.so
@include common-account
@include common-password
@include common-session

$ cat /etc/pam.d/login
# A mettre au tout début du fichier
session required pam_mkhomedir.so skel=/etc/skel
session required pam_mkhomedir.so skel=/etc/skel :
Permet de créer le répertoire personnel /home/$USER sur le client Linux. Dans
smb.conf est ajouté dans profiles :
root preexec = mkdir -m 770 /home/"%U" && mkdir -m 770 /home/"%U"/test &&
mkdir -m 770 /home/"%U"/bin && mkdir -m 770 /home/"%U"/Desktop && mkdir
-m 770 /home/"%U"/"Mes Documents"
root postexec = chown -R "%u:Domain Users" /home/"%u"/
Interfaces d'administration
smbldap-tools
Le paquet smbldap-tools contient plusieurs scripts pour gérer les utilisateurs,
groupes et machines dans l'annuaire LDAP.
smbldap-groupadd smbldap-groupshow smbldap-useradd smbldap-usermod
smbldap-groupdel smbldap-passwd smbldap-userdel smbldap-usershow
smbldap-groupmod smbldap-populate smbldap-userinfo
Vous pouvez afficher toutes options possibles en faisant:
smbldap-... -?

Vous pouvez spécifier des options dans /etc/smbldap-tools/smbldap.conf

PHPLDAPADMIN
C'est une sorte d'équivalent de PHPMYADMIN (Pour gérer son serveur Mysql).
PHPLDAPADMIN vous permet de manipuler et de visualiser facilement les
éléments de votre annuaire LDAP.
Installation
apt-get install phpldapadmin

Doc détaillée installation serveur Linux/Debian par Frank Bendavid


On ouvre un navigateur internet:
http://adresseipduserveur/phpldapadmin

Login DN
cn=admin,dc=domaine,dc=local

Password
votre mot de passe

Annexe

Un peu comme le préconise Microsoft lors de la configuration d'un


Active Directory.
http://e-novatic.fr/blog/index.php/post/2007/09/11/Bien-configurer-son-
Active-Directory
http://www.laboratoire-microsoft.org/articles/win/startad/3/Default.asp

Doc détaillée installation serveur Linux/Debian par Frank Bendavid