Scribe 1.0-separation
Un article de EoleWiki.
Sommaire |
Séparation des fonctionnalités du Scribe
- Serveur 1 : samba + ldap maître
- Serveur 2 : messagerie + listes + ldap esclave (+ spip)
Installation
Les fichiers zephir.eol des deux serveurs doivent être identiques, sauf pour :
- l'adresse IP
- le nom du serveur
On prépare les patches des deux serveurs de la manière suivante :
Patches sur le Serveur 1
- hosts : déclarer l'autre serveur
- server.5 : supprimer les services inutiles (mysql, exim, spamassassin, sympa, courier-imap)
- slapd.conf (voir le paragraphe concernant la réplication)
- exim.conf : rediriger les mails vers le serveur 2 (on peut par exemple remplacer exim par un autre logiciel comme ssmtp par exemple - voir plus loin -)
Patches sur le Serveur 2
- hosts : déclarer l'autre serveur
- server.5 : supprimer les services inutiles (smb, proftpd, nscd, cups, lpd)
- slapd.conf (voir le paragraphe concernant la réplication)
La réplication de l'annuaire
Mise en place
S1 et S2 représentent respectivement le Serveur 1 (maître) et le Serveur 2 (esclave)
S1+S2 : Arrêter les services LDAP
S2 : supprimer les fichiers de données LDAP :
rm -f /var/lib/ldap/*
S1 : copier les fichiers de données LDAP sur l'esclave
(rm -rf /var/lib/ldap/replica si déjà en place) scp /var/lib/ldap/* root@<serveur2>:/var/lib/ldap/
S2 : modifier les droits et démarrer
chown -R ldap.ldap /var/lib/ldap/ /etc/init.d/ldap start
S2 : créer le fichier replicator.ldif contenant :
dn: cn=replicator,o=gouv,c=fr
objectClass: person
sn: REPLICATOR SN
cn: replicator
userPassword: {SSHA}/mbFrt1f4wSbqjYgWvhUUWuOUO/pKCnF
S2 : créer utilisateur spécifique grâce au fichier créé
/usr/share/eole/backend/lance-ldif.py -f replicator.ldif /etc/init.d/ldap stop
S2 : modifier le fichier /etc/openldap/slapd.conf pour autoriser la réplication :
## pour chaque directive "access to" en premier de préférence ## by dn="cn=replicator,o=gouv,c=fr" write ## avant les index ## # définition de l'utilisateur autorisé à répliquer updatedn "cn=replicator,o=gouv,c=fr" updateref "ldap://<serveur1>:389"
S1 : déclaration de l'esclave auprès du maître
## avant les index ## # définition de l'esclave replica host=<serveur2> bindmethod=simple credentials=admin binddn="cn=replicator,o=gouv,c=fr" # fichier des logs pour la réplication replogfile /var/lib/ldap/replica/replogfile
S1 + S2 : Démarrer les services LDAP
Test
Faire une modification quelconque sur le maître et vérifier qu'elle a bien été répercutée sur l'esclave.
Si ça n'a pas marché, regarder les logs sur le maître dans le répertoire : /var/lib/ldap/replica/
- replogfile : liste des MAJ à effectuer
- slurpd.replog : informations sur les MAJ
- slurpd.status : MAJ réalisées
- *.rej : erreur dans les MAJ (elles peuvent éventuellement être rejouées avec slurpd -r)
Problèmes
Le mot de passe du replicator...
Exemple de configuration pour ssmtp sur Serveur 1
Utiliser ssmtp à la place d'exim :
rm /usr/sbin/sendmail ln -s /usr/sbin/ssmtp /usr/sbin/sendmail chmod u+x /usr/sbin/ssmtp
Directives pour /etc/ssmtp/ssmtp.conf :
root=postmaster mailhub=<serveur2>:25 rewriteDomain= hostname=<domaine_messagerie_etab>
Le problème de la gestion des listes de diffusion
A la première extraction
- copier /var/lib/sympa/expl de S1 vers S2
- sur S2 : chown -R sympa.sympa /var/lib/sympa/expl
- copier /etc/sympa/sympa.aliases de S1 vers S2
En exploitation
Interface Sympa : sur Serveur 2
EAD ???
Toutes les idées possibles :
- montage samba (smbmount sur S2) : pb en cas de reboot d'un des serveurs
- scp / ssh : pb gestion des droits
- utiliser rsync (appel en fin de script ou en cron)
- programmes appelés à distance : pb à écrire !
Propositions
- crontab :
0 2 * * * root rsync -e ssh /etc/mail/sympa_aliases root@serv-mess:/etc/mail/sympa_aliases 0 2 * * * root rsync -e ssh -r /var/lib/sympa/expl/ root@serv-mess:/var/lib/sympa/expl/
Autre problèmes à régler
Quel EAD utiliser ?
A priori, celui du Serveur 1, en supprimant éventuellement les diodes rouges.
Quel Webmail utiliser ?
Celui du Serveur 2. Problème : le changement des mots de passe ne fonctionne plus !
=> rediriger vers le Serveur 1 avec accueil de Horde modifié
Initialisation des comptes mails
A vérifier sur Serveur 2 :
chown mail.mail /home
Avec la config exim/ssmtp appropriée les mails d'ouverture sont bien renvoyés sur S2.
Changement du mot de passe élève
Le webmail n'est plus sur le serveur hébérgeant l'annuaire maître, donc plus de changement de mot de passe par l'interface.
Sur les machines 98, il est fort probable que le panneau de configuration soit désactivé pour les élèves.
La solution choisie est de réaliser un formulaire spécifique sur le serveur de fichier. Voir : Imp_password
On peut alors rediriger le changement de mot de passe dans horde vers cette page en écrasant le fichier /var/www/html/horde/passwd/index.php :
<?
header("Location:http://<serveur1>/imp/main.php");
?>
Liste des données sensibles
- /home : répertoires personnels + partages + courriers personnels
- les ACL sur /home : droits d'accès
- /var/lib/mysql : bases de données SYMPA + HORDE + SPIP
- /var/lib/sympa/expl : fichiers de configuration des listes de diffusion (@IP en dur ?)
- /var/lib/ldap : fichiers de données LDAP
- /etc/mail/sympa_aliases : alias des listes de diffusion pour Exim
- /root/zephir.eol (et patches éventuels)
