38
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 Doc détaillée installation serveur Linux/Debian par Frank Bendavid

Tuto complet

Embed Size (px)

Citation preview

Page 1: Tuto complet

SommaireAlternative : 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

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

Page 2: Tuto complet

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, ...PayantesModification 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 NTpas de partage de comptes avec les postes NT du domaineobligation de créer des comptes équivalents sur chaque station NT

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

Page 3: Tuto complet

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

Page 4: Tuto complet

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 sendmail2. 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

Page 5: Tuto complet

IV. 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

Page 6: Tuto complet

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

Page 7: Tuto complet

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

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

$ttl 38400ROSEA-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.150serveur A 192.168.113.1ns.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

Page 8: Tuto complet

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

Page 9: Tuto complet

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 restartStopping 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

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

Page 10: Tuto complet

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

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

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

Page 11: Tuto complet

hide unreadable = Yes #interfaces = 192.168. 10.0 127.0.0.1

printcap name = cups printing = cups

[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]

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

Page 12: Tuto complet

comment = All Printers path = /var/spool/samba available = yes printable = Yes 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

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

Page 13: Tuto complet

available = yes invalid users = root valid users = @"Domain Admins" 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

Page 14: Tuto complet

[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

Page 15: Tuto complet

[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

Page 16: Tuto complet

[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=.....

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

Page 17: Tuto complet

Et éventuellement:

hosts allow

Voir mon fichier smb.html

Création des dossiers partagés

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/netlogonmkdir -p /home/profiles

On donne les droits aux répertoires: chmod a+w /home/profilesLes 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

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

Page 18: Tuto complet

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###############################################################################

# Put your own SID. To obtain this number do: "net getlocalsid".# If not defined, parameter is taking from "net getlocalsid" returnSID="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

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

Page 19: Tuto complet

# 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"ldapTLS="0"

# How to verify the server's certificate (none, optional or require)# see "man Net::LDAP" in start_tls section for more detailsverify="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=localsuffix="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 usersdnusersdn="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 computersdncomputersdn="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 groupsdngroupsdn="ou=Groups,${suffix}"

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

Page 20: Tuto complet

# 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 idmapdnidmapdn="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 Usedscope="sub"

# 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 homeDirectoryuserHomeDirectoryMode="700"

# GecosuserGecos="System User"

# Default User (POSIX and Samba) GIDdefaultUserGid="513"

# Default Computer (Samba) GIDdefaultComputerGid="515"

# Skel dirskeletonDir="/etc/skel"

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

Page 21: Tuto complet

# 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###############################################################################

# 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 dosuserScript="%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 librarywith_smbpasswd="0"smbpasswd="/usr/bin/smbpasswd"

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

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

Page 22: Tuto complet

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

# comment out the following line to get rid of the default banner# 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 getlocalsidSID 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

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

Page 23: Tuto complet

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

-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=.....

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

Page 24: Tuto complet

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.1base dc=domaine,dc=localuri ldap://127.0.0.1/

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 failurebind_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:

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

Page 25: Tuto complet

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.1base dc=domaine,dc=localuri 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

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 ldapgroup: compat ldapshadow: compat ldap

hosts: files dnsnetworks: files

protocols: db filesservices: db files

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

Page 26: Tuto complet

ethers: db filesrpc: 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... 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]

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

Page 27: Tuto complet

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-accountaccount sufficient pam_ldap.soaccount required pam_unix.so

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

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

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

$ cat /etc/pam.d/kdmsession required pam_mkhomedir.so skel=/etc/skelauth required pam_nologin.soauth required pam_env.so readenv=1auth required pam_env.so readenv=1 envfile=/etc/default/locale@include common-authsession required pam_limits.so@include common-account

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

Page 28: Tuto complet

@include common-password@include common-session

$ cat /etc/pam.d/login# A mettre au tout début du fichiersession 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-usermodsmbldap-groupdel smbldap-passwd smbldap-userdel smbldap-usershowsmbldap-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

On ouvre un navigateur internet:

http://adresseipduserveur/phpldapadmin

Login DN

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

Page 29: Tuto complet

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