evoadmin-mail/docs/INSTALL.md

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).