evoadmin-mail/docs/INSTALL.md

141 lines
4.9 KiB
Markdown
Raw Normal View History

2017-10-14 13:37:48 +02:00
# Pré-requis
2009-09-06 20:22:12 +02:00
* Apache
2017-10-14 13:37:48 +02:00
* PHP5 ou supérieur avec certains modules (MHASH, etc.)
2009-09-06 20:22:12 +02:00
* Si utilisé avec Samba, besoin du module PEAR Crypt/CHAP
* sudo
* LDAP
php5-mhash
2017-10-14 13:37:48 +02:00
# Instructions d'installation
2009-09-06 20:22:12 +02:00
2017-10-14 13:37:48 +02:00
* Récupérer les sources Git et les rendre accessible via Apache
2009-09-06 20:22:12 +02:00
2017-10-12 20:58:37 +02:00
* Copier config/connect.php et config/conf.php à partir de leur version "-dist"
2009-09-06 20:22:12 +02:00
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 :
2009-09-06 20:22:12 +02:00
--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
2017-10-14 13:37:48 +02:00
cp scripts/evoadmin.sh /usr/share/scripts/
chmod +x /usr/share/scripts/evoadmin.sh
2009-09-06 20:22:12 +02:00
--8<--
Il faut ensuite générer un mot de passe aléatoire à placer
2017-10-14 13:37:48 +02:00
dans /usr/share/scripts/evoadmin.sh et config/connect.php
2009-09-06 20:22:12 +02:00
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<--
2009-09-06 20:22:12 +02:00
* Configurer les applications (Postfix, Courier, Samba, etc.) pour utiliser les
paramètres en place (principalement LDAP).