Mise en place serveur mail haute disponibilité

bsr ts le monde,
svp je viens vous demande de l’aide sur un projet qu’on ma confie de le faire c’est la mise en place d’une infrastructure de messagerie hautement disponible sous debian en virtuel machine (VmWare)

ils me demande d’utiliser les services et technologie suivante:
pacemaker, bind9, postifx, courier, ISCSI,DRBD, SElinux, Puppet

la topologie se compose:

  • d’un SAN pour le stockage ou les données doivent être disponible via NFS ou ISCSI et redondante en utilisant DRBD pour une meilleur sécurité
  • d’un serveur DNS isolée de l’infrastructure ou je dois créer chaque entre DNS nécessaire pour rendre l’infrastructure fonctionnelle
  • un serveur de messagerie hautement disponible capable de fournir ces protocole (IMAP, POP3, SMTP) en ajoutant des utilisateur chacun avec son alias l’adresse mail
  • web mail pour permettre a chaque utilisateur d’accéder a leurs mail de partout avec rainloop en utilisant un cache squid utilisant les puppet
  • sécurité: les services de messagerie ne doivent pas être en mesure d’accéder aux fichier ou de faire des opérations quelconque en créant des composants SELinux approprier pour faire respecter se strict de cette règle

ce que je demande si quelqu’un peut m’aider pour les étapes a faire pour chaque partie pour créer la topologie complète sachant que j’utilise VmWare et comment effectuer la liaison entre chaque machine
merci d’avance

Hum ton truc ressemble a un sujet de stage … ce n’est pas juste un serveur de courrier qu’il veulent mais un système globale.
Pour le serveur de mail tu as ça : isalo.org/wiki.debian-fr/In … des_quotas

Pour le reste c’est plus ou moins facile.
Les logiciels que tu as cités sont ils vraiment imposés ?
Pour la haute dispo il n’y a pas 36 solution, il te faut au minimum 2 serveurs.

[quote]…ou je dois créer chaque entre DNS nécessaire…[/quote]Il doit sans doute manquer un mot quelque part…

Bonjour Mimoza merci pour votre réponse

pour les logiciels cites oui ils sont imposes
pour les 2 serveur est ce que j’installe ts sur les 2 serveurs (ce que j’installe sur le 1 je l’installe sur le 2 )
le serveur DNS doit être isole

[quote=“medmed”]Bonjour Mimoza merci pour votre réponse

pour les logiciels cites oui ils sont imposes
pour les 2 serveur est ce que j’installe ts sur les 2 serveurs (ce que j’installe sur le 1 je l’installe sur le 2 )
le serveur DNS doit être isole[/quote]

L’isolation du service dns à mon avis exige soit une troisième machine (peut-être une machine déjà opérationnel) qui servira de master ou un découpage avec un master qui servira la zone vers l’extérieur et un second qui s’occupera de la partie LAN (Dnsmasq est assez simple pour ça).

Concernant bind9, personnellement j’utilise NSD qui reste assez proche au niveau configuration mais est à mon sens plus sécurisé en complément j’utilise Unbound pour la partie LAN (mais c’est très personnel).

Concernant la partie haute disponibilité, est-ce de la ‘HA’ active/active ou active/passive ?

Dans un cas Pacemaker agira comme une sonde qui permettra la bascule sur le serveur de secours.
Je ne vois pas de mention à Corosync, est-ce un oubli, leur installation sur Debian pour deux nodes est assez trivial.
http://blogduyax.madyanne.fr/haute-disponibilite-avec-corosync-et-pacemaker.html
Toujours dans ce même cas DRDB assurera la réplication de la donnée (essentiellement la configuration, la donnée brut étant sur le SAN) sur le slave depuis le master, il faut donc comprendre que les services seront présent sur les deux serveurs à l’identique (hormis l’IP).
Il faudra donc aussi gérer l’ VIP (IP virtuelle) qui sera finalement l’IP qui répondra depuis l’extérieur.

Le stockage s’effectuant sur un SAN, un seul stockage sera nécessaire et devra être monté à la fois sur le aster et le slave via au choix NFS ou de l’ISCSI, NFS n’a pas de très bonnes performances mais devrait largement convenir dans ce type de projet, l’ISCSI devrait quant à lui être un poil plus simple à mettre ne place (PS : ne pas oublier de tester la présence du montage de l’un comme de l’autre en cas de montage multiple.

Pour la partie Webmail, si tu doit impérativement utiliser que deux serveurs il te faudra forcément installer les services en double sur le master et le slave, le cache de squid sera quant à lui déjà pris ne compte dans la réplication par bloc de DRDB, je ne vois donc pas l’utilité d’une recettes à base de Puppet.
Pour finir sur cette partie j’utilise du Modoboa, donc je ne te saurai pas non plus d’une grande aide sur Rainloop qui de toute façon doit être assez simple à mettre ne place au vue du restant du taff à faire :whistle:

Puppet sera par contre l’un des seuls utilitaires ayant le droit d’appliquer des changement de configuration et à ce titre les règles SELINUX que tu devra appliquer (à l’instar des GPO sous Windows ou des configurations poussée de Apparmor) en conséquence.

Maintenant si tu pars sur de la ‘HA’ Actif/actif c’est autre chose et il ne me semble pas avoir vue de principe de loadbalancer qui manquerai cruellement à un bon fonctionnement de la chose.

En espérant qu’avec toute ces informations tu y vois un peux plus claire pour ton projet.

bsr,
merci pour vos réponse
j’ai crée le serveur DNS, le serveur mail et ils fonctionne correctement
j’ai d’autre question svp
est ce que vous me conseiller d’installer postfixadmin et rainloop sur le serveur mail lui même ou des les installer sur un serveur web a part ?
comment configurer postfixadmin pour qu’il se connecte sur la bdd mysql installer sur un autre serveur ?

Si tu as un serveur web (Apache / Nginx / …) distinct, c’est sur ce dernier qu’il faut les installer. Ensuite c’est juste dans la configuration que tu précise l’adresse IP du serveur ou se trouve la BDD (en oubliant pas de faire en sorte que la BDD écoute sur le réseau local).

La solution à ton problème se trouve ici : iredmail.org/

:wink:

Ça fait très pub/spam sans explication.

En regardant vite fait ça intègre toute une pile de logiciel pour monter son serveur mail mais ce n’est qu’une partie de ce qu’il veut mettre en place, il ne faut pas lire que le titre du fil :stuck_out_tongue:

[quote=“Mimoza”]Ça fait très pub/spam sans explication.

En regardant vite fait ça intègre toute une pile de logiciel pour monter son serveur mail mais ce n’est qu’une partie de ce qu’il veut mettre en place, il ne faut pas lire que le titre du fil :stuck_out_tongue:[/quote]

Oui bon ok j’avoue ne pas avoir pris le temps de lire tout le fil de discussion :unamused: mais il s’avère que à l’époque où je cherchais moi même à mettre en place un serveur de mail (vraiment) fonctionnel en suivant divers tutos à divers endroit on mix le tout et on ne trouve pas toutes les fonctionnalités avec un résultat pas forcément stable à moins de prendre le temps d’éplucher toute la documentation de toute la pile de logiciel nécessaire. iRedMail m’a permis de palier à se problème.

en tout cas je pense que même s’il n’intègre qu’une partie de ce qu’il souhaite mettre en place, je pense que c’est une très bonne base et qui permet de gagner beaucoup de temps sur une majeure partie.

De plus leur documentation est (je trouve) assez complète et explique clairement comment greffer d’avantage de fonctionnalités par la suite → iredmail.org/docs/index.html

[quote=“medmed”]bsr,
merci pour vos réponse
j’ai crée le serveur DNS, le serveur mail et ils fonctionne correctement
j’ai d’autre question svp
est ce que vous me conseiller d’installer postfixadmin et rainloop sur le serveur mail lui même ou des les installer sur un serveur web a part ?
comment configurer postfixadmin pour qu’il se connecte sur la bdd mysql installer sur un autre serveur ?[/quote]

Avant que le fil ne se fasse ‘hitjacking’

Tu as abordé le besoin de Haute disponibilité, je pensais avoir été claire mais une interrogation subsiste.
Que doit-tu maintenir en haute disponibilité ?

Si tu doit maintenir l’intégralité de l’installation en haute disponibilité, il te faut au minimum deux machines et installer l’intégralité des services sur les deux l’identique (deux machines minimum) et ce pour du service actif/passif.
Tu utilisera Pacemaker/Corosync pour gérer la bascule vers le serveur dit ‘esclave’ si il y a un problème sur le serveur principale.
Drdb te servira à répliquer bloc à bloc l’ensemble de tes données sur le noeud esclave.

En résumé en très rapide pour du service ‘actif/passif’:

  • installation d’un service DNS principale pour communiquer avec l’extérieur
  • installation d’un service DNS pour permettre la communication en interne ‘DMZ’
  • installation d’un service mail avec postfix et tout le bouzin nécessaire
  • installation de la base de donnée
  • mise ne place du service de bascule Corosync/Pacemaker
  • mise en place de la réplication bloc à bloc DRDB vers le slave
  • mise en place du service Web de gestion et de webmail
  • vérification que tout soit en ordre + teste de bascule

maintenant si tu peux jongler avec différents serveur ça n’a plus rien à voir.

Pour du ‘actif/actif’, le top serait de pouvoir compter sur un SAN (lui me^me en haute disponibilité ou pas) et de gérer les services sur les serveurs à l’aide d’une IP virtuelle qui permettra la répartition de charge en 50/50 ou autre sur les frontaux.
C’est plus compliqué et demande bien plus de moyen.
L’autre possibilité pour du service ‘actif/actif’ serait de s’appuyer sur un système de fichier répliquer et du cluster Galera pour la partie MySQL, mais là c’est encore une autre histoire.

Quoi qu’il arrive il te faut te poser la question que dois je redondé pour pallier à un problème ?

PS : au passage Ireadmail c’est bien mais je me vois mal monté après coup une haute disponibilité sur ce type d’installation :whistle:
C’est un bon script d’installation pour du serveur ‘standalone’ à qui veux utiliser du Roundcube, ce qui ne semble pas le cas ici :wink: