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)