>>> 10/11/2014, plusieurs mises à jour <<<
>>> 7/12/2014, installation de Thunderbird <<<
>>> 21/12/2014, installation de Roundcube 1.04 <<<
>>> 3/8/2015, restauration des données de Xeams <<<
>>> 03/11/2017, refonte des procédures avec Xeams 6.1, QmailAgent, Roundcube, RainLoop, Thunderbird et Bailkal <<<
>>> 11/02/2018, résolution du problème de connexion au serveur Xeams avec Roundcube <<<
Qnap n'édite pas de solution pour installer un serveur de messagerie. Cela ne veut pas dire que c'est impossible. Le QPKG Xeams, maintenu par Synametrics est fonctionnel et disponible dans App Center. Pour l'anecdote, j'ai aussi testé le serveur Citadel sur mon NAS et il fonctionne. Xeams reste la meilleur solution car il est mis à jour très régulièrement. Hélas, il ne suffit pas de quelques clics pour avoir son petit serveur confidentiel pour faire un pied de nez aux fournisseurs de renom. Il y a de nombreuses embûches que ce tutoriel vous propose de surmonter.
L'information ci-après est limitée à mes besoins et n'est pas destinée à gérer un gros volume de comptes utilisateurs et de messages : une configuration que je ne testerai pas! Après des mois d'utilisation, je ne déplore pas d'incident notable.
J'utilise le NAS TS-559 QTS 4.2.6. Je présente comment procéder pour activer la sécurité SSL par la mention "En 2e lecture" que vous éviterez d'appliquer en première lecture afin de vérifier rapidement que le serveur Xeams fonctionne.
Certaines parties supposent que vous possédez Qbaikal installé et configuré (paquet maintenu par Qoolbox). Ce tutoriel ne suppose pas que Xeams et les clients de messagerie soient installés dans le même NAS. Par exemple, j'ai recyclé mon bon vieux TS-559 en serveur Xeams et mes clients de messagerie sont sur un TS-653. J'aime bien l'idée que les attaques des serveurs SMTP et IMAP soient canalisées par un serveur dédié.
Ce tutoriel est tout de même moins long qu'il n'y paraît : 4 clients de messagerie sont présentés ici et il en suffit d'un seul pour vos besoins. Plus d'excuse pour ne pas y trouver votre bonheur!
Table des matières
Partie 1 : Procédure minimale avec Xeams
Partie 2 : Informations et réglages supplémentaires
Partie 3 : Sauvegarde et restauration des données de Xeams
Partie 4 : Roundcube
Partie 5 : Mozilla Thunderbird
Partie 6 : QmailAgent
Partie 7 : RainLoop
Partie 8 : Configurer Apache
Partie 9 : Iphone, Android et compagnie ...
Conclusion : le mot de la fin
Il y a sans doute bien des corrections à faire et je mettrai à jour. Trêve de bavardage, commençons ...
Partie 1 : Procédure minimale avec Xeams
1. Les prérequis.
Créez un nom de domaine ou de sous-domaine auprès d'un fournisseur de nom de domaines : il en existe plusieurs qui sont gratuits. Puis ajoutez un enregistrement de type A et un autre de type MX. Si vous ne créez pas d'enregistrement MX, vous pourrez tout de même envoyer des messages (mais pas en recevoir).
Installez le QPKG JRE 8.x et activez le serveur MySQL dans l'administration du NAS.
Ouvrez le port 80 de votre routeur pour l'adresse IP du NAS. La documentation indique que c'est nécessaire pour les mises à jour de Xeams.
En seconde lecture il faudrait essayer de refermer ce port si vous ne voulez ou ne pouvez l'utiliser, surtout si vous ne souhaitez pas être référencé par les moteurs de recherche.
2. Installation de Xeams
Installez le QPKG Xeams et ouvrez son interface. Suivez les instructions en choisissant Stand-alone server comme type de serveur et indiquez votre nom de (sous-)domaine.
N'essayez pas d'utiliser le serveur Xeams en l'état mais cliquez sur le menu Home. Cliquez ensuite sur le bouton Check for updates (à droite de la page) et procédez à la mise à jour.
Le serveur Xeams redémarre ... Reconnectez-vous à l'interface (http://IPNAS:5272).
3. Allez dans le menu Server Configuration/Server Configuration, saisissez votre adresse de courrier (une que vous possédez déjà) et sauvegardez. Xeams enverra d'éventuels messages d'alerte à cette adresse. Ne changez pas les autres paramètres (sauf si vous savez ce que vous faîtes).
4. Accédez aux paramètres de votre routeur et ouvrez le port 25.
En 2e lecture, ouvrez les ports 465, 993 et 995. Vous pouvez aussi ouvrir les ports 110 et 143 mais c'est déconseillé sauf pour comprendre ce qui ne fonctionne pas. Sauvegardez.
Ouvrez votre navigateur et cherchez un site bidule truc pour tester les ports. Testez le port 25 de votre adresse IP attribuée par votre fournisseur d'accès. Si le test échoue et que vous êtes sûr que votre matériel n'en est pas la cause (routeur, pare-feu, serveur Xeams démarré), c'est que votre fournisseur internet bloque ce port. Inutile d'aller plus loin, vous pouvez remballer vos affaires.
Explication : les serveurs de messageries communiquent entre eux, en standard, par le port 25. Si vous voulez communiquer avec ces serveurs sur la planète depuis votre serveur Xeams, vous devez utiliser ce port (quoique certains serveurs en active d'autres qui ne sont pas standards mais cela limite beaucoup l'espace de communication et c'est peu utilisable). La plupart des fournisseurs internet bloquent ce port pour lutter contre les spams. Mais parfois une formule d'abonnement ou un arrangement avec le fournisseur permet de débloquer ce port. Cela peut être par l'attribution d'une adresse IP fixe.
5. Allez dans le menu Server Configuration/SMTP Server Configuration. Normalement, tout est correctement configuré (SMTP sur le port 25).
En 2e lecture:
Je n'ai pas réussi à utiliser le certificat Synametrics autosigné dans Xeams bien que cela soit théoriquement possible. Avec ce certificat, les serveurs SMTP, POP3 et IMAP sécurisés n'ont jamais voulu démarrer dans mon TS-559, QTS 4.2.6.
Si vous y parvenez de votre côté, cela vous évitera de gérer un certificat régulier dans le cas où cela ne vous intéresse d'en posséder un. Cependant, nul doute que la distribution des messages par Xeams sera plus efficace avec un vrai certificat que les autres serveurs de la planète pourront authentifier.
Vous pouvez utiliser les certificats du NAS si vous en avez obtenu mais vous devrez les convertir en fichiers .pem pour construire le certificat Synametrics (voir procédure plus bas).
Je présente ici une méthode minimaliste d'obtention du certificat avec LetsEncrypt.
a) Optionnel : installer LetsEncrypt QPKG (version 0.5 pour mon TS-559, merci QoolBox)
B) Dans le panneau de configuration du NAS allez dans Réglages de base,
- choisir un port système : 8080 par exemple.
- cocher Activer les connexions sécurisées (port 443)
- entrer dans l'interface de votre routeur:
- ouvrir le port 443
- ouvrir le port 80 et le rediriger vers le port 8080
- la documentation indique qu'il faut ouvrir le port 53 en udp.
En console SSH du NAS créer le fichier suivant :
et y copier le code suivant :
puis exécuter :
c) Créer un certificat LetsEncrypt:
Créez, installez votre certificat dans le NAS avec LetsEncrypt par exemple et récupérez ces fichiers :
cert.pem
chain.pem
privkey.pem
fullchain.pem
Si l'autorité de certification produit d'autres types de fichier, il vous faudra au moins obtenir privkey.pem et fullchain.pem par une méthode de conversion documentée sur l'internet.
Ou bien, sans le QPKG LetsEncrypt, il est possible d'obtenir un certificat LetsEncrypt en allant ici : https://www.sslforfree.com
Suivez les instructions. Copier-coller la clé privée dans un fichier private.key; le certificat et CA Bundle dans cet ordre dans un fichier fullchain.pem.
Attention : conservez toutes les lignes BEGIN et END.
Vous pouvez ensuite entrer manuellement le certificat, la clé privée et le certificat root et intermédiaire dans QTS du Qnap (panneau de contrôle/Sécurité/Clé privée et certificat)
d) Testez la connexion sécurisée :
https://MonDomaine.com (remplacez MonDomaine.com par le nom de votre domaine)
Vous devriez voir votre page de connexion.
Note : il arrive que certains fournisseurs ne prennent pas en charge l'appel de votre nom de domaine depuis votre propre connexion internet (appel circulaire). Vous devrez alors tester avec une machine extérieur à votre réseau.
e) Il faut maintenant utiliser OpenSSL pour convertir ces fichiers en certificat Synametrics.
Pour cela vous devez installer une version de OpenSSL sur votre machine de travail (il n'est pas nécessaire que ce soit le NAS).
En console, allez dans le répertoire contenant les fichiers .pem et si vous avez créé le fichier private.key, tapez:
puis exécutez:
Choisissez le mot de passe demandé et retenez-le.
Copiez le certificat Synametrics dans votre NAS, disons /share/Public par la méthode que vous voulez.
De nouveau en console SSH du NAS, copiez ce fichier dans Xeams:
où Volume_NAS dépend du modèle de votre NAS (HDA_DATA, CACHEDEV1_DATA, MD0_DATA, ...).
Dans votre navigateur allez à http://NAS_IP:5272 et connectez-vous. NAS_IP est l'adresse IP locale de votre NAS.
Allez dans le menu Server Configuration/SMTP Configuration.
Dans la phrase "IMPORTANT", cliquez sur le lien "configure SSL"
Dans la section Keystore Parameters, entrez le mot de passe que vous avez retenu plus haut et choisissez PKCS12 comme Keystore type.
Cliquez sur Save.
f) Dans Xeams, menu Server Configuration/Server Configuration/Advanced :
Dans le champs Smtp HELO domain, saisissez la valeur : MonDomaine.com
g) Facultatif :
Allez dans le menu Server Configuration/Server Configuration et entrez un numéro de port dans Secure Web Server Port : 4430 par exemple.
Ouvrez ce port dans votre routeur pour votre NAS.
6. SMTP, IMAP, POP3
Redémarrer Xeams : cliquez sur le bouton Server Options et sélectionnez Restart Server. Reconnectez-vous à Xeams (http://IP_NAS:5272)
Si tout va bien, les fenêtres SMTP, POP3 et IMAP server status indiquent l'état "RUNNING" (Si POP3 ne fonctionne pas, ce n'est pas critique).
En 2e lecture :
a) Reconnectez-vous par exemple en mode sécurisé :
https://NAS_IP:4430
Votre navigateur va "broncher" car votre certificat ne correspond pas à cette adresse https. Comme vous êtes dans votre réseau local vous pouvez temporairement accepter une exception.
Ici, l'intérêt est plutôt d'accéder à votre interface Xeams depuis l'extérieur en mode sécurisé: https://MonDomaine.com:4430
B) Dans la fenêtre POP3 server status, cliquez sur le lien Configure et saisissez 995 dans le champs SSL, sauvegardez.
c) Dans la fenêtre IMAP serveur status ... c'est 993.
7. Dans le menu Server Configuration / Diagnostic Check Inbound, les voyants qui s'affichent devraient être tous au vert.
Connectez-vous à la page de votre fournisseur de noms de domaine et ajoutez un enregistrement SPF :
v=spf1 VotreIPinternet/32
(ex : v=spf1 321.123.888.55/32)
Seulement en connexion Xeams sécurisée (https) :
Allez dans Server Configuration / Diagnostic Check Outbound. Dans le champs Domain Name, inscrivez votre nom de domaine et appuyez sur Submit
8. Dans le menu Server Configuration / Manage Users, ajouter un utilisateur et saisissez une adresse courriel à activer de la forme : abc@MonDomaine.com
Choisissez un mot de passe de préférence fort (le protocole IMAP sous Xeams ne semble pas s’accommoder des mots de passe courts). Les autres paramètres peuvent rester inchangés. Sauvegardez.
Note: Xeams est installé en version Enterprise pendant 30 jours après quoi il passe en version Community c'est à dire que les options de filtrage des messages sont désactivées tant qu'une licence n'est pas acquise. Mais tout le reste fonctionne. Pour vous protéger, je vous déconseille de créer des adresses du type info@MonDomaine.com, admin@MonDomaine.com, martin@MonDomaine.com, ... car ces noms d'utilisateur sont systématiquement sollicités et peuvent fragiliser la sécurité de Xeams. Pour attirer les filous qui les utilisent, le menu Filter Management/Honey Pot est fait pour ça.
9. Pour recevoir et envoyer, il ne reste plus qu'à configurer ce compte utilisateur dans votre client de messagerie (Thunderbird, Outlook, ... sur un ordinateur du réseau) en utilisant votre nouvelle adresse de courrier. Le port du protocole SMTP est le 25. Choisissez d'utiliser le protocole POP3 ou IMAP. Le port POP3 sera le 995 et le port IMAP sera le 993. Dans le réseau local, vous pouvez aussi utiliser les ports 110 et 143 respectivement. Important : en local, le nom d'hôte du serveur de messagerie (Xeams) est 192.168.x.y !!!
Attention! Sous Thunderbird, à l'étape de création d'un nouveau compte, le test des ports 993 ou 995 échoue (pourquoi? bonne question!), laisser 143 ou 110. Lorsque le compte est créé, éditer les réglages des serveurs SMTP et IMAP ou POP3 puis passer en SSL. Enregistrez.
10. Dans l'interface Xeams, les menus Server Configuration/Manage Alerts et Tools/View logs sont très utiles pour comprendre ce qui ne va pas.
11. Testez votre boîte de courrier personnalisée! En console SSH, netstat -l vous indiquera si les ports requis sont bien écoutés (extrait):
tcp 0 0 *:1025 *:* LISTEN
tcp 0 0 *:993 *:* LISTEN
tcp 0 0 *:995 *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *op-3 *:* LISTEN
tcp 0 0 *:imap2 *:* LISTEN
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:465 *:* LISTEN
tcp 0 0 *:5272 *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
(smtp : 25, pop-3 : 110, imap2 : 143, www : 80, mysql : 3306, 1025 voir partie 2)
Quelques tests : écrivez vers ou depuis votre nouvelle adresse. Tests réussi avec un compte Yahoo ou Gmail, deux serveurs de messagerie universitaires et une messagerie d'entreprise. J'ai aussi installé RainLoop, QmailAgent, Roundcube : je peux gérer toutes mes boîtes de courrier, celles de Xeams, Gmail, Yahoo. Plus lourd, mais intéressant : le client Thunderbird sous HD-Station ou avec le QPKG X-Desktop v2 de Philippe fonctionne à merveille. L'installation de ces clients de messagerie est détaillée plus loin.
Xeams a plein d'options intéressantes (des filtres, des listes, ...) à explorer.
Partie 2 : Informations et réglages supplémentaires
- Si vous souhaitez offrir des adresses de courrier à des personnes (de confiance de préférence), il y a de fortes probabilités qu'elles ne pourront pas interroger votre serveur Xeams avec leur client de messagerie si vous n'offrez que le port 25, qui n'est pas exploitable via la plupart des fournisseurs de service. Dans le menu Server Configuration/SMTP configuration vous pouvez définir un second port SMTP.
Entrez une valeur supérieure à 1024 et disponible (non utilisée par un autre service de votre réseau). Toute chose égale par ailleurs, le port SMTP à définir dans le compte de ce client de messagerie sera cette valeur. Vous devrez penser à ouvrir ce port dans votre routeur pour l'IP de votre NAS. Je n'ai pas testé ce second port SMTP.
- L'interface utilisateur ne propose pas de régler le fuseau horaire. Il faut le faire en console. Arrêtez le serveur Xeams. Aller dans .qpkg/Xeams/config, éditer wrapper.conf puis ajouter ce qui suit dans la section "# Java additional parameters" :
remplacer -0.00 par votre décalage horaire, -1.00, +1.00, -2.00, +2.00, ... Vous pouvez aussi remplacer GMT-0.00 par une expression explicite donnée à cette adresse (timezone ID) :
http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/ae/adrtzval.htm
Redémarrer Xeams (ou après le point suivant).
- La prise en charge des caractères accentués a longtemps été une faiblesse de Xeams (et c'est peut-être encore le cas). Aller dans .qpkg/Xeams/config, éditer wrapper.conf puis ajouter ce qui suit dans la section "# Java additional parameters" :
Ce paramètre permet la prise en compte des caractères latins accentués. Redémarrez Xeams.
- Dans le menu Tools de Xeams, Intrusion Detection vous permettra de traquer les connexions suspectes; indispensable.
- Xeams classe les messages en trois catégories : good, possible junk et junk. Lorsque vous testez les entrées/sorties des messages, les filtres par défaut de Xeams peuvent intercepter des courriers en les retenant dans "possible junk" et "junk". Pensez à surveiller le menu Messages Repository. Xeams intrègre une fonction d'apprentissage qui améliore ce classement avec le temps (et la patience).
- A vérifier : Dans le client de messagerie, pour les comptes IMAP du serveur Xeams, les anciens messages semblent avoir disparus subitement. Il n'en est rien : il suffit de redémarrer le serveur Xeams et tout rentre dans l'ordre. C'est peut-être corrigé dans les dernières versions de Xeams mais il faut du temps d'utilisation pour s'en rendre compte.
Partie 3 : Sauvegarde et restauration des données de Xeams
J'ai testé une sauvegarde des données de Xeams, simplement en copiant le contenu du répertoire /share/VolumeNAS/.qpkg/Xeams sur un disque externe de sauvegarde (c'est assez long car il y a une très grande quantité de petits fichiers).
Si vous avez à (ré)installer Xeams, suivez la procédure de la partie 1 jusqu'au point 2 (pas plus). Dans le centre d'applications du NAS, arrêtez le serveur Xeams. Copiez le contenu de la sauvegarde Xeams dans /share/VolumeNAS/.qpkg/Xeams. Démarrer le serveur Xeams dans le centre d'applications.
J'ai récupéré ainsi mes paramètres, mes messages et mes logs et tout semble fonctionner normalement.
Partie 4 : Roundcube
a) Télécharger la version 1.3.1 : https://roundcube.net/download/.
Vous trouverez le lien wiki pour les instructions d'installation.
Vous devez créer une base de données pour Roundcube (avec phpMyAdmin par exemple). Ayez en tête le login et le mot de passe de cette base de données.
Copiez le fichier téléchargé dans le répertoire Public de votre NAS.
En console SSH sur votre ordinateur :
(ou téléchargez les fichiers selon votre méthode à cette adresse : https://github.com/elm/Roundcube-SMTP-per-Identity-Plugin/)
Déplacer le répertoire identity_smtp dans le répertoire Public de votre NAS.
En console SSH :
b) Depuis votre navigateur : http://NAS_IP/roundcube/installer
Si vous utilisez SQL ou un autre serveur de base de données, la ligne correspondante devrait indiquer OK. Éventuellement, les lignes suivantes indiquent NOT AVAILABLE,
Intl:
PostgreSQL:
SQLite (v2):
SQL Server (SQLSRV):
SQL Server (DBLIB):
Cliquez sur NEXT.
Pour accroître la sécurité, il est conseillé de cocher ip_check. Dans la section Database setup,
- choisissez votre type de base de données,
- saisissez le nom de la base de données (roundcubemail, roundcube, ...),
- renseignez le login et le mot de passe.
Section IMAP Settings,
- default_host : MonDomaine.com (l'hôte par défaut ne sera pas utilisé dans ce tutoriel)
- default_port : 143 ou 993 de préférence,
- username_domain : MonDomaine.com,
- renseignez les champs xxx_mbox selon vos préférences.
Section SMTP Settings,
- smtp_server : MonDomaine.com (l'hôte par défaut ne sera pas utilisé dans ce tutoriel)
- default_port : 25 ou 465 de préférence.
Optionnellement, modifiez les paramètres de la dernière section.
Vous pouvez cocher le plugin identity_select.
Cliquez sur UPDATE CONFIG.
Comme demandé, téléchargez le fichier config.inc.php en cliquant sur le bouton Download et copiez-le à l'endroit indiqué.
Cliquez sur CONTINUE
À la section Check DB config, cliquez sur INITIALIZE ou UPDATE si ce bouton apparaît.
Si tout va bien, toutes les lignes devraient indiquer OK sauf la ligne Mimetype.
Téléchargez mime.types avec le lien proposé et copiez-le dans /share/Web/roundcube
c) En console SSH :
Placez cette ligne à la fin du fichier :
$config['mime_types'] = '/share/Web/roundcube/mime.types';
Si vous souhaitez accéder à plusieurs comptes IMAP, dans la section IMAP : remplacez la valeur de $config['default_host'] par (à titre d'exemple)
et dans la section SMTP, modifiez la variable $config['username_domain'] :
Dans la section PLUGINS, renseignez la variable $config['plugins'] :
Séparez les plugins par une virgule, ajoutez 'identity_smtp' dans la fonction array comme dans l'exmple ci-dessus.
En 2e lecture, si vous rencontrez le message "Erreur de connexion au serveur de stockage", essayez à nouveau en ajoutant cette section à la fin du fichier config.inc.php :
Sauvegardez.
d) Renommez le répertoire "installer" :
e) Dans votre navigateur, allez à http://NAS_IP/roundcube et si tout se passe bien vous obtenez une invite de connexion.
Vous pouvez vous identifier sur un compte distant (Gmail, Yahoo!, ...) et il n'est pas nécessaire d'entrer l'adresse courriel complète pour le login mais choisissez bien le bon serveur. Cependant, pour se connecter au serveur Xeams, le nom d'utilisateur est l'adresse complète (oui, c'est dommage).
f) Lorsque vous êtes connecté à votre compte, vous pouvez gérer vos identités afin d'entrer les paramètres du serveur SMTP de vos comptes courriel distants :
- cliquez sur Paramètres,
- cliquez sur Identités,
- sélectionnez l'identité déjà présente,
- décochez "Définir par défaut",
- décochez "Utiliser le serveur SMTP par défaut",
- renseignez les 4 champs suivants (sans oublier ssl:// dans le champ "IP du serveur" pour une connexion SSL, port 465),
Valeurs de "IP du serveur":
192.168.x.y (port 25), si Roundcube est installé sur une machine dans le même réseau local que la machine Xeams ayant l'IP 192.168.x.y
ssl://MonDomain.com (port 465), si Roundcube est installé sur une machine qui n'est pas dans le même réseau local que la machine Xeams
ssl://192.168.x.y ... ne fonctionne pas (j'ignore pourquoi)
Sauvegardez et testez!
g) Déconnectez-vous, reconnectez-vous sur un autre compte et configurez votre identité de la même façon.
Enfin, si tout fonctionne comme prévu, supprimez le répertoire /share/Web/roundcube/installer_old par sécurité.
h) Le plugin CardDav pour la synchronisation avec Baikal
Depuis la console de votre ordinateur :
Télecharger CardDav 2.0.4 à cette adresse : https://github.com/blind-coder/rcmcarddav/releases/download/v2.0.4/carddav-2.0.4.tar.bz2
Transférer ce fichier compressé dans /share/Public de votre NAS
Dans File Station, décompressez ce fichier dans le répertoire Public.
En console SSH du NAS :
Vous pouvez éditer ce fichier pour accéder à la configuration de CardDav
Il faut mettre à jour le fichier carddav.php (correction du bogue 186):
Aller à la page https://github.com/blind-coder/rcmcarddav/commit/e33a435965264fe3d09753bdb75c8846f1227f91#diff-647fa5916c803c5b968c1e5921781d05L502
Cliquez sur le bouton View
Copiez tout le code php dans le presse-papier
En console SSH du NAS:
Collez le contenu du presse-papier
Sauvegardez.
Modifier la section PLUGINS pour ajouter carddav comme dans l'exemple suivant :
Sauvegardez.
Ouvrez http://NAS_IP/roundcube/ dans votre navigateur
Connectez-vous, cliquez sur Paramètres et allez dans le menu Préférences.
Cliquez sur CardDav
Remplissez le formulaire. Saissez Nom d'utilisateur, mot de passe d'accès au carnet de Baikal puis l'URL du carnet :
http://IP_NAS/baikal/card.php/addressbooks/no_geek/default/
IP_NAS et no_geek sont à remplacer par l'IP de votre NAS et no_geek par votre nom d'utilisateur dans Baikal.
Cliquez sur Enregistrer et attendez ...
Lorsque la synchronisation est terminée, cliquez sur le bouton Carnet et ouvrez votre carnet d'adresses.
Ouf! c'est fini pour Roundcube.
Les avantages :
- RoudCube est activement maintenu,
- Permet de se connecter à plusieurs serveurs de messagerie,
- Gère la synchronation de contacts avec le plugin carddav.
Les moins :
- Difficile à installer,
- Interface à moderniser.
Partie 5 : Mozilla Thunderbird
Thunderbird offre un environnement complet avec carnet d'adresses, filtres d'importation et archivage.
a) Téléchargez Thunderbird pour HDStation maintenu par Qoolbox et installez-le.
Vous pouvez maintenant lancer Thunderbird à partir de HDStation.
b) Si vous n'avez pas HDStation ni de possibilité de virtualisation d'un système pour accueillir Thunderbird, vous aurez besoin d'installer le QPKG de Philippe :
http://forum.qnapclub.fr/files/file/109-qpkg-x-desktop-x86-official-v2-aka-ubuntu-chr/
Si vous ne trouvez pas ce paquet, demandez-le gentilment à Father_Mande actif sur le forum anglophone Qnap.
(pensez à changer le mot de passe vnc, en console ssh : u_bash puis vncpasswd)
Lorsque Ubuntu est installé, connectez-vous en ssh à votre NAS et entrez ces commandes:
Créez un dossier pour stocker le profil Thunderbird :
afin qu'il soit accessible par le gestionnaire de sauvegardes notamment.
(on doit pouvoir raffiner ces permissions)
Avec votre navigateur allez à 192.168.1.xyz/xdesktop/ ou avec Remmina ou autre (mode VNC), connectez-vous à 192.168.1.xyz:5910 (ou 5920).
- ouvrez la console mate (sur le bureau)
- thunderbird -ProfileManager
- créez un profil qui pointe vers /share/homes/qnapfr/nom_du_profil
- supprimez le profil default
- ouvrez thunderbird (aussi accessible par les menus)
- créez vos comptes
- testez
c) Maintenant que Thunderbird est installé ...
Démarrez Thunderbird et créez des comptes (voir aussi partie 1, point 9).
La toile regorge de tutoriels pour connecter Thunderbird à Baikal, servez-vous.
Les avantages :
- Thunderbird est complet, bien connu et familier,
- Ubuntu X-Desktop ne consomme pas de ressources CPU lorsqu'il est en sommeil,
- Profil facile à sauvegarder et à transférer vers une autre installation de Thunderbird.
Les moins :
- Gourmand en mémoire.
Partie 6: QmailAgent
a) Créez un répertoire partagé auquel les utilisateurs de messagerie auront des droits d'écriture. Ne pas utiliser le répertoire par défaut proposé dans le processus de configuration de QmailAgent.
b) Dans l'App Center, installez QmailAgent.
Démarrez QmailAgent dans le navigateur : http://NAS_IP/qmail/
Pour créez un compte utilisant votre serveur Xeams, à l'étape 1, cliquez sur l'icône IMAP.
Remplissez le formulaire en respectant ce qui suit :
- remplacez le répertoire /QmailAgent par celui que vous avez créé en a).
- pour les serveurs IMAP et SMTP, indiquez 192.168.x.y (IP de la machine Xeams) et sélectionnez SSL
A ce jour, pas de synchronisation possible entre QmailAgent et Baikal. Dommage.
Les avantages :
- QmailAgent est un QPKG officiel,
- Permet de se connecter à plusieurs serveurs de messagerie,
- Permet d'archiver les messages,
- Facile à installer
Les moins :
- Pas de synchronisation avec Baikal.
Partie 7: RainLoop
a) Téléchargez et installer manuellement le QPKG RainLoop maintenu par Qoolbox.
Accédez à l'administration de RainLoop avec votre navigateur : http://NAS_IP/RainLoop/?admin
Allez dans le menu Contacts et cochez Allow contacts sync (with external CardDAV server)
Allez dans le menu Domains. Cliquez sur Add domain.
Dans le champ Name : MonDomain.com
Dans les deux champs Server : 192.168.x.y (IP de votre machine Xeams)
Dans les deux listes Secure : SSL
Cliquez sur le bouton iTest pour vérifier la connexion aux serveurs IMAP et SMTP.
Cliquez sur Add.
Déconnectez-vous de la page d'administration et naviguez sur http://NAS_IP/RainLoop/
Entrez votre adresse courriel complète : no_geek@mondomaine.com (exemple).
Et tapez votre mot de passe.
b) Synchronisation des contacts
Cliquez sur le bouton en haut à droite et choisissez Settings.
Allez dans le menu Contacts
Cochez "Automatically add recipients to your address book" et "Enable remote synchronization"
Dans le champs "Addressbook URL" : http://NAS_IP/baikal/card.php/addressbooks/no_geek/default/
(remplacez "no_geek" par votre nom d'utilisateur dans Baikal)
Saissisez aussi les codes de cet utilisateur.
Cliquez sur Back et testez RainLoop ...
Les avantages :
- RainLoop est activement maintenu,
- Permet de se connecter à plusieurs serveurs de messagerie,
- Gère nativement la synchronation de contacts,
- Facile à installer.
Les moins :
- L'archivage est une lacune.
Partie 8: Configurer Apache
En console SSH du NAS :
Si vous voulez accéder à RainLoop et Roundcube depuis l'extérieur de votre réseau local ajoutez ces lignes dans le fichier /etc/app_proxy.conf
Sauvegardez et exécutez:
Vous devrez écrire un script exécuté après redémarrage du serveur pour que ces lignes survivent.
http://MonDomaine.com/RainLoop/ est la façon d'accéder à RainLoop depuis n'importe quelle machine hors de chez vous.
Même chose pour http://MonDomaine.com/roundcube
Spécifiez le port de votre NAS si nécessaire :
http://MonDomaine.com:8080/RainLoop/
http://MonDomaine.com:8080/roundcube/
Notez que le "/" à la fin est indispensable.
Partie 9: Iphone, Android et compagnie ...
Il faut entrer les paramètres de messagerie de Xeams à la main mais le tout fonctionne très bien avec les clients de messagerie des téléphones (testé sur un iphone et un appareil Android).
Vous devez ajouter un nouveau compte courriel dans les réglages de votre appareil autre que les hébergeurs courant.
Vous devrez renseigner :
- votre adresse courriel Xeams : no_geek@Mondomaine.com
- le nom d'hôte IMAP : MonDomaine.com
- votre login au compte Xeams (= votre adresse courriel complète)
- votre mot de passe d'accès au compte Xeams
- le type de connexion (Aucune, SSL, TLS) ou le port de communication IMAP
- le nom d'hôte SMTP et son type de connexion (Aucune, SSL, TLS) ou le port de communication SMTP
Conclusion
Vous êtes encore là? Chapeau! Goûtez maintenant votre récompense.
Vous avez maintenant une solution complète pour votre NAS, vos ordinateurs et vos appareils portables.
>>> 7/12/2014, installation de Thunderbird <<<
>>> 21/12/2014, installation de Roundcube 1.04 <<<
>>> 3/8/2015, restauration des données de Xeams <<<
>>> 03/11/2017, refonte des procédures avec Xeams 6.1, QmailAgent, Roundcube, RainLoop, Thunderbird et Bailkal <<<
>>> 11/02/2018, résolution du problème de connexion au serveur Xeams avec Roundcube <<<
Qnap n'édite pas de solution pour installer un serveur de messagerie. Cela ne veut pas dire que c'est impossible. Le QPKG Xeams, maintenu par Synametrics est fonctionnel et disponible dans App Center. Pour l'anecdote, j'ai aussi testé le serveur Citadel sur mon NAS et il fonctionne. Xeams reste la meilleur solution car il est mis à jour très régulièrement. Hélas, il ne suffit pas de quelques clics pour avoir son petit serveur confidentiel pour faire un pied de nez aux fournisseurs de renom. Il y a de nombreuses embûches que ce tutoriel vous propose de surmonter.
L'information ci-après est limitée à mes besoins et n'est pas destinée à gérer un gros volume de comptes utilisateurs et de messages : une configuration que je ne testerai pas! Après des mois d'utilisation, je ne déplore pas d'incident notable.
J'utilise le NAS TS-559 QTS 4.2.6. Je présente comment procéder pour activer la sécurité SSL par la mention "En 2e lecture" que vous éviterez d'appliquer en première lecture afin de vérifier rapidement que le serveur Xeams fonctionne.
Certaines parties supposent que vous possédez Qbaikal installé et configuré (paquet maintenu par Qoolbox). Ce tutoriel ne suppose pas que Xeams et les clients de messagerie soient installés dans le même NAS. Par exemple, j'ai recyclé mon bon vieux TS-559 en serveur Xeams et mes clients de messagerie sont sur un TS-653. J'aime bien l'idée que les attaques des serveurs SMTP et IMAP soient canalisées par un serveur dédié.
Ce tutoriel est tout de même moins long qu'il n'y paraît : 4 clients de messagerie sont présentés ici et il en suffit d'un seul pour vos besoins. Plus d'excuse pour ne pas y trouver votre bonheur!
Table des matières
Partie 1 : Procédure minimale avec Xeams
Partie 2 : Informations et réglages supplémentaires
Partie 3 : Sauvegarde et restauration des données de Xeams
Partie 4 : Roundcube
Partie 5 : Mozilla Thunderbird
Partie 6 : QmailAgent
Partie 7 : RainLoop
Partie 8 : Configurer Apache
Partie 9 : Iphone, Android et compagnie ...
Conclusion : le mot de la fin
Il y a sans doute bien des corrections à faire et je mettrai à jour. Trêve de bavardage, commençons ...
Partie 1 : Procédure minimale avec Xeams
1. Les prérequis.
Créez un nom de domaine ou de sous-domaine auprès d'un fournisseur de nom de domaines : il en existe plusieurs qui sont gratuits. Puis ajoutez un enregistrement de type A et un autre de type MX. Si vous ne créez pas d'enregistrement MX, vous pourrez tout de même envoyer des messages (mais pas en recevoir).
Installez le QPKG JRE 8.x et activez le serveur MySQL dans l'administration du NAS.
Ouvrez le port 80 de votre routeur pour l'adresse IP du NAS. La documentation indique que c'est nécessaire pour les mises à jour de Xeams.
En seconde lecture il faudrait essayer de refermer ce port si vous ne voulez ou ne pouvez l'utiliser, surtout si vous ne souhaitez pas être référencé par les moteurs de recherche.
2. Installation de Xeams
Installez le QPKG Xeams et ouvrez son interface. Suivez les instructions en choisissant Stand-alone server comme type de serveur et indiquez votre nom de (sous-)domaine.
N'essayez pas d'utiliser le serveur Xeams en l'état mais cliquez sur le menu Home. Cliquez ensuite sur le bouton Check for updates (à droite de la page) et procédez à la mise à jour.
Le serveur Xeams redémarre ... Reconnectez-vous à l'interface (http://IPNAS:5272).
3. Allez dans le menu Server Configuration/Server Configuration, saisissez votre adresse de courrier (une que vous possédez déjà) et sauvegardez. Xeams enverra d'éventuels messages d'alerte à cette adresse. Ne changez pas les autres paramètres (sauf si vous savez ce que vous faîtes).
4. Accédez aux paramètres de votre routeur et ouvrez le port 25.
En 2e lecture, ouvrez les ports 465, 993 et 995. Vous pouvez aussi ouvrir les ports 110 et 143 mais c'est déconseillé sauf pour comprendre ce qui ne fonctionne pas. Sauvegardez.
Ouvrez votre navigateur et cherchez un site bidule truc pour tester les ports. Testez le port 25 de votre adresse IP attribuée par votre fournisseur d'accès. Si le test échoue et que vous êtes sûr que votre matériel n'en est pas la cause (routeur, pare-feu, serveur Xeams démarré), c'est que votre fournisseur internet bloque ce port. Inutile d'aller plus loin, vous pouvez remballer vos affaires.
Explication : les serveurs de messageries communiquent entre eux, en standard, par le port 25. Si vous voulez communiquer avec ces serveurs sur la planète depuis votre serveur Xeams, vous devez utiliser ce port (quoique certains serveurs en active d'autres qui ne sont pas standards mais cela limite beaucoup l'espace de communication et c'est peu utilisable). La plupart des fournisseurs internet bloquent ce port pour lutter contre les spams. Mais parfois une formule d'abonnement ou un arrangement avec le fournisseur permet de débloquer ce port. Cela peut être par l'attribution d'une adresse IP fixe.
5. Allez dans le menu Server Configuration/SMTP Server Configuration. Normalement, tout est correctement configuré (SMTP sur le port 25).
En 2e lecture:
Je n'ai pas réussi à utiliser le certificat Synametrics autosigné dans Xeams bien que cela soit théoriquement possible. Avec ce certificat, les serveurs SMTP, POP3 et IMAP sécurisés n'ont jamais voulu démarrer dans mon TS-559, QTS 4.2.6.
Si vous y parvenez de votre côté, cela vous évitera de gérer un certificat régulier dans le cas où cela ne vous intéresse d'en posséder un. Cependant, nul doute que la distribution des messages par Xeams sera plus efficace avec un vrai certificat que les autres serveurs de la planète pourront authentifier.
Vous pouvez utiliser les certificats du NAS si vous en avez obtenu mais vous devrez les convertir en fichiers .pem pour construire le certificat Synametrics (voir procédure plus bas).
Je présente ici une méthode minimaliste d'obtention du certificat avec LetsEncrypt.
a) Optionnel : installer LetsEncrypt QPKG (version 0.5 pour mon TS-559, merci QoolBox)
B) Dans le panneau de configuration du NAS allez dans Réglages de base,
- choisir un port système : 8080 par exemple.
- cocher Activer les connexions sécurisées (port 443)
- entrer dans l'interface de votre routeur:
- ouvrir le port 443
- ouvrir le port 80 et le rediriger vers le port 8080
- la documentation indique qu'il faut ouvrir le port 53 en udp.
En console SSH du NAS créer le fichier suivant :
Code:
# vim /share/HDA_DATA/.qpkg/Cert/app_proxy_update.sh
et y copier le code suivant :
Code:
/etc/init.d/Qthttpd.sh restart
echo ProxyPass "/.well-known/" "http://127.0.0.1:80/.well-known/" retry=0 >> /etc/app_proxy.conf
/etc/init.d/thttpd.sh restart
puis exécuter :
Code:
# sh /share/HDA_DATA/.qpkg/Cert/app_proxy_update.sh
c) Créer un certificat LetsEncrypt:
Créez, installez votre certificat dans le NAS avec LetsEncrypt par exemple et récupérez ces fichiers :
cert.pem
chain.pem
privkey.pem
fullchain.pem
Si l'autorité de certification produit d'autres types de fichier, il vous faudra au moins obtenir privkey.pem et fullchain.pem par une méthode de conversion documentée sur l'internet.
Ou bien, sans le QPKG LetsEncrypt, il est possible d'obtenir un certificat LetsEncrypt en allant ici : https://www.sslforfree.com
Suivez les instructions. Copier-coller la clé privée dans un fichier private.key; le certificat et CA Bundle dans cet ordre dans un fichier fullchain.pem.
Attention : conservez toutes les lignes BEGIN et END.
Vous pouvez ensuite entrer manuellement le certificat, la clé privée et le certificat root et intermédiaire dans QTS du Qnap (panneau de contrôle/Sécurité/Clé privée et certificat)
d) Testez la connexion sécurisée :
https://MonDomaine.com (remplacez MonDomaine.com par le nom de votre domaine)
Vous devriez voir votre page de connexion.
Note : il arrive que certains fournisseurs ne prennent pas en charge l'appel de votre nom de domaine depuis votre propre connexion internet (appel circulaire). Vous devrez alors tester avec une machine extérieur à votre réseau.
e) Il faut maintenant utiliser OpenSSL pour convertir ces fichiers en certificat Synametrics.
Pour cela vous devez installer une version de OpenSSL sur votre machine de travail (il n'est pas nécessaire que ce soit le NAS).
En console, allez dans le répertoire contenant les fichiers .pem et si vous avez créé le fichier private.key, tapez:
Code:
# openssl rsa -in private.key -text > privkey.pem
puis exécutez:
Code:
# openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out synametrics.cert -name xeams
Choisissez le mot de passe demandé et retenez-le.
Copiez le certificat Synametrics dans votre NAS, disons /share/Public par la méthode que vous voulez.
De nouveau en console SSH du NAS, copiez ce fichier dans Xeams:
Code:
# cp /share/Public/synametrics.cert /share/Volume_NAS/.qpkg/Xeams/config
où Volume_NAS dépend du modèle de votre NAS (HDA_DATA, CACHEDEV1_DATA, MD0_DATA, ...).
Dans votre navigateur allez à http://NAS_IP:5272 et connectez-vous. NAS_IP est l'adresse IP locale de votre NAS.
Allez dans le menu Server Configuration/SMTP Configuration.
Dans la phrase "IMPORTANT", cliquez sur le lien "configure SSL"
Dans la section Keystore Parameters, entrez le mot de passe que vous avez retenu plus haut et choisissez PKCS12 comme Keystore type.
Cliquez sur Save.
f) Dans Xeams, menu Server Configuration/Server Configuration/Advanced :
Dans le champs Smtp HELO domain, saisissez la valeur : MonDomaine.com
g) Facultatif :
Allez dans le menu Server Configuration/Server Configuration et entrez un numéro de port dans Secure Web Server Port : 4430 par exemple.
Ouvrez ce port dans votre routeur pour votre NAS.
6. SMTP, IMAP, POP3
Redémarrer Xeams : cliquez sur le bouton Server Options et sélectionnez Restart Server. Reconnectez-vous à Xeams (http://IP_NAS:5272)
Si tout va bien, les fenêtres SMTP, POP3 et IMAP server status indiquent l'état "RUNNING" (Si POP3 ne fonctionne pas, ce n'est pas critique).
En 2e lecture :
a) Reconnectez-vous par exemple en mode sécurisé :
https://NAS_IP:4430
Votre navigateur va "broncher" car votre certificat ne correspond pas à cette adresse https. Comme vous êtes dans votre réseau local vous pouvez temporairement accepter une exception.
Ici, l'intérêt est plutôt d'accéder à votre interface Xeams depuis l'extérieur en mode sécurisé: https://MonDomaine.com:4430
B) Dans la fenêtre POP3 server status, cliquez sur le lien Configure et saisissez 995 dans le champs SSL, sauvegardez.
c) Dans la fenêtre IMAP serveur status ... c'est 993.
7. Dans le menu Server Configuration / Diagnostic Check Inbound, les voyants qui s'affichent devraient être tous au vert.
Connectez-vous à la page de votre fournisseur de noms de domaine et ajoutez un enregistrement SPF :
v=spf1 VotreIPinternet/32
(ex : v=spf1 321.123.888.55/32)
Seulement en connexion Xeams sécurisée (https) :
Allez dans Server Configuration / Diagnostic Check Outbound. Dans le champs Domain Name, inscrivez votre nom de domaine et appuyez sur Submit
8. Dans le menu Server Configuration / Manage Users, ajouter un utilisateur et saisissez une adresse courriel à activer de la forme : abc@MonDomaine.com
Choisissez un mot de passe de préférence fort (le protocole IMAP sous Xeams ne semble pas s’accommoder des mots de passe courts). Les autres paramètres peuvent rester inchangés. Sauvegardez.
Note: Xeams est installé en version Enterprise pendant 30 jours après quoi il passe en version Community c'est à dire que les options de filtrage des messages sont désactivées tant qu'une licence n'est pas acquise. Mais tout le reste fonctionne. Pour vous protéger, je vous déconseille de créer des adresses du type info@MonDomaine.com, admin@MonDomaine.com, martin@MonDomaine.com, ... car ces noms d'utilisateur sont systématiquement sollicités et peuvent fragiliser la sécurité de Xeams. Pour attirer les filous qui les utilisent, le menu Filter Management/Honey Pot est fait pour ça.
9. Pour recevoir et envoyer, il ne reste plus qu'à configurer ce compte utilisateur dans votre client de messagerie (Thunderbird, Outlook, ... sur un ordinateur du réseau) en utilisant votre nouvelle adresse de courrier. Le port du protocole SMTP est le 25. Choisissez d'utiliser le protocole POP3 ou IMAP. Le port POP3 sera le 995 et le port IMAP sera le 993. Dans le réseau local, vous pouvez aussi utiliser les ports 110 et 143 respectivement. Important : en local, le nom d'hôte du serveur de messagerie (Xeams) est 192.168.x.y !!!
Attention! Sous Thunderbird, à l'étape de création d'un nouveau compte, le test des ports 993 ou 995 échoue (pourquoi? bonne question!), laisser 143 ou 110. Lorsque le compte est créé, éditer les réglages des serveurs SMTP et IMAP ou POP3 puis passer en SSL. Enregistrez.
10. Dans l'interface Xeams, les menus Server Configuration/Manage Alerts et Tools/View logs sont très utiles pour comprendre ce qui ne va pas.
11. Testez votre boîte de courrier personnalisée! En console SSH, netstat -l vous indiquera si les ports requis sont bien écoutés (extrait):
tcp 0 0 *:1025 *:* LISTEN
tcp 0 0 *:993 *:* LISTEN
tcp 0 0 *:995 *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *op-3 *:* LISTEN
tcp 0 0 *:imap2 *:* LISTEN
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:465 *:* LISTEN
tcp 0 0 *:5272 *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
(smtp : 25, pop-3 : 110, imap2 : 143, www : 80, mysql : 3306, 1025 voir partie 2)
Quelques tests : écrivez vers ou depuis votre nouvelle adresse. Tests réussi avec un compte Yahoo ou Gmail, deux serveurs de messagerie universitaires et une messagerie d'entreprise. J'ai aussi installé RainLoop, QmailAgent, Roundcube : je peux gérer toutes mes boîtes de courrier, celles de Xeams, Gmail, Yahoo. Plus lourd, mais intéressant : le client Thunderbird sous HD-Station ou avec le QPKG X-Desktop v2 de Philippe fonctionne à merveille. L'installation de ces clients de messagerie est détaillée plus loin.
Xeams a plein d'options intéressantes (des filtres, des listes, ...) à explorer.
Partie 2 : Informations et réglages supplémentaires
- Si vous souhaitez offrir des adresses de courrier à des personnes (de confiance de préférence), il y a de fortes probabilités qu'elles ne pourront pas interroger votre serveur Xeams avec leur client de messagerie si vous n'offrez que le port 25, qui n'est pas exploitable via la plupart des fournisseurs de service. Dans le menu Server Configuration/SMTP configuration vous pouvez définir un second port SMTP.
Entrez une valeur supérieure à 1024 et disponible (non utilisée par un autre service de votre réseau). Toute chose égale par ailleurs, le port SMTP à définir dans le compte de ce client de messagerie sera cette valeur. Vous devrez penser à ouvrir ce port dans votre routeur pour l'IP de votre NAS. Je n'ai pas testé ce second port SMTP.
- L'interface utilisateur ne propose pas de régler le fuseau horaire. Il faut le faire en console. Arrêtez le serveur Xeams. Aller dans .qpkg/Xeams/config, éditer wrapper.conf puis ajouter ce qui suit dans la section "# Java additional parameters" :
Code:
wrapper.java.additional.2=-Duser.timezone=GMT-0.00
remplacer -0.00 par votre décalage horaire, -1.00, +1.00, -2.00, +2.00, ... Vous pouvez aussi remplacer GMT-0.00 par une expression explicite donnée à cette adresse (timezone ID) :
http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/ae/adrtzval.htm
Redémarrer Xeams (ou après le point suivant).
- La prise en charge des caractères accentués a longtemps été une faiblesse de Xeams (et c'est peut-être encore le cas). Aller dans .qpkg/Xeams/config, éditer wrapper.conf puis ajouter ce qui suit dans la section "# Java additional parameters" :
Code:
wrapper.java.additional.3=-Dfile.encoding=ISO-8859-1
Ce paramètre permet la prise en compte des caractères latins accentués. Redémarrez Xeams.
- Dans le menu Tools de Xeams, Intrusion Detection vous permettra de traquer les connexions suspectes; indispensable.
- Xeams classe les messages en trois catégories : good, possible junk et junk. Lorsque vous testez les entrées/sorties des messages, les filtres par défaut de Xeams peuvent intercepter des courriers en les retenant dans "possible junk" et "junk". Pensez à surveiller le menu Messages Repository. Xeams intrègre une fonction d'apprentissage qui améliore ce classement avec le temps (et la patience).
- A vérifier : Dans le client de messagerie, pour les comptes IMAP du serveur Xeams, les anciens messages semblent avoir disparus subitement. Il n'en est rien : il suffit de redémarrer le serveur Xeams et tout rentre dans l'ordre. C'est peut-être corrigé dans les dernières versions de Xeams mais il faut du temps d'utilisation pour s'en rendre compte.
Partie 3 : Sauvegarde et restauration des données de Xeams
J'ai testé une sauvegarde des données de Xeams, simplement en copiant le contenu du répertoire /share/VolumeNAS/.qpkg/Xeams sur un disque externe de sauvegarde (c'est assez long car il y a une très grande quantité de petits fichiers).
Si vous avez à (ré)installer Xeams, suivez la procédure de la partie 1 jusqu'au point 2 (pas plus). Dans le centre d'applications du NAS, arrêtez le serveur Xeams. Copiez le contenu de la sauvegarde Xeams dans /share/VolumeNAS/.qpkg/Xeams. Démarrer le serveur Xeams dans le centre d'applications.
J'ai récupéré ainsi mes paramètres, mes messages et mes logs et tout semble fonctionner normalement.
Partie 4 : Roundcube
a) Télécharger la version 1.3.1 : https://roundcube.net/download/.
Vous trouverez le lien wiki pour les instructions d'installation.
Vous devez créer une base de données pour Roundcube (avec phpMyAdmin par exemple). Ayez en tête le login et le mot de passe de cette base de données.
Copiez le fichier téléchargé dans le répertoire Public de votre NAS.
En console SSH sur votre ordinateur :
Code:
# git clone git://github.com/elm/Roundcube-SMTP-per-Identity-Plugin.git identity_smtp
(ou téléchargez les fichiers selon votre méthode à cette adresse : https://github.com/elm/Roundcube-SMTP-per-Identity-Plugin/)
Déplacer le répertoire identity_smtp dans le répertoire Public de votre NAS.
En console SSH :
Code:
# tar -xzf /share/Public/RCubeName_version.tar.gz -C /share/Web/
# mv /share/Web/RCube_folder /share/Web/roundcube
# cp -R /share/Public/identity_smtp /share/Web/roundcube/plugins
# chown -R admin:administrators /share/Web/roundcube
# chmod -R g+rw,o+rw /share/Web/roundcube
b) Depuis votre navigateur : http://NAS_IP/roundcube/installer
Si vous utilisez SQL ou un autre serveur de base de données, la ligne correspondante devrait indiquer OK. Éventuellement, les lignes suivantes indiquent NOT AVAILABLE,
Intl:
PostgreSQL:
SQLite (v2):
SQL Server (SQLSRV):
SQL Server (DBLIB):
Cliquez sur NEXT.
Pour accroître la sécurité, il est conseillé de cocher ip_check. Dans la section Database setup,
- choisissez votre type de base de données,
- saisissez le nom de la base de données (roundcubemail, roundcube, ...),
- renseignez le login et le mot de passe.
Section IMAP Settings,
- default_host : MonDomaine.com (l'hôte par défaut ne sera pas utilisé dans ce tutoriel)
- default_port : 143 ou 993 de préférence,
- username_domain : MonDomaine.com,
- renseignez les champs xxx_mbox selon vos préférences.
Section SMTP Settings,
- smtp_server : MonDomaine.com (l'hôte par défaut ne sera pas utilisé dans ce tutoriel)
- default_port : 25 ou 465 de préférence.
Optionnellement, modifiez les paramètres de la dernière section.
Vous pouvez cocher le plugin identity_select.
Cliquez sur UPDATE CONFIG.
Comme demandé, téléchargez le fichier config.inc.php en cliquant sur le bouton Download et copiez-le à l'endroit indiqué.
Cliquez sur CONTINUE
À la section Check DB config, cliquez sur INITIALIZE ou UPDATE si ce bouton apparaît.
Si tout va bien, toutes les lignes devraient indiquer OK sauf la ligne Mimetype.
Téléchargez mime.types avec le lien proposé et copiez-le dans /share/Web/roundcube
c) En console SSH :
Code:
# vi /share/Web/roundcube/config/config.inc.php
Placez cette ligne à la fin du fichier :
$config['mime_types'] = '/share/Web/roundcube/mime.types';
Si vous souhaitez accéder à plusieurs comptes IMAP, dans la section IMAP : remplacez la valeur de $config['default_host'] par (à titre d'exemple)
Code:
array(
'ssl://localhost' => 'ServeurXeams',
'ssl://imap.googlemail.com' => 'Gmail',
'ssl://imap.mail.yahoo.com' => 'Yahoo!'
);
et dans la section SMTP, modifiez la variable $config['username_domain'] :
Code:
$config['username_domain'] = array(
'ServeurXeams' => 'MonDomaine.com',
'Gmail' => 'gmail.com',
'Yahoo!' => 'yahoo.com'
);
Dans la section PLUGINS, renseignez la variable $config['plugins'] :
Code:
$config['plugins'] = array('plugin_1', 'plugin_2, 'identity_smtp');
Séparez les plugins par une virgule, ajoutez 'identity_smtp' dans la fonction array comme dans l'exmple ci-dessus.
En 2e lecture, si vous rencontrez le message "Erreur de connexion au serveur de stockage", essayez à nouveau en ajoutant cette section à la fin du fichier config.inc.php :
Code:
// IMAP socket context options
// See http://php.net/manual/en/context.ssl.php
// The example below enables server certificate validation
//$config['imap_conn_options'] = array(
// 'ssl' => array(
// 'verify_peer' => true,
// 'verify_depth' => 3,
// 'cafile' => '/etc/openssl/certs/ca.crt',
// ),
// );
$config['imap_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verfify_peer_name' => false,
),
);
Sauvegardez.
d) Renommez le répertoire "installer" :
Code:
# mv /share/Web/roundcube/installer /share/Web/roundcube/installer_old
e) Dans votre navigateur, allez à http://NAS_IP/roundcube et si tout se passe bien vous obtenez une invite de connexion.
Vous pouvez vous identifier sur un compte distant (Gmail, Yahoo!, ...) et il n'est pas nécessaire d'entrer l'adresse courriel complète pour le login mais choisissez bien le bon serveur. Cependant, pour se connecter au serveur Xeams, le nom d'utilisateur est l'adresse complète (oui, c'est dommage).
f) Lorsque vous êtes connecté à votre compte, vous pouvez gérer vos identités afin d'entrer les paramètres du serveur SMTP de vos comptes courriel distants :
- cliquez sur Paramètres,
- cliquez sur Identités,
- sélectionnez l'identité déjà présente,
- décochez "Définir par défaut",
- décochez "Utiliser le serveur SMTP par défaut",
- renseignez les 4 champs suivants (sans oublier ssl:// dans le champ "IP du serveur" pour une connexion SSL, port 465),
Valeurs de "IP du serveur":
192.168.x.y (port 25), si Roundcube est installé sur une machine dans le même réseau local que la machine Xeams ayant l'IP 192.168.x.y
ssl://MonDomain.com (port 465), si Roundcube est installé sur une machine qui n'est pas dans le même réseau local que la machine Xeams
ssl://192.168.x.y ... ne fonctionne pas (j'ignore pourquoi)
Sauvegardez et testez!
g) Déconnectez-vous, reconnectez-vous sur un autre compte et configurez votre identité de la même façon.
Enfin, si tout fonctionne comme prévu, supprimez le répertoire /share/Web/roundcube/installer_old par sécurité.
h) Le plugin CardDav pour la synchronisation avec Baikal
Depuis la console de votre ordinateur :
Télecharger CardDav 2.0.4 à cette adresse : https://github.com/blind-coder/rcmcarddav/releases/download/v2.0.4/carddav-2.0.4.tar.bz2
Transférer ce fichier compressé dans /share/Public de votre NAS
Dans File Station, décompressez ce fichier dans le répertoire Public.
En console SSH du NAS :
Code:
# tar -xvf /share/Public/carddav-2.0.4.tar
# cp /share/Web/roundcube/plugins/carddav/config.inc.php.dist /share/Web/roundcube/plugins/carddav/config.inc.php
Vous pouvez éditer ce fichier pour accéder à la configuration de CardDav
Code:
# vim /share/Web/roundcube/config/config.inc.php
Il faut mettre à jour le fichier carddav.php (correction du bogue 186):
Aller à la page https://github.com/blind-coder/rcmcarddav/commit/e33a435965264fe3d09753bdb75c8846f1227f91#diff-647fa5916c803c5b968c1e5921781d05L502
Cliquez sur le bouton View
Copiez tout le code php dans le presse-papier
En console SSH du NAS:
Code:
# rm /share/Web/roundcube/plugins/carddav/carddav.php
# vim /share/Web/roundcube/plugins/carddav/carddav.php
Collez le contenu du presse-papier
Sauvegardez.
Modifier la section PLUGINS pour ajouter carddav comme dans l'exemple suivant :
Code:
$config['plugins'] = array('identity_select', 'identity_smtp', 'carddav');
Sauvegardez.
Ouvrez http://NAS_IP/roundcube/ dans votre navigateur
Connectez-vous, cliquez sur Paramètres et allez dans le menu Préférences.
Cliquez sur CardDav
Remplissez le formulaire. Saissez Nom d'utilisateur, mot de passe d'accès au carnet de Baikal puis l'URL du carnet :
http://IP_NAS/baikal/card.php/addressbooks/no_geek/default/
IP_NAS et no_geek sont à remplacer par l'IP de votre NAS et no_geek par votre nom d'utilisateur dans Baikal.
Cliquez sur Enregistrer et attendez ...
Lorsque la synchronisation est terminée, cliquez sur le bouton Carnet et ouvrez votre carnet d'adresses.
Ouf! c'est fini pour Roundcube.
Les avantages :
- RoudCube est activement maintenu,
- Permet de se connecter à plusieurs serveurs de messagerie,
- Gère la synchronation de contacts avec le plugin carddav.
Les moins :
- Difficile à installer,
- Interface à moderniser.
Partie 5 : Mozilla Thunderbird
Thunderbird offre un environnement complet avec carnet d'adresses, filtres d'importation et archivage.
a) Téléchargez Thunderbird pour HDStation maintenu par Qoolbox et installez-le.
Vous pouvez maintenant lancer Thunderbird à partir de HDStation.
b) Si vous n'avez pas HDStation ni de possibilité de virtualisation d'un système pour accueillir Thunderbird, vous aurez besoin d'installer le QPKG de Philippe :
http://forum.qnapclub.fr/files/file/109-qpkg-x-desktop-x86-official-v2-aka-ubuntu-chr/
Si vous ne trouvez pas ce paquet, demandez-le gentilment à Father_Mande actif sur le forum anglophone Qnap.
(pensez à changer le mot de passe vnc, en console ssh : u_bash puis vncpasswd)
Lorsque Ubuntu est installé, connectez-vous en ssh à votre NAS et entrez ces commandes:
Code:
# u_bash
$ apt-get update
$ apt-get install thunderbird
$ exit
Créez un dossier pour stocker le profil Thunderbird :
Code:
# mkdir /share/homes/qnapfr (ou /share/homes/qnapen)
# mkdir /share/homes/qnapfr/nom_du_profil
afin qu'il soit accessible par le gestionnaire de sauvegardes notamment.
Code:
# u_bash
$ chmod 777 /share/homes/qnapfr/nom_du_profil
Avec votre navigateur allez à 192.168.1.xyz/xdesktop/ ou avec Remmina ou autre (mode VNC), connectez-vous à 192.168.1.xyz:5910 (ou 5920).
- ouvrez la console mate (sur le bureau)
- thunderbird -ProfileManager
- créez un profil qui pointe vers /share/homes/qnapfr/nom_du_profil
- supprimez le profil default
- ouvrez thunderbird (aussi accessible par les menus)
- créez vos comptes
- testez
c) Maintenant que Thunderbird est installé ...
Démarrez Thunderbird et créez des comptes (voir aussi partie 1, point 9).
La toile regorge de tutoriels pour connecter Thunderbird à Baikal, servez-vous.
Les avantages :
- Thunderbird est complet, bien connu et familier,
- Ubuntu X-Desktop ne consomme pas de ressources CPU lorsqu'il est en sommeil,
- Profil facile à sauvegarder et à transférer vers une autre installation de Thunderbird.
Les moins :
- Gourmand en mémoire.
Partie 6: QmailAgent
a) Créez un répertoire partagé auquel les utilisateurs de messagerie auront des droits d'écriture. Ne pas utiliser le répertoire par défaut proposé dans le processus de configuration de QmailAgent.
b) Dans l'App Center, installez QmailAgent.
Démarrez QmailAgent dans le navigateur : http://NAS_IP/qmail/
Pour créez un compte utilisant votre serveur Xeams, à l'étape 1, cliquez sur l'icône IMAP.
Remplissez le formulaire en respectant ce qui suit :
- remplacez le répertoire /QmailAgent par celui que vous avez créé en a).
- pour les serveurs IMAP et SMTP, indiquez 192.168.x.y (IP de la machine Xeams) et sélectionnez SSL
A ce jour, pas de synchronisation possible entre QmailAgent et Baikal. Dommage.
Les avantages :
- QmailAgent est un QPKG officiel,
- Permet de se connecter à plusieurs serveurs de messagerie,
- Permet d'archiver les messages,
- Facile à installer
Les moins :
- Pas de synchronisation avec Baikal.
Partie 7: RainLoop
a) Téléchargez et installer manuellement le QPKG RainLoop maintenu par Qoolbox.
Accédez à l'administration de RainLoop avec votre navigateur : http://NAS_IP/RainLoop/?admin
Allez dans le menu Contacts et cochez Allow contacts sync (with external CardDAV server)
Allez dans le menu Domains. Cliquez sur Add domain.
Dans le champ Name : MonDomain.com
Dans les deux champs Server : 192.168.x.y (IP de votre machine Xeams)
Dans les deux listes Secure : SSL
Cliquez sur le bouton iTest pour vérifier la connexion aux serveurs IMAP et SMTP.
Cliquez sur Add.
Déconnectez-vous de la page d'administration et naviguez sur http://NAS_IP/RainLoop/
Entrez votre adresse courriel complète : no_geek@mondomaine.com (exemple).
Et tapez votre mot de passe.
b) Synchronisation des contacts
Cliquez sur le bouton en haut à droite et choisissez Settings.
Allez dans le menu Contacts
Cochez "Automatically add recipients to your address book" et "Enable remote synchronization"
Dans le champs "Addressbook URL" : http://NAS_IP/baikal/card.php/addressbooks/no_geek/default/
(remplacez "no_geek" par votre nom d'utilisateur dans Baikal)
Saissisez aussi les codes de cet utilisateur.
Cliquez sur Back et testez RainLoop ...
Les avantages :
- RainLoop est activement maintenu,
- Permet de se connecter à plusieurs serveurs de messagerie,
- Gère nativement la synchronation de contacts,
- Facile à installer.
Les moins :
- L'archivage est une lacune.
Partie 8: Configurer Apache
En console SSH du NAS :
Code:
# /etc/init.d/Qthttpd.sh restart
Si vous voulez accéder à RainLoop et Roundcube depuis l'extérieur de votre réseau local ajoutez ces lignes dans le fichier /etc/app_proxy.conf
Code:
ProxyPass /RainLoop/ http://127.0.0.1:80/RainLoop/ retry=0
ProxyPass /roundcube/ http://127.0.0.1:80/roundcube/ retry=0
Sauvegardez et exécutez:
Code:
# /etc/init.d/thttpd.sh restart
Vous devrez écrire un script exécuté après redémarrage du serveur pour que ces lignes survivent.
http://MonDomaine.com/RainLoop/ est la façon d'accéder à RainLoop depuis n'importe quelle machine hors de chez vous.
Même chose pour http://MonDomaine.com/roundcube
Spécifiez le port de votre NAS si nécessaire :
http://MonDomaine.com:8080/RainLoop/
http://MonDomaine.com:8080/roundcube/
Notez que le "/" à la fin est indispensable.
Partie 9: Iphone, Android et compagnie ...
Il faut entrer les paramètres de messagerie de Xeams à la main mais le tout fonctionne très bien avec les clients de messagerie des téléphones (testé sur un iphone et un appareil Android).
Vous devez ajouter un nouveau compte courriel dans les réglages de votre appareil autre que les hébergeurs courant.
Vous devrez renseigner :
- votre adresse courriel Xeams : no_geek@Mondomaine.com
- le nom d'hôte IMAP : MonDomaine.com
- votre login au compte Xeams (= votre adresse courriel complète)
- votre mot de passe d'accès au compte Xeams
- le type de connexion (Aucune, SSL, TLS) ou le port de communication IMAP
- le nom d'hôte SMTP et son type de connexion (Aucune, SSL, TLS) ou le port de communication SMTP
Conclusion
Vous êtes encore là? Chapeau! Goûtez maintenant votre récompense.
Vous avez maintenant une solution complète pour votre NAS, vos ordinateurs et vos appareils portables.