Tuto Complet
Tuto Complet
Tuto Complet
• Pourquoi Samba/Unix
– Besoin d’interopérabilité Unix - PC
– Faible coût (pas de licence par poste client)
– Refus du « tout Microsoft »
Samba – fonctions
Source: http://samba.anu.edu.au/samba/samba.html
Procedure
Changer nom pc :
Gedit /etc/hostname
Configuration réseau :
DHCP:
Apt-get install dhcp3-server
Gedit /etc/dhcp3/dhcpd.conf
Copier:
/etc/init.d/dhcp3-server restart
Dans /etc/bind/:
Gedit named.conf:
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";
};
Les zones ont été créées, pointant vers leur fichier d’info : rosea-phoenix.org et
reverse-…
$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
$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.
/etc/init.d/bind9 restart
/etc/init.d/dhcp3-server restart
Voir le résultat
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
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
[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
os level = 95
preferred master = Yes
domain master = Yes
[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
[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"
[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
[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
[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
[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
#################################################
#############################
#
# General Configuration
# 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"
#################################################
#############################
#
# 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)
# CA certificate
# see "man Net::LDAP" in start_tls section for more details
#cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem"
# LDAP Suffix
# Ex: suffix=dc=DOMAIN,dc=local
suffix="dc=DOMAIN,dc=local"
# 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}"
#################################################
#############################
#
# Unix Accounts Configuration
#
#################################################
#############################
# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"
# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"
# Gecos
userGecos="System User"
# 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
#
#################################################
#############################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
#################################################
#############################
# comment out the following line to get rid of the default banner
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
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
• 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.
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
$ 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
$ 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-... -?
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
Login DN
cn=admin,dc=domaine,dc=local
Password
votre mot de passe
Annexe