Configuration SAMBA · 8 min read · Oct 06, 2025
Serveur de Répertoire Mandriva sur Debian Etch - Page 2
5 SAMBA
5.1 Configuration de Base
D’abord, arrêtez SAMBA.
/etc/init.d/samba stopCopiez le fichier de configuration SAMBA exemple dans le répertoire SAMBA …
cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/… et ajustez-le selon vos besoins.
vi /etc/samba/smb.confDéfinissez les valeurs suivantes dans la section [global]:
workgroup = EXAMPLE
netbiosname = PDC-SRV-EXAMPLE
ldap admin dn = cn=admin,dc=example,dc=com
ldap suffix = dc=example,dc=com
logon path = \%N\profiles\%U
Ajoutez les lignes suivantes à la section [global]:
preferred master = yes
os level = 65
wins support = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
logon drive = H:
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = “Changing password for\nNew password“ %n\n “Retype new password“ %n\n
add user script = /usr/sbin/smbldap-useradd -m “%u”
add user to group script = /usr/sbin/smbldap-groupmod -m “%u” “%g”
set primary group script = /usr/sbin/smbldap-usermod -g “%g” “%u”
add group script = /usr/sbin/ambldap-groupadd -p “%g”
delete user script = /usr/sbin/smbldap-userdel “%u”
delete user from group script = /usr/sbin/smbldap-groupmod -x “%u” “%g”
delete group script = /usr/sbin/smbldap-groupdel “%g”
obey pam restrictions = no
ldap idmap suffix = ou=Users
ldap delete dn = yes
security = user
Ajoutez la ligne suivante à la section [homes]:
hide files = /Maildir/Supprimez la ligne suivante des sections [printers] et [print$]:
printer admin = root,@lpadminDéfinissez les valeurs suivantes dans la section [print$]:
write list = Administrator,root,@lpadmin
Ajoutez la ligne suivante à la section [profiles]:
hide files = /desktop.ini/ntuser.ini/NTUSER.*/Définissez les valeurs suivantes dans la section [archives]:
path = /home/samba/archives
À ce stade, le fichier de configuration SAMBA devrait ressembler à ceci:
[global]
workgroup = EXAMPLE
netbiosname = PDC-SRV-EXAMPLE
preferred master = yes
os level = 65
wins support = yes
enable privileges = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
log level = 3
null passwords = yes
security = user
# unix charset = ISO8859-1
name resolve order = bcast host
domain logons = yes
domain master = yes
printing = cups
printcap name = cups
logon path = \\%N\profiles\%U
logon script = logon.bat
logon drive = H:
map acl inherit = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = no
ldap admin dn = cn=admin,dc=example,dc=com
ldap suffix = dc=example,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
ldap passwd sync = yes
ldap delete dn = yes
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n
add user script = /usr/sbin/smbldap-useradd -m "%u"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add group script = /usr/sbin/ambldap-groupadd -p "%g"
add machine script = /usr/lib/mmc/add_machine_script '%u'
delete user script = /usr/sbin/smbldap-userdel "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
[homes]
comment = Répertoires personnels
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
hide files = /Maildir/
[public]
comment = Partage public
path = /home/samba/shares/public
browseable = yes
public = yes
writeable = yes
[archives]
comment = Partage de sauvegarde
path = /home/samba/archives
browseable = yes
public = no
writeable = no
[printers]
comment = Imprimantes
path = /tmp
browseable = no
public = yes
guest ok = yes
writeable = no
printable = yes
[print$]
comment = Pilotes
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = Administrator,root,@lpadmin
[netlogon]
path = /home/samba/netlogon
public = no
writeable = no
browseable = no
[profiles]
path = /home/samba/profiles
writeable = yes
create mask = 0700
directory mask = 0700
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yesSi tout s’est bien passé, la commande …
testparm… ne devrait donner aucune erreur.
Maintenant, donnez à SAMBA les identifiants nécessaires pour écrire dans l’LDAP.
smbpasswd -w %ldap_admin_password%Par exemple:
smbpasswd -w howtoforgeLa sortie devrait ressembler à ceci:
Setting stored password for "cn=admin,dc=example,dc=com" in secrets.tdbEnsuite, vous devez créer un SID pour votre groupe de travail.
net getlocalsid %your_workgroup%Par exemple:
net getlocalsid EXAMPLELa sortie devrait ressembler à ceci - notez-le, vous en aurez besoin dans quelques instants:
SID for domain EXAMPLE is: S-1-5-21-3159899821-123882392-54881133Vérifiez si le SID a vraiment été enregistré dans l’LDAP.
slapcat | grep sambaDomainNameLa sortie devrait ressembler à ceci:
dn: sambaDomainName=EXAMPLE,dc=example,dc=com
sambaDomainName: EXAMPLEMaintenant, démarrez SAMBA
/etc/init.d/samba start5.2 Annuaire LDAP
D’abord, vous devez créer le fichier de configuration smbldap-tools - il définit comment communiquer avec le serveur LDAP.
vi /etc/smbldap-tools/smbldap_bind.confLe contenu devrait ressembler à ceci:
slaveDN="cn=admin,dc=example,dc=com"
slavePw="howtoforge"
masterDN="cn=admin,dc=example,dc=com"
masterPw="howtoforge"Maintenant, créez le fichier de configuration principal.
vi /etc/smbldap-tools/smbldap.confLe contenu devrait ressembler à ceci (Remplacez le SID par le vôtre !):
SID="S-1-5-21-3159899821-123882392-54881133"
sambaDomain="EXAMPLE"
ldapTLS="0"
suffix="dc=example,dc=com"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=EXAMPLE,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-SRV-EXAMPLE\%U"
userProfile="\\PDC-SRV-EXAMPLE\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="example.com"
smbpasswd="/usr/bin/smbpasswd"Il est temps de peupler l’annuaire LDAP. Cela créera également le compte administrateur de domaine (Administrator)
smbldap-populate -m 512 -a AdministratorRemarque: Vous serez invité à entrer un mot de passe pour le compte administrateur de domaine.
Ensuite, vous devez modifier le numéro uid pour ce compte - sinon vous ne pourrez pas utiliser le serveur de messagerie avec ce compte. De plus, nous ajoutons ce compte au groupe “Domain Users” :
smbldap-usermod -u 3000 -G "Domain Users" Administrator5.3 Configuration NSS LDAP
Dans cette étape, nous configurons le système pour utiliser l’annuaire LDAP afin d’obtenir des listes d’utilisateurs et de groupes.
Éditez la configuration nsswitch.
vi /etc/nsswitch.confLe contenu devrait ressembler à ceci:
# /etc/nsswitch.conf
#
# Exemple de configuration de la fonctionnalité GNU Name Service Switch.
# Si vous avez les paquets `glibc-doc' et `info' installés, essayez:
# `info libc "Name Service Switch"' pour des informations sur ce fichier.
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: nis5.4 Répertoires SAMBA
Créez les répertoires nécessaires pour le serveur SAMBA, …
mkdir -p /home/samba/shares/public/
mkdir /home/samba/netlogon/
mkdir /home/samba/profiles/
mkdir /home/samba/partage/
mkdir /home/samba/archives/… changez la propriété et ajustez les droits.
chown -R :"Domain Users" /home/samba/
chmod 777 /var/spool/samba/ /home/samba/shares/public/
chmod 755 /home/samba/netlogon/
chmod 770 /home/samba/profiles/ /home/samba/partage/
chmod 700 /home/samba/archives/6 Configuration PAM LDAP
Dans cette étape, vous ajouterez le support LDAP à PAM.
vi /etc/pam.d/common-accountLe contenu devrait ressembler à ceci:
#
# /etc/pam.d/common-account - paramètres d'autorisation communs à tous les services
#
# Ce fichier est inclus à partir d'autres fichiers de configuration PAM spécifiques aux services,
# et devrait contenir une liste des modules d'autorisation qui définissent
# la politique d'accès centrale à utiliser sur le système. La valeur par défaut est de
# seulement refuser le service aux utilisateurs dont les comptes sont expirés dans /etc/shadow.
#
account required pam_unix.so
account sufficient pam_ldap.sovi /etc/pam.d/common-authLe contenu devrait ressembler à ceci:
#
# /etc/pam.d/common-auth - paramètres d'authentification communs à tous les services
#
# Ce fichier est inclus à partir d'autres fichiers de configuration PAM spécifiques aux services,
# et devrait contenir une liste des modules d'authentification qui définissent
# le schéma d'authentification central à utiliser sur le système
# (par exemple, /etc/shadow, LDAP, Kerberos, etc.). La valeur par défaut est d'utiliser les
# mécanismes d'authentification Unix traditionnels.
#
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.sovi /etc/pam.d/common-passwordLe contenu devrait ressembler à ceci:
#
# /etc/pam.d/common-password - modules liés aux mots de passe communs à tous les services
#
# Ce fichier est inclus à partir d'autres fichiers de configuration PAM spécifiques aux services,
# et devrait contenir une liste de modules qui définissent les services à
# utiliser pour changer les mots de passe des utilisateurs. La valeur par défaut est pam_unix
# L'option "nullok" permet aux utilisateurs de changer un mot de passe vide, sinon
# les mots de passe vides sont traités comme des comptes verrouillés.
#
# (Ajoutez `md5' après le nom du module pour activer les mots de passe MD5)
#
# L'option "obscure" remplace l'ancienne option `OBSCURE_CHECKS_ENAB' dans
# login.defs. De plus, les options "min" et "max" imposent la longueur du
# nouveau mot de passe.
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password sufficient pam_ldap.so use_first_pass use_authtok
password required pam_deny.so
# Vérification de force alternative pour le mot de passe. Notez que cela
# nécessite que le paquet libpam-cracklib soit installé.
# Vous devrez commenter la ligne de mot de passe ci-dessus et
# décommenter les deux suivantes pour l'utiliser.
# (Remplace les `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required pam_cracklib.so retry=3 minlen=6 difok=3
# password required pam_unix.so use_authtok nullok md5vi /etc/pam.d/common-sessionLe contenu devrait ressembler à ceci:
#
# /etc/pam.d/common-session - modules liés aux sessions communs à tous les services
#
# Ce fichier est inclus à partir d'autres fichiers de configuration PAM spécifiques aux services,
# et devrait contenir une liste de modules qui définissent les tâches à effectuer
# au début et à la fin des sessions de *tous* types (à la fois interactives et
# non interactives). La valeur par défaut est pam_unix.
#
session required pam_unix.so
session optional pam_ldap.soEnsuite, redémarrez le système.
rebootLorsque le système sera à nouveau opérationnel, donnez au groupe “Domain Admins” le droit d’ajouter des machines au domaine.
net -U Administrator rpc rights grant 'DOMAIN\Domain Admins' SeMachineAccountPrivilege7 SSL Pour Mail
D’abord, préparez un fichier de configuration avec les informations nécessaires.
vi /etc/ssl/mail.cnfAjoutez le contenu suivant:
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no
string_mask = nombstr
x509_extensions = server_cert
[ req_distinguished_name ]
countryName = DE
stateOrProvinceName = Niedersachsen
localityName = Lueneburg
organizationName = Projektfarm GmbH
organizationalUnitName = IT
commonName = server1.example.com
emailAddress = [email protected]
[ server_cert ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
nsCertType = server
nsComment = "mailserver"Maintenant, créez le certificat SSL …
openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch… et ajustez les droits pour que seul root puisse le lire.
chmod 600 /etc/ssl/private/mail.keyRecevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.