GOsa : PDC : Différence entre versions
De wikiGite
Ligne 198 : | Ligne 198 : | ||
##PDC## | ##PDC## | ||
[global] | [global] | ||
− | # identification du serveur # | + | ## identification du serveur ## |
− | + | # nom du domaine | |
workgroup = SYSTEA | workgroup = SYSTEA | ||
− | + | # nom du serveur dans le domain | |
netbios name = GOSA-DEBIAN | netbios name = GOSA-DEBIAN | ||
− | + | # description qui sera affichée chez les clients | |
server string = Serveur Samba %v sur %L | server string = Serveur Samba %v sur %L | ||
− | # controleur de domaine # | + | ## controleur de domaine ## |
− | + | # les clients peuvent s'authentifier sur ce serveur | |
domain logons = Yes | domain logons = Yes | ||
− | + | # le serveur fait office de serveur wins | |
wins support = Yes | wins support = Yes | ||
− | + | # ce serveur sera toujours le serveur maitre avec un | |
− | + | # niveau de 255, les produits | |
− | + | # microsoft doivent être au alentour de 70 au maximum | |
os level = 77 | os level = 77 | ||
− | + | # tiens à jour la liste de toutes les machines du domaine | |
− | + | # ce role doit etre accordé à la machine qui agit en | |
− | + | # tant que PDC | |
domain master = yes | domain master = yes | ||
− | + | # ce serveur est le serveur de son sous reseau | |
local master = yes | local master = yes | ||
− | + | # astuce pour etre certain de devenir le local | |
− | + | # master browser de son sous reseau | |
prefered master = yes | prefered master = yes | ||
− | + | # l'authentification est faite sur cette machine | |
security = user | security = user | ||
− | + | # les mot de passe sont cryptés | |
encrypt passwords = true | encrypt passwords = true | ||
− | + | # authorise les clients à synchroniser leur horloge | |
time server = yes | time server = yes | ||
host msdfs = yes | host msdfs = yes | ||
− | + | # augmente les performance tcp/ip | |
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 | socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 | ||
− | + | # methode de resolution des noms | |
name resolve order = wins hosts bcast | name resolve order = wins hosts bcast | ||
Ligne 240 : | Ligne 240 : | ||
hosts allow = 192.168. 127.0.0 | hosts allow = 192.168. 127.0.0 | ||
− | # journalisation # | + | ## journalisation ## |
− | + | # niveau de log | |
log level = 2 | log level = 2 | ||
− | + | # le log se fait par machine | |
log file = /var/log/samba/log.%m | log file = /var/log/samba/log.%m | ||
− | + | # taille maximum d'un fichier de log | |
max log size = 1000 | max log size = 1000 | ||
− | + | # horodatage des actions loggées | |
debug timestamp = yes | debug timestamp = yes | ||
− | # option concernant les fichiers # | + | ## option concernant les fichiers ## |
guest account = nobody | guest account = nobody | ||
printing = cups | printing = cups | ||
printcap name = cups | printcap name = cups | ||
− | + | # oplock | |
oplocks = No | oplocks = No | ||
level2 oplocks = No | level2 oplocks = No | ||
Ligne 261 : | Ligne 261 : | ||
− | + | # fichier cache | |
hide files = /desktop.ini/ntuser.ini/NTUSER.*/ | hide files = /desktop.ini/ntuser.ini/NTUSER.*/ | ||
hide dot files = yes | hide dot files = yes | ||
− | + | # option pour la casse des noms de fichiers | |
case sensitive = No | case sensitive = No | ||
default case = lower | default case = lower | ||
preserve case = yes | preserve case = yes | ||
short preserve case = Yes | short preserve case = Yes | ||
− | + | # Table d'encodage des caractères (le même que sous windows) | |
Unix Charset = ISO8859-15 | Unix Charset = ISO8859-15 | ||
− | # | + | ## options LDAP ## |
passdb backend = ldapsam:ldap://127.0.0.1 | passdb backend = ldapsam:ldap://127.0.0.1 | ||
ldap suffix = dc=systea,dc=local | ldap suffix = dc=systea,dc=local | ||
Ligne 284 : | Ligne 284 : | ||
enable privileges = Yes | enable privileges = Yes | ||
− | # profile et logon # | + | ## profile et logon ## |
logon path = \\%L\profiles\%U | logon path = \\%L\profiles\%U | ||
logon drive = P: | logon drive = P: | ||
logon home = \\%L\%U | logon home = \\%L\%U | ||
− | + | # script à executer lorsque un utilisateur se connecte | |
logon script = logon.bat | logon script = logon.bat | ||
Ligne 296 : | Ligne 296 : | ||
msdfs root = Yes | msdfs root = Yes | ||
− | #SMBLDAP-TOOLS | + | ## SMBLDAP-TOOLS ## |
add user script = /usr/sbin/smbldap-useradd -m "%u" | add user script = /usr/sbin/smbldap-useradd -m "%u" | ||
add machine script = /usr/sbin/smbldap-useradd -t 30 -w "%u" | add machine script = /usr/sbin/smbldap-useradd -t 30 -w "%u" | ||
Ligne 398 : | Ligne 398 : | ||
=== Création d’un compte utilisateur === | === Création d’un compte utilisateur === | ||
creer utilisateur et activer l'extension UNIX | creer utilisateur et activer l'extension UNIX | ||
+ | |||
==== Créer un répertoire personnel pour chaque utilisateur lors d'une ouverture de session ==== | ==== Créer un répertoire personnel pour chaque utilisateur lors d'une ouverture de session ==== |
Version du 2 mai 2012 à 12:45
EN CONSTRUCTION
GOsa² est un outil d’administration sous GPL, écrit en PHP et conçu pour administrer les comptes et les systèmes dans un arbre LDAP.
Une série d’extensions existe déjà de base pour la gestion des personnes, des systèmes, des logiciels.
But :
S'autentifier sur samba par des groupes et des utilisateurs se trouvant dans un annuaire openldap .Gosa² permet au client de créer et de modifier facilement les utilisateurs et les groupes
Sommaire
Installation
Installation de ldap :
aptitude install slapd db4.8-util ldap-utils /etc/init.d/slapd stop
Installation de samba :
aptitude install samba smbfs samba-client smbldap-tools
Installation de gosa
Ajouter le dépot dans /etc/apt/sources.list
#Gosa deb http://oss.gonicus.de/pub/gosa/debian-squeeze/ ./
Puis installer les paquets :
aptitude update aptitude install gosa gosa-schema gosa-help-fr gosa-plugin-samba gosa-plugin-systems
Configuration de ldap
Ajouter les schemas de samba et gosa :
vim /etc/ldap/convert-file.conf # Configuration globale include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/nis.schema #for gosa include /etc/ldap/schema/gosa/gosystem.schema include /etc/ldap/schema/gosa/gofon.schema include /etc/ldap/schema/gosa/goto.schema include /etc/ldap/schema/gosa/goto-mime.schema include /etc/ldap/schema/gosa/gofax.schema include /etc/ldap/schema/gosa/goserver.schema include /etc/ldap/schema/gosa/samba3.schema include /etc/ldap/schema/gosa/gosa-samba3.schema
Convertir les schemas :
mkdir /tmp/ldif_output
slapcat -f /etc/ldap/convert-file.conf -F /tmp/ldif_output -n0 -s ""
rm /etc/ldap/slapd.d/cn=config/cn=schema/*
cp /tmp/ldif_output/cn\=config/cn\=schema/* /etc/ldap/slapd.d/cn\=config/cn\=schema/
chown openldap:openldap /etc/ldap/slapd.d/cn=config/cn=schema/*
NSS et PAM
Installation
Sur le poste qui acceptera des comptes gérés par LDAP, nous installons en premier les outils utiles à leurs communications.
apt-get install libnss-ldap
cela ammene à configurer 2 paquets libnss-ldap et libpam-ldap.
Identifiant uniforme de ressource (« URI ») du serveur LDAP : ldap://127.0.0.1
Nom distinctif (DN) de la base de recherche : dc=systea,dc=local
Version de LDAP à utiliser : 3
Compte LDAP pour le superutilisateur (« root ») : cn=admin,dc=systea,dc=local
Dans les 2 fichiers suivants :
vim /etc/libnss-ldap.conf
vim /etc/pam_ldap.conf
- Décommenter la ligne : host 127.0.0.1
Configuration de NSS
vim /etc/nsswitch.conf
Ajouter la reférence à ldap :
passwd: compat ldap group: compat ldap shadow: compat ldap
Configuration de PAM
source : http://wiki.debian.org/LDAP/PAM
mv /etc/pam.d/common-account /etc/pam.d/common-account.bk
vim /etc/pam.d/common-account
account sufficient pam_ldap.so account required pam_unix.so account sufficient pam_succeed_if.so account required pam_permit.so
mv /etc/pam.d/common-auth /etc/pam.d/common-auth.bk
vim /etc/pam.d/common-auth
auth sufficient pam_ldap.so use_first_pass auth sufficient pam_unix.so nullok_secure auth requisite pam_succeed_if.so auth required pam_deny.so
mv /etc/pam.d/common-password /etc/pam.d/common-password.bk
vim /etc/pam.d/common-password
password sufficient pam_ldap.so password sufficient pam_unix.so md5 obscure min=4 max=8 nullok try_first_pass password required pam_deny.so
mv /etc/pam.d/common-session /etc/pam.d/common-session.bk
vim /etc/pam.d/common-session
session required pam_limits.so session required pam_unix.so session optional pam_ldap.so
Création auto de /home
Pour la création automatique du répertoire lorsque qu'un utilisateur se connecte avec un compte unix se trouvant dans l'annuaire, Ajouter dans /etc/pam.d/common-session :
session required pam_mkhomedir.so skel=/etc/skel umask=0022
samba
Si besoin d'une interface pour gerer les partages :
apt-get install swat
Configuration de smbldap-tools
cd /etc/smbldap-tools
vim smbldap_bind.conf
masterDN="cn=admin,dc=systea,dc=local"
masterPw="MDPADMINLDAP"
slaveDN="cn=admin,dc=systea,dc=local"
slavePw="MDPADMINLDAP"
Récuperer le localSID du serveur. A mettre dans smbldap.conf
net getlocalsid
vim smbldap.conf
SID="S-1-5-21-2656711195-2971921737-1932468485"
masterLDAP="127.0.0.1"
masterPort="389"
ldap admin dn =cn=admin,dc=systea,dc=local
ldapTLS="0"
suffix="dc=systea,dc=local"
usersdn="ou=people,${suffix}"
computersdn="ou=computers,${suffix}"
groupsdn="ou=groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=SYSTEA,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"
userLoginShell="/bin/false"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
#Les mots de passe expirent dans 10ans
defaultMaxPasswordAge="3650"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
Donner les bons droit aux fichiers :
chmod 0644 /etc/smbldap-tools/smbldap.conf chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
Éditer le fichier smb.conf pour paramétrer les connexions à notre annuaire LDAP:
vim /etc/samba/smb.conf
##PDC##
[global]
## identification du serveur ##
# nom du domaine
workgroup = SYSTEA
# nom du serveur dans le domain
netbios name = GOSA-DEBIAN
# description qui sera affichée chez les clients
server string = Serveur Samba %v sur %L
## controleur de domaine ##
# les clients peuvent s'authentifier sur ce serveur
domain logons = Yes
# le serveur fait office de serveur wins
wins support = Yes
# ce serveur sera toujours le serveur maitre avec un
# niveau de 255, les produits
# microsoft doivent être au alentour de 70 au maximum
os level = 77
# tiens à jour la liste de toutes les machines du domaine
# ce role doit etre accordé à la machine qui agit en
# tant que PDC
domain master = yes
# ce serveur est le serveur de son sous reseau
local master = yes
# astuce pour etre certain de devenir le local
# master browser de son sous reseau
prefered master = yes
# l'authentification est faite sur cette machine
security = user
# les mot de passe sont cryptés
encrypt passwords = true
# authorise les clients à synchroniser leur horloge
time server = yes
host msdfs = yes
# augmente les performance tcp/ip
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# methode de resolution des noms
name resolve order = wins hosts bcast
dns proxy = no
hosts allow = 192.168. 127.0.0
## journalisation ##
# niveau de log
log level = 2
# le log se fait par machine
log file = /var/log/samba/log.%m
# taille maximum d'un fichier de log
max log size = 1000
# horodatage des actions loggées
debug timestamp = yes
## option concernant les fichiers ##
guest account = nobody
printing = cups
printcap name = cups
# oplock
oplocks = No
level2 oplocks = No
kernel oplocks = No
# fichier cache
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
hide dot files = yes
# option pour la casse des noms de fichiers
case sensitive = No
default case = lower
preserve case = yes
short preserve case = Yes
# Table d'encodage des caractères (le même que sous windows)
Unix Charset = ISO8859-15
## options LDAP ##
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=systea,dc=local
ldap machine suffix = ou=computers
ldap user suffix = ou=people
ldap group suffix = ou=groups
ldap admin dn = "cn=admin,dc=systea,dc=local"
ldap ssl = off
ldap passwd sync = Yes
enable privileges = Yes
## profile et logon ##
logon path = \\%L\profiles\%U
logon drive = P:
logon home = \\%L\%U
# script à executer lorsque un utilisateur se connecte
logon script = logon.bat
template shell = /bin/false
winbind use default domain = Yes
nt acl support = Yes
msdfs root = Yes
## SMBLDAP-TOOLS ##
add user script = /usr/sbin/smbldap-useradd -m "%u"
add machine script = /usr/sbin/smbldap-useradd -t 30 -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user script = /usr/sbin/smbldap-userdel "%u"
delete group script = /usr/sbin/smbldap-groupdel "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
passwd program = /usr/sbin/smbldap-passwd -u %u
[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = yes
writable = no
browseable = no
[profiles]
path = /home/export/profile
browseable = no
writable =yes
profile acls = yes
create mask = 0700
directory mask = 0700
guest ok = yes
[compta]
comment = Partage Compta
path = /home/compta
valid users = @gr_compta
read only = No
browseable = yes
writable = yes
[homes]
comment = Répertoire personnel de %U
valid users = %S
create mask = 0700
directory mask = 0700
browseable = No
writable = yes
[Commun]
comment = Repertoire commun
browseable = Yes
writeable = Yes
public = yes
path = /home/Commun
Ne pas oblier de donner le mot de passe LDAP à samba :
smbpasswd -w MDPLDAPADMIN
Création des repertoires :
/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/Commun : Partage commun à tous les utilisateurs du domaine
/home/lenomdelutilisateur : Répertoire personnel de l'utilisateur
Création des répertoires:
mkdir -p /home/netlogon mkdir -p /home/export/profile mkdir -p /home/Commun
Démmarer ldap :
/etc/init.d/slapd start
Puis peupler l'annuaire :
smbldap-populate -a root
Redémararer le serveur (conseillé) ou relancer les daemons :
/etc/init.d/slapd stop /etc/init.d/samba restart /etc/init.d/slapd start
Configuration de Gosa
Creer le dossier :
mkdir /etc/gosa/vacation chmod 777 /etc/gosa/vacation/
Dans l'interface web de gosa dans préférence séléctionner toutes les propriétés et modifier :
SambaSID : SID du PDC accountPrimaryAttribute : uid à la place de cn sambaMachineAccountRDN : cn=computers,
Création d’un compte utilisateur
creer utilisateur et activer l'extension UNIX
Créer un répertoire personnel pour chaque utilisateur lors d'une ouverture de session
http://damstux.free.fr/wiki/index.php?title=Tips_Samba_LDAP Dans la section [homes] de smb.conf
on ajoute:
/usr/local/sbin/mkhomedir.sh %U
Ca doit donner ca donc:
[homes] comment = Home Directories path = /home/%U root preexec = /usr/local/sbin/mkhomedir.sh %U browseable = No writeable= yes
Ensuite on créé le fichier /usr/local/sbin/mkhomedir.sh
#!/bin/bash if [ ! -e /home/$1 ]; then mkdir /home/$1 chown $1:"Domain Users" /home/$1 chmod 700 /home/$1 fi exit 0
On donne ensuite les droits:
chown root:root /usr/local/sbin/mkhomedir.sh chmod +x /usr/local/sbin/mkhomedir.sh
TIPS
test :
testparm : test le fichier smb.conf pdbedit -L : lister les uilisateurs se trouvant dans la base samba pdbedit -L -v -u USERGOSA smbclient -U pbrun //192.168.37.153/pbrun smbldap-groupshow gr_compta (au niveau samba) getent passwd, getent group (au niveau unix)
reférences :
http://doc.fedora-fr.org/wiki/Configuration_d%27un_serveur_d%27authentification_Openldap_Samba
https://oss.gonicus.de/labs/gosa/wiki/DocumentationInstallingPluginInstallation
http://damstux.free.fr/wiki/index.php?title=PDC_Samba_LDAP