GOsa : PDC : Différence entre versions
De wikiGite
(→Installation) |
|||
Ligne 1 : | Ligne 1 : | ||
− | |||
Version du 3 mai 2012 à 06:18
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.
aptitude 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
# commenter les 4 ligne ci-dessus pour desactiver le profil itinerant
# et decommenter les deux lignes ci-dessous :
#logon path =
#logon home =
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
Apache (a tester)
Gosa
Configuration
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
Dans l'onglet samba cocher la case le compte n'expire jamais
Ajout dans le domaine
Linux
net join
Windows 7
Ajouter les clef de registre :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters] "DomainCompatibilityMode"=dword:00000001 "DNSNameResolutionRequired"=dword:00000000
Redemarer la machine avant de se connecter au domaine.
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
convertir les scripts de démarage :
aptitude install dos2unix
Puis :
unix2dos logon.bat
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