• Serveurs
  • [Discussion] Installation automatisée d'un serveur de mail sous Debian

Salut tous.
J'ai un petit problème lors de l'installation.
Je n'arrive pas à me connecter à l'adresse sous-domaine : postfixadmin.xxxx.tld ( j'ai mis évidement mon nom de domaine 🙂)
Il me dit : Page Web inaccessible
ERR_NAME_NOT_RESOLVED.
Je n'ai pas ce problème qu'avec l'install du serveur mail mais avec tous les sous-domaines en général sous nginx ?
une idée ?
Merci
Petit précision j'ai utiliser le script d'install seedbox de mon dédié avec la racine du www dans /base.
Dans ce cas il faut que tu passes par le tutoriel, le script n'est pas compatible avec celui d'ex-rat.
Ok , bon je vais essayer à la mano, en tout cas beau boulot ce script.
Sur mon nouveau serveur, je viens de le faire et je viens de voir par rapport à mon autre serveur qu'il faut retirer les " ".
Donc je suis maintenant à 8.5/10.
J'ai mon dmarc qui ne fonctionne pas
Votre message a échoué au test DMARC.
Une politique DMARC permet à un expéditeur de signaler que ces messages sont protégés par SPF et/ou DKIM et de donner les instructions à exécuter si aucune de ces deux méthodes d'authentifications est correcte. Veuillez vérifier que votre SPF et DKIM soient correctement configurés avant d'installer DMARC.
Vous n'êtes pas autorisé à envoyer un message avec cette addresse.
Je dois aussi attendre pour le dns car je viens de le refaire et donc je verrais si ça change quelque chose.

Votre adresse IP 195.154.xx.xx est associée au nom de domaine 195-154-xx-xx.rev.poneytelecom.eu.
Néanmoins votre message semble être envoyé de hostname.ndd.fr.
Comment faire pour renommer le rDNS?
J'ai fait le tuto mail auto apres une install du script auto de rutorrent et j'ai pas eu de soucis particulier c'est plus avec le tuto pour les certificat ssl que cela pose problème

Pour ton rdns il faut aller dans le console online directement
un mois plus tard
Bonjour,

Il y a quelque mois, j'ai utilisé ce super script pour monter ma messagerie, mais aujourd'hui, je souhaite migrer mon serveur de messagerie. Je vais donc réinstaller ma messagerie grâce à votre script. Mais voilà ne voulant pas perdre mes mails que faut-il que je sauvegarde, et qu'elle est la procédure pour les réimplanter ?

Merci d'avance
5 jours plus tard
Bonjour,

Je n'arrive plus à accéder à rainloop qui me renvoie l'erreur "can't connect to server" sur la page de login. Comme c'était une install fraiche j'ai exécuté le script de désinstallation, puis réinstallé mais j'ai toujours le même problème.

Un indice: lorsque j'ai voulu ajouter mon domaine dans l'interface d'admin de rainloop et je lance le teste, ça ne passe pas:



Voilà je sais pas trop ou regarder donc si quelqu'un a une piste je suis preneur! J'ai pas posté de logs car a priori y'a rien concernant ce problème mais si y'a besoin je les mettrai.



EDIT: J'ai réussi a refaire fonctionner en rentrant "localhost" comme serveur imap/smtp. Mais j'aimerai vraiment que quelqu'un m'explique ce qui ce passe parce-que visiblement quelque-chose ne va pas ^^
6 jours plus tard
Bonsoir,

J'ai installer le serveur de mail a l'aide du script, tous fonctionne bien sauf quand je fais le test sur meil-tester. Il me renvoie une note de 7/10 en me notifiant qu'il y a 2 signature DKIM et pas d'enregistrement SPF. J'ai attendu 48 heures pour la diffusion mais cela ne change rien. Aujourd'hui je suis même passé a une note de 6/10.

Quelqu'un a une idée pour le DKIM pose problème et SPF aussi ?
22 jours plus tard
salut a tous

Juste deux questions (d'une longue série certainement). Quand je lance le script, il me demande nom d'hote. Que dois je mettre ?

2eme question: est ce un lien avec certains post que j'ai lu ou des gars ont insérer en CNAME en sous domaine les protocoles imap, smtp, pop3, etc ?
Awesome script Hardware!

J'ai juste une question, peut-être stupide: je peux faire cohabiter plusieurs domaines sur le même serv, je suppose?
Pour l'ajouter sur Postfix ça va, mais niveau DNS je veux pas faire de connerie: si par exemple mon hostname c'est ptikrazy et que j'ai configuré le script avec comme domaine toto.fr, si au niveau des DNS de mon second domaine tata.fr j'ajoute un champ MX 10 ptikrazy.tata.fr. , ça fonctionne?

Hésite pas si je suis pas clair Ou si quelqu'un d'autre a la solution
@Killerfun: regarde le tutoriel, tu auras ta réponse.

@Ptikrazy: à condition que le MX ptikrazy.tata.fr pointe bien sur le serveur de mail, que le serveur soit configuré pour du multi-domaine et que le certificat soit valide pour les deux domaines, rien de bien compliqué mais ce n'est pas traité dans le tutoriel.
Thx pour la réponse, je ferai des tests demain

Edit du lendemain: bon c'est compliqué en ayant utilisé le script auto...je retente avec le tuto à la mano, je devrais y voir plus clair Bon courage au prochain qui voudra essayer ça!
Une vraie galère, le nom de domaine avec lequel j'ai paramétré tout ça n'a pas été renouvellé, je n'arrive plus à me connecter au webmail ni rien. Comment faire pour remplacer ce nom de domaine ? J'ai perdu toutes les adresses de connexion je sais plus comment faire c'est trop vieux
2 mois plus tard
bonjour a tous

j'ai voulu re installer ce geniallisime script pour mon nouveau serveur en debian jessie mais quelque soucis
------------------------------
[  INSTALLATION D'OPENDMARC  ]
------------------------------

-> Installation de opendmarc

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
  libopendbx1-mysql libopendmarc2 libspf2-2 libswitch-perl
Les NOUVEAUX paquets suivants seront installés :
  libopendbx1-mysql libopendmarc2 libspf2-2 libswitch-perl opendmarc
0 mis à jour, 5 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 203 ko dans les archives.
Après cette opération, 588 ko d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://debian.mirrors.ovh.net/debian/ jessie/main libswitch-perl all 2.17-2 [20,5 kB]
Réception de : 2 http://debian.mirrors.ovh.net/debian/ jessie/main libopendbx1-mysql amd64 1.4.6-8 [5 280 B]
Réception de : 3 http://debian.mirrors.ovh.net/debian/ jessie/main libspf2-2 amd64 1.2.10-5 [57,5 kB]
Réception de : 4 http://debian.mirrors.ovh.net/debian/ jessie/main libopendmarc2 amd64 1.3.0+dfsg-1 [29,3 kB]
Réception de : 5 http://debian.mirrors.ovh.net/debian/ jessie/main opendmarc amd64 1.3.0+dfsg-1 [90,2 kB]
203 ko réceptionnés en 0s (1 595 ko/s)
Sélection du paquet libswitch-perl précédemment désélectionné.
(Lecture de la base de données... 66251 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libswitch-perl_2.17-2_all.deb ...
Dépaquetage de libswitch-perl (2.17-2) ...
Sélection du paquet libopendbx1-mysql précédemment désélectionné.
Préparation du dépaquetage de .../libopendbx1-mysql_1.4.6-8_amd64.deb ...
Dépaquetage de libopendbx1-mysql (1.4.6-8) ...
Sélection du paquet libspf2-2 précédemment désélectionné.
Préparation du dépaquetage de .../libspf2-2_1.2.10-5_amd64.deb ...
Dépaquetage de libspf2-2 (1.2.10-5) ...
Sélection du paquet libopendmarc2 précédemment désélectionné.
Préparation du dépaquetage de .../libopendmarc2_1.3.0+dfsg-1_amd64.deb ...
Dépaquetage de libopendmarc2 (1.3.0+dfsg-1) ...
Sélection du paquet opendmarc précédemment désélectionné.
Préparation du dépaquetage de .../opendmarc_1.3.0+dfsg-1_amd64.deb ...
Dépaquetage de opendmarc (1.3.0+dfsg-1) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.0.2-5) ...
Traitement des actions différées (« triggers ») pour systemd (215-17+deb8u3) ...
Paramétrage de libswitch-perl (2.17-2) ...
Paramétrage de libopendbx1-mysql (1.4.6-8) ...
Paramétrage de libspf2-2 (1.2.10-5) ...
Paramétrage de libopendmarc2 (1.3.0+dfsg-1) ...
Paramétrage de opendmarc (1.3.0+dfsg-1) ...
chown: impossible d'accéder à « /var/run/opendmarc »: Aucun fichier ou dossier de ce type
dpkg: erreur de traitement du paquet opendmarc (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
Traitement des actions différées (« triggers ») pour libc-bin (2.19-18+deb8u2) ...
Traitement des actions différées (« triggers ») pour systemd (215-17+deb8u3) ...
Des erreurs ont été rencontrées pendant l'exécution :
 opendmarc
E: Sub-process /usr/bin/dpkg returned an error code (1)


 /!\ FATAL: Une erreur est survenue pendant l'installation d'OpenDMARC.

root@serv:/tmp/mailserver-autoinstall#


quelqun de sympathique pour me donnai de plus ample explication ?

je suis sous debian 8.3 ( jessie)

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.3 (jessie)
Release:        8
Codename:       jessie
Cordialement
9 jours plus tard
Ce script n'est plus maintenu, merci d'utiliser à la place mon image docker. Je considère cette méthode beaucoup plus fiable et rapide à mettre en place. Je continuerai d'apporter des mises à jour de sécurité si besoin mais le script décrit ici n'évoluera plus. Merci de votre compréhension.
EDIT: vous pouvez continuer d'utiliser ce script jusqu'à que Jessie soit en fin de vie donc encore pendant 2 ans (2018), mais je recommande tout de même de passer à l'image Docker pour bénéficier de nouvelles features.
C'est mieux en effet, c'est beaucoup, beaucoup plus propre !
Encore une fois bon boulot.
3 mois plus tard
Fonctionne parfaitement pour moi aussi. J'ai eu quelques difficultés avec mariadb qui semblait ne pas fonctionner au moment de la connection. Il m'a fallu rajouter une variable d'environnement (- TERM=dumb)
Par contre j'avoue ne pas en comprendre la signification ..

Autre petite question :
Il y a visiblement deux maineres d'installer avec docker soit docker run -d \ ... ou alors via docker compose. Est ce la même installation ?

Merci encore et très bon boulot !
2 mois plus tard
Bonsoir, j'ai un problème d'installation.
J'ai juste modifié sur le docker-compose les dossiers sans le /mnt/ ainsi que le nom du mariadb.
Mon problème n'est pas lié mais je le précise quand même.

Je vais faire l'installation sur deux serveurs (un test et un prod).
Sur le test en premier:
J'ai déjà le port 25 de pris
 netstat -tlnp | grep 25
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      772/exim4
tcp6       0      0 ::1:25                  :::*                    LISTEN      772/exim4
Sur le site en prod:
netstat -tlnp | grep 25
tcp        0      0 0.0.0.0:port           0.0.0.0:*               LISTEN      2257/sshd
tcp6       0      0 :::port                :::*                    LISTEN      2257/sshd
Je précise que je fais rien sur le site en prod tant que je ne vois pas d'installation me convenant. C'est juste un test que j'ai voulu faire en plus.

Message erreur lors de la création:
Creating mailserver

ERROR: for mailserver  driver failed programming external connectivity on endpoi                                                    nt mailserver (62d5e57a84767ac4c5e26bcf97ed83ee35f7206313a7a462680d7b843ad82551)                                                    : Error starting userland proxy: listen tcp 0.0.0.0:25: bind: address already in                                                     use
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 63, in main
AttributeError: 'ProjectError' object has no attribute 'msg'
docker-compose returned -1
Quel est la meilleur méthode pour libérer ses ports utilisés pour finir mon installation.

Nicolas.
Arrêter le service Exim4, c'est le serveur mail par défaut sous debian.
systemctl stop exim4 && systemctl disable exim4
Yop,

je suis en train d'essayer de migrer mon install en dur, sur docker.
Par contre pas moyen de se connecter a la BDD (même vierge) sur PFA j'ai connection denied (a cause du mdp) et même en faisant
docker exec -ti mariadb bash
je peu pas me co, que ce soit en root ou en postfix (avec les mdp de bases ou ceux que j'ai configuré dans le compose)

EDIT:

C'est ok j'avais zapper de rm -R /mnt/docker/mysql/

OK j'ai du régler quelques soucis d'importation de BDD, maintenant c'est ok par contre je n'arrive pas à me co sur PFA Oo

EDIT:

C'est ok le cryptage du MDP de la BDD etait plus bon, du coup j'ai crée un second compte admin modifier le MDP du premier et voila
J'ai lancé la commande et l'installation s'est faite.
Mais j'ai comme toujours des soucis avec ma database:
Postfix Admin Setup Checker

Running software:

PHP version 7.0.8
Checking for dependencies:

Magic Quotes: Disabled - OK
Depends on: presence config.inc.php - OK
Checking $CONF['configured'] - OK
Smarty template compile directory is writable - OK
Depends on: MySQL 4.1 - OK
Error: Can't connect to database
Please edit the $CONF['database_*'] parameters in config.inc.php.
DEBUG INFORMATION:
Connect: Access denied for user 'postfix'@'172.17.0.7' (using password: YES)

Depends on: session - OK
Depends on: pcre - OK
Depends on: multibyte string - OK
Depends on: IMAP functions - OK
Please fix the errors listed above.
Le fichier conf? Je le trouve où?
Peut être aussi voir pour m'aider à optimisé mon docker-compose.
http://pastebin.com/MA0K4z4s

hs: Si c'est possible d'avoir une seule base de donnée et mettre des variables d'environnement de la base de donnée dans le container d'application.
2 mois plus tard
Bonjour,

Quelques cheveux en moins durant l'installation docker. je modifie le fichier docker-compose.yml avec mes données perso, mot de passe MySQL, nom de domaine etc .. je lance la commande docker-compose up -d. La vérification des logs me donnait une erreur de connexion avec la base MySQL

Je lance la commande
docker exec  -it <id> sh
cd etc
cd postfix
cd MySQL
le mot de passe en dur est 'postfixadmin'
# cat mysql-virtual-alias-maps.cf
hosts    = mariadb
user     = postfix
password = postfixadmin
dbname   = postfix

query = SELECT goto FROM alias WHERE address='%s' AND active = 1# ^C

# cat mysql-virtual-mailbox-domains.cf
hosts    = mariadb
user     = postfix
password = postfixadmin
dbname   = postfix
Pareil pour le fichier 'config.inc.php' de postfixadmin

Voila du coup pour ceux que ca peut aider dans le fichier docker-compose.yml, mettez bien postfixadmin comme mot de passe pour la base de donnée postfix

Autre soucis, en considerant que dans un premier temps je n'installe pas let's encrypt, la création des clés par défaut ne se fait pas dans le dossier 'crt'. du coup le postfixadmin.conf fourni ne me permet pas d'accéder à l'interface web d'installation de postfixadmin.

Pour l'instant je fait tourner avec un postfixadmin.conf basique avec le port 80. Si vous avez des solutions pour régler ces détails?

Merci
3 mois plus tard

Bonjour, j'ai besoin de rajouter un domaine a mon serveur mail, mais je n'ai pas trop d'idée de comment faire, quelqu'un l'a deja fait ?

2 ans plus tard

Bonjour à tous !

Désolé de relancer ce post un peu mort mais j'ai un problème avec sieve.
J'ai mon serveur mail qui fonctionne correctement et ce depuis plusieurs mois sauf Sieve.
Lorsque je vais sur la page des filtres il est marqué "Impossible d'obtenir les filtres".

J'ai bien suivi chaque étape de l'installation, j'ai même fait des améliorations pour certains soucis récurrents, mais je ne parviens toujours pas à faire fonctionner sieve.
Voici déjà mon fichier de conf dovecot et les fichiers de conf sieve.

dovecot.conf

## Dovecot configuration file
# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration

# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.

# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "

# Most (but not all) settings can be overridden by different protocols and/or
# source/destination IPs by placing the settings inside sections, for example:
# protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { }
#
# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr
# --sysconfdir=/etc --localstatedir=/var

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp sieve

# A comma separated list of IPs or hosts where to listen in for connections.
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
listen = *

# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/

# Name of this instance. In multi-instance setup doveadm and other commands
# can use -i <instance_name> to select which instance is used (an alternative
# to -c <config_path>). The instance name is also added to Dovecot processes
# in ps output.
#instance_name = dovecot

# Greeting message for clients.
#login_greeting = Dovecot ready.

# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =

# Space separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =

# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
#auth_proxy_self =

# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no

# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes

# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server

# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ

##
## Dictionary server settings
##

# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".

dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}

# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf

# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf

90-seive.conf

plugin {
  sieve = /var/mail/vhosts/%d/%n/.dovecot.sieve
  sieve_default = /var/mail/sieve/default.sieve
  sieve_dir = /var/mail/vhosts/%d/%n/sieve
  sieve_global_dir = /var/mail/sieve
  sieve_trace_debug = yes
}

20-lmtp.conf

##
## LMTP specific settings
##

# Support proxying to other LMTP/SMTP servers by performing passdb lookups.
#lmtp_proxy = no

# When recipient address includes the detail (e.g. user+detail), try to save
# the mail to the detail mailbox. See also recipient_delimiter and
# lda_mailbox_autocreate settings.
#lmtp_save_to_detail_mailbox = no

# Verify quota before replying to RCPT TO. This adds a small overhead.
#lmtp_rcpt_check_quota = no

# Which recipient address to use for Delivered-To: header and Received:
# header. The default is "final", which is the same as the one given to
# RCPT TO command. "original" uses the address given in RCPT TO's ORCPT
# parameter, "none" uses nothing. Note that "none" is currently always used
# when a mail has multiple recipients.
#lmtp_hdr_delivery_address = final

protocol lmtp {
  # Space separated list of plugins to load (default is global mail_plugins).
  #mail_plugins = $mail_plugins
  postmaster_address = postmaster@<mon-domaine>
  mail_plugins = $mail_plugins sieve
}
    Répondre…