4.9 KiB
Pré-requis
- Apache
- PHP5 ou supérieur avec certains modules (MHASH, etc.)
- Si utilisé avec Samba, besoin du module PEAR Crypt/CHAP
- sudo
- LDAP
php5-mhash
Instructions d'installation
-
Récupérer les sources Git et les rendre accessible via Apache
-
Copier config/connect.php et config/conf.php à partir de leur version "-dist" et ajuster les paramètres
-
Ajouter le schéma suivant à LDAP : http://www.gcolpart.com/hacks/evolix.schema
-
Si utilisation de "Samba", c'est plus compliqué... le schéma doit être découpé :
evolix-inetorgperson.schema :
--8<-- attributetype ( 1.3.6.1.4.1.24331.22.1.3 NAME 'isActive' DESC 'an account is active or not' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.24331.22.1.8 NAME 'isAdmin' DESC 'boolean to verify if entry is admin for entry' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) --8<--
Puis ajouter au schéma "standard" inetorgperson.schema les attributs isActive et isAdmin à la classe d'object inetOrgPerson, ce qui doit donner :
--8<--
inetOrgPerson
The inetOrgPerson represents people who are associated with an
organization in some way. It is a structural class and is derived
from the organizationalPerson which is defined in X.521 [X521].
objectclass ( 2.16.840.1.113730.3.2.2
NAME 'inetOrgPerson'
DESC 'RFC2798: Internet Organizational Person'
SUP organizationalPerson
STRUCTURAL
MAY (
audio businessCategory
carLicense $ departmentNumber $
displayName employeeNumber
employeeType $ givenName $
homePhone homePostalAddress
initials $ jpegPhoto $
labeledURI mail
manager mobile
o $ pager $
photo roomNumber
secretary uid
userCertificate $
x500uniqueIdentifier $ preferredLanguage $
userSMIMECertificate userPKCS12
isActive $
isAdmin )
)
--8<--
Il faut aussi ajouter smbActive au schéma samba.schema :
--8<--
objectclass ( 1.3.6.1.4.1.7165.2.2.6 NAME 'sambaSamAccount' SUP top AUXILIARY
DESC 'Samba 3.0 Auxilary SAM Account'
MUST ( uid $ sambaSID )
MAY ( cn sambaLMPassword
sambaNTPassword $ sambaPwdLastSet $
sambaLogonTime sambaLogoffTime
sambaKickoffTime $
sambaPwdCanChange sambaPwdMustChange
sambaAcctFlags $
displayName sambaHomePath
sambaHomeDrive $ sambaLogonScript $
sambaProfilePath description
sambaUserWorkstations $
sambaPrimaryGroupSID sambaDomainName
sambaMungedDial $
sambaBadPasswordCount $ sambaBadPasswordTime $
sambaPasswordHistory sambaLogonHours
smbActive))
--8<--
Et, enfin, les attributs isActive et isAdmin peuvent être commentés dans le schéma evolix.schema et retirer de la classe d'objet mailAccount, ce qui doit donner :
--8<--
now in evolix-inetorgperson
#attributetype ( 1.3.6.1.4.1.24331.22.1.3 NAME 'isActive'
DESC 'an account is active or not'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
now in evolix-inetorgperson
#attributetype ( 1.3.6.1.4.1.24331.22.1.8 NAME 'isAdmin'
DESC 'boolean to verify if entry is admin for entry'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
doit egalement etre posixAccount + { person ou organizationalRole }
objectclass ( 1.3.6.1.4.1.24331.22.2.1 NAME 'mailAccount' SUP top AUXILIARY
DESC 'LDAP/Unix mail account or virtual account'
MUST ( uid $ mailacceptinggeneralid )
MAY ( accountActive authsmtpActive
quota
courierActive
webmailActive
vacationActive
vacationInfo vacationStart
vacationEnd
vacationForward
maildrop ) )
--8<--
Reste à réordonner l'inclusion des schémas dans le "slapd.conf" :
--8<--
Schema and objectClass definitions
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/evolix-inetorgperson.schema include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/evolix.schema include /etc/ldap/schema/samba.schema --8<--
- À l'exception du cas "mail virtuel", il est nécessaire de mettre en place un script de création :
--8<-- mkdir -p /usr/share/scripts cp scripts/evoadmin.sh /usr/share/scripts/ chmod +x /usr/share/scripts/evoadmin.sh --8<--
Il faut ensuite générer un mot de passe aléatoire à placer dans /usr/share/scripts/evoadmin.sh et config/connect.php
Et, enfin, permettre son lancement via sudo en ajustant le sudoers :
--8<-- User_Alias WWW = www-data Cmnd_Alias EVOADMIN = /usr/share/scripts/evoadmin.sh WWW ALL= NOPASSWD: EVOADMIN --8<--
- Configurer les applications (Postfix, Courier, Samba, etc.) pour utiliser les paramètres en place (principalement LDAP).