[RESOLU] Serveur SMTP

Serveur SMTP [RESOLU] - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 16-04-2016 à 21:13:09    

Bonjour,
 
J'ai installé un serveur de mail privé sur un serveur privé sous Raspbian (Raspberry Pi 2).
J'utilise Postfix, PostfixAdmin, Dovecot, SpamAssassin, ClamAV, Amavis, Roundcube. Il fonctionne parfaitement.
Mais voilà... J'aimerais utiliser mon serveur SMTP privé via l'application mail de mon Android et non le SMTP de mon FAI (Orange "pour l'instant" ), Bouygues bientôt). J'ai spécifié le SMTP du FAI comme relay SMTP mais cela ne fonctionne pas.
Je recherche donc des "pistes" à fouiller pour résoudre mon problème.
 
Merci d'avance.

Message cité 2 fois
Message édité par rebeldu31 le 23-04-2016 à 00:09:32
Reply

Marsh Posté le 16-04-2016 à 21:13:09   

Reply

Marsh Posté le 17-04-2016 à 22:28:48    

Bonsoir,
 
Quelques pistes :

  • résolution dns,
  • ouverture des flux,
  • port 25 bloqué chez certains FAI (dont Orange)


Bon courage

Reply

Marsh Posté le 18-04-2016 à 09:42:15    

rebeldu31 a écrit :

cela ne fonctionne pas.


 
mais encore ?


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 18-04-2016 à 12:48:10    

rebeldu31 a écrit :

Bonjour,
[...]
J'ai spécifié le SMTP du FAI comme relay SMTP mais cela ne fonctionne pas.
[...]


Je ne comprends pas, pourquoi utiliser un relai?
Spécifie directement l'adresse de ton SMTP, non?

 

Et comme indiqué par Arcan, il vaut mieux utiliser SMTPS.


Message édité par h3bus le 18-04-2016 à 12:49:14

---------------
sheep++
Reply

Marsh Posté le 18-04-2016 à 17:32:39    

sans doute un bloage du port 25 par le FAI

Reply

Marsh Posté le 18-04-2016 à 19:44:31    

Je suis malheureusement chez Orange et je sais que le port 25 est bloqué...
D'où la nécessité de spécifier un relay smtp qui est le stmp auth d'Orange.
 
Lorsque je spécifie mon smtp perso, du type smtp.mondomaine.fr, que ce soit sur le port 25 ou 587, l'accès m'est refusé !!! Ce, que via l'appli mail du téléphone. En local, en spécifiant le SMTP de mon serveur local, ça fonctionne.

Reply

Marsh Posté le 18-04-2016 à 20:46:26    

Est-ce que la résolution dns se fait bien ?
Est-ce que le NAT est correctement configuré sur votre Livebox ?
Les protocoles imap/pop fonctionnent ?
 
Au moment de la tentative de connexion depuis votre mobile, est-ce que quelque chose apparaît dans les logs de votre serveur ?

Reply

Marsh Posté le 18-04-2016 à 21:01:14    

La résolution se fait bien, domaine géré par OVH, aucun soucis.
NAT positionné sur ma box : port int : 25 / port ext : 25 vers mon serveur
IMAP fonctionne, je n'utilise pas pop...
 
Je n'ai pas regarder les logs postfix de mon serveur lors de mon précédent essai. Il va falloir que je refasse le test et regarder les logs. Je les posterais, s'il y a des messages.
 
Ajout :
 
Voici ce que j'ai dans ma syslog :
 
Apr 18 21:06:40 mon_serveur postfix/smtpd[7605]: connect from unknown[@IP_smartphone]
Apr 18 21:07:33 mon_serveur postfix/smtpd[7605]: lost connection after AUTH from unknown[@IP_smartphone]
Apr 18 21:07:33 mon_serveur postfix/smtpd[7605]: disconnect from unknown[@IP_smartphone]


Message édité par rebeldu31 le 18-04-2016 à 21:11:11
Reply

Marsh Posté le 19-04-2016 à 08:48:27    

tu as configuré correctement l'authentification des deux côté ? :o


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 19-04-2016 à 18:51:54    

Normalement, oui....
Avec l'aide d'une tonne de tuto...
Maintenant, j'ai peut-être zappé quelque-chose ou mal paramétré !!!

Reply

Marsh Posté le 19-04-2016 à 18:51:54   

Reply

Marsh Posté le 19-04-2016 à 21:30:38    

Peux tu nous montrer la configuration de postfix (master et main), la configuration du client sur ton téléphone, ainsi que celle d'un client mail qui fonctionne ?
 
Deux idées qui me viennent :

  • Une mauvaise méthode d'authentification configurée sur le téléphone (genre mot de passe chiffré au lieu de normal)
  • Postfix configuré pour rejeter les clients "unknown" (directive smtp_client_restriction il me semble).


Un conseil, n'utlise PAS le port 25 pour "soumettre" des emails à envoyer. Utilises plutôt le port 587 (submission) ou éventuellement 465.

Reply

Marsh Posté le 19-04-2016 à 22:57:15    

Voici les configurations :
 
* main.cf :
-----------
 
smtpd_banner = $myhostname ESMTP $mail_name (Raspbian)
biff = no
append_dot_mydomain = no
readme_directory = no
 
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
 
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mon_domaine.fr
alias_maps = hash: /etc/aliases
alias_database = hash: /etc/aliases
myorigin = mon_domaine.fr
mydestination = mon_serveur, localhost.localdomain, localhost
relayhost = [smtpauth.orange.fr]:587
mynetworks = 127.0.0.0/8 192.168.1.0/24
mailbox_size_limit = 5120000
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
virtual_mailbox_domains = mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash: /etc/postfix/sasl/sasl_passwd
smtpd_tls_security_level = may
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
content_filter = smtp-amavis:[127.0.0.1]:10024
 
###########################################################################
 
* master.cf :
-------------
 
smtp      inet  n       -       -       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
submission inet n       -       -       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       -       -       -       smtpd
#  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtp-amavis unix - - y - 2 smtp
   -o smtp_data_done_timeout=1200
   -o disable_dns_lookups=yes
127.0.0.1:10025 inet              n          -          y           -         -         smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o mynetworks=127.0.0.0/8
   -o strict_rfc821_envelopes=yes
 
#628       inet  n       -       -       -       -       qmqpd
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
 
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
 
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
 
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}
 
###########################################################################
 
* Configuration du client du téléphone :
----------------------------------------
 
- serveur entrant : ===> FONCTIONNE !!!
   - utilisateur : compte_mail@mon_domaine.fr
   - mot de passe : mdp_du_compte_mail
   - serveur IMAP : mail.mon_domaine.fr
   - sécurité : SSL/TLS
   - authentification : PLAIN
   - port : 993
 
- serveur sortant qui fonctionne :
   - serveur SMTP : smtpauth.orange.fr
   - sécurité : STARTTLS
   - port : 587
   - authentification : AUTOMATIC
   - nom d'utilisateur : mon_compte_chez_orange@wanadoo.fr
   - mot de passe : mdp_du_compte_chez_orange
 
- serveur sortant qui ne fonctionne pas :
   - serveur SMTP : smtp.mon_domaine.fr
   - sécurité : SARTTLS
   - port : 587
   - authentification : PLAIN (ou AUTOMATIC ou LOGIN)
   - nom d'utilisateur : mon_compte_mail@mon_domaine.fr
   - mot de passe : mdp_du_compte_mail
 
Je n'utilise pas de client mail autre que celui sur mon téléphone ou le webmail que j'ai installé (Roundcube).


Message édité par rebeldu31 le 19-04-2016 à 22:58:30
Reply

Marsh Posté le 21-04-2016 à 19:32:52    

Bonjour,
 
J'ai ajouté un utilisateur à la base sasldb et effectué d'autres tests et voici ce que me dit ma log (ça évolue) :
 
Apr 21 19:26:45 mon_serveur postfix/smtpd[25770]: connect from unknown[IP_smartphone]
Apr 21 19:26:48 mon_serveur postfix/smtpd[25770]: warning: unknown[IP_smartphone]: SASL PLAIN authentication failed:
Apr 21 19:26:54 mon_serveur postfix/smtpd[25770]: warning: unknown[IP_smartphone]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
 
Message d'erreur de l'appli mail :
 
"votre identifiant ou votre mot de passe est sans doute érroné"...
 
J'ai pourtant saisi le bon user/mdp nouvellement enregistré !!! :??: :??:

Reply

Marsh Posté le 21-04-2016 à 21:55:21    

Il est possible que tu aies un soucis de configuration :

Citation :

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash: /etc/postfix/sasl/sasl_passwd


 
Je pense que postfix/smtpd essaie la première et non la dernière des deux lignes en gras.

Reply

Marsh Posté le 21-04-2016 à 23:31:27    

Arcan_- a écrit :

Il est possible que tu aies un soucis de configuration :

Citation :

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash: /etc/postfix/sasl/sasl_passwd


 
Je pense que postfix/smtpd essaie la première et non la dernière des deux lignes en gras.


 
D'après les différents tuto, "smtp_sasl_password_maps = hash: /etc/postfix/sasl/sasl_passwd" sert pour le relais smtp (cf : http://postfix.state-of-mind.de/pa [...] rvers.html)

Reply

Marsh Posté le 22-04-2016 à 00:27:34    

Certes, mais c'est pas tout à fait comme ça que postfix fonctionne en réalité... smtp n'est pas la même chose que smtpd
 
Postfix est découpé en plein de morceaux.Tu peux voir ici les différents éléments.
On y voit smtpd à gauche et smtp à droite.
 
Quand tu souhaites envoyer un email depuis ton smartphone à une adresse, disons Gmail, ton email arrive à gauche, entre dans smtpd, passe par plusieurs process puis atterri en queue. Qmgr (le gestionnaire de queue) le récupère et, suivant la destination (si il doit être délivré en local ou relayé en gros), le fais suivre. Comme c'est un mail à destination de Gmail, le mail est donné à un process smtp qui lui se chargera de le relayer aux MTA d'Orange.
 
Là ou je veux en venir, c'est que ton client se connecte à smtpd et non smtp.
 
smtp_sasl_password_maps contiendra, si nécessaire, des identifiant pour que Postfix puisse s'authentifier auprès des MTA d'Orange.
 
smtpd lui est configuré pour sous traiter l'authentification SASL à Dovecot.
Tes comptes locaux doivent donc être configurés dans Dovecot. J'ai vu que tu avais mis en place des virtual_mailbox_maps sur MySQL.  
J'en conclues que tu es censé géré tes comptes dans une base de données. Dovecot lui aussi être configuré pour pouvoir utiliser cette base de données.
 
 
Au passage, la documentation que tu prends comme exemple n'a pas été mise à jour depuis 2004...
Utilises plutôt celle là : http://www.postfix.org/documentation.html

Reply

Marsh Posté le 22-04-2016 à 21:54:46    

Arcan_- a écrit :

Certes, mais c'est pas tout à fait comme ça que postfix fonctionne en réalité... smtp n'est pas la même chose que smtpd
 
Postfix est découpé en plein de morceaux.Tu peux voir ici les différents éléments.
On y voit smtpd à gauche et smtp à droite.
 
Quand tu souhaites envoyer un email depuis ton smartphone à une adresse, disons Gmail, ton email arrive à gauche, entre dans smtpd, passe par plusieurs process puis atterri en queue. Qmgr (le gestionnaire de queue) le récupère et, suivant la destination (si il doit être délivré en local ou relayé en gros), le fais suivre. Comme c'est un mail à destination de Gmail, le mail est donné à un process smtp qui lui se chargera de le relayer aux MTA d'Orange.
 
Là ou je veux en venir, c'est que ton client se connecte à smtpd et non smtp.
 
smtp_sasl_password_maps contiendra, si nécessaire, des identifiant pour que Postfix puisse s'authentifier auprès des MTA d'Orange.
 
smtpd lui est configuré pour sous traiter l'authentification SASL à Dovecot.
Tes comptes locaux doivent donc être configurés dans Dovecot. J'ai vu que tu avais mis en place des virtual_mailbox_maps sur MySQL.  
J'en conclues que tu es censé géré tes comptes dans une base de données. Dovecot lui aussi être configuré pour pouvoir utiliser cette base de données.
 
 
Au passage, la documentation que tu prends comme exemple n'a pas été mise à jour depuis 2004...
Utilises plutôt celle là : http://www.postfix.org/documentation.html


 
OK.
Donc, c'est bien ce que j'avais cru comprendre : smtp_sasl_password_maps contient mes infos de connexion à mon SMTP Orange (smtpauth.orange.fr).
J'utilise Postfixadmin pour gérer mes boîtes mail et Dovecot utilise la base de données sans soucis puisqu'il arrive à distribuer le courrier à qui de droit, à moins que j'ai zappé quelque-chose dans ton explication....  :ouch:  
Et si j'ai bien compris ce que tu m'expliques, le soucis viendrait donc de l'authentification smtpd, et non smtp, est-ce bien ça ?

Reply

Marsh Posté le 22-04-2016 à 22:51:32    

C'est bien ça.
 
Dans postfix/master.cf, ajoute la ligne suivante pour le service submission :  

Citation :

-o smtpd_client_restrictions=permit_sasl_authenticated,reject


 
Si ça ne fonctionne toujours pas après avoir redémarré postfix, peux tu nous donner le contenu de /etc/dovecot/conf.d/10-master.conf ?

Reply

Marsh Posté le 22-04-2016 à 23:03:16    

ajouté... tjr KO...
par contre je n'ai plus rien dans ma log et je n'ai pas le message d'erreur de l'appli comme indiqué plus haut dans ce post... :??:

Reply

Marsh Posté le 22-04-2016 à 23:04:46    

Fichier 10-master.conf :
 
#default_process_limit = 100
#default_client_limit = 1000
#default_vsz_limit = 256M
#default_login_user = dovenull
#default_internal_user = dovecot
service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
  #service_count = 1
  #process_min_avail = 0
  #vsz_limit = $default_vsz_limit
}
service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    #port = 995
    #ssl = yes
  }
}
service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }
  #inet_listener lmtp {
    #address =
    #port =
  #}
}
service imap {
  #vsz_limit = $default_vsz_limit
  #process_limit = 1024
}
service pop3 {
  #process_limit = 1024
}
service auth {
  unix_listener auth-userdb {
    #mode = 0666
    #user =
    #group =
  }
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
  #user = $default_internal_user
}
service auth-worker {
  #user = root
}
service dict {
  unix_listener dict {
    #mode = 0600
    #user =
    #group =
  }
}

Reply

Marsh Posté le 22-04-2016 à 23:12:11    

Si tu n'as pas de message d'erreur, qu'est ce qui te fait dire que c'est toujours KO ?

Reply

Marsh Posté le 22-04-2016 à 23:14:42    

Je n'aime pas le "même" message d'erreur que celui plus haut...
Là, j'ai le message d'erreur "habituel"...

Reply

Marsh Posté le 22-04-2016 à 23:29:57    

C'est à dire celui là ?

Citation :

lost connection after AUTH from unknown


 
 
Autre chose à ajouter dans postfix/master.cf, service submission :

Citation :

-o smtpd_tls_security_level=may


 
Dans ton postfix/main.cf, il faut mettre des virgules entre chaque éléments de  

Citation :

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
...
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Reply

Marsh Posté le 22-04-2016 à 23:36:17    

Non, hier j'avais ce message :
 
Apr 21 19:26:45 mon_serveur postfix/smtpd[25770]: connect from unknown[IP_smartphone]
Apr 21 19:26:48 mon_serveur postfix/smtpd[25770]: warning: unknown[IP_smartphone]: SASL PLAIN authentication failed:
Apr 21 19:26:54 mon_serveur postfix/smtpd[25770]: warning: unknown[IP_smartphone]: SASL LOGIN authentication failed: UGFzc3dvcmQ6  
 
Aujourd'hui, plus rien...
 
J'ai ajouté la ligne dans master.cf...
Virgules ajoutées...
 
Toujours pareil : "Impossible de se connecter au serveur (3011)"...

Reply

Marsh Posté le 22-04-2016 à 23:52:12    

Ca y est, j'ai "retrouvé" mon message d'erreur dans ma log...
C'était mon fichier /etc/postfix/sasl/smtpd.conf que j'avais modifié...
Je me retrouve donc comme hier soir, avec mes messages d'erreurs "parlants", dans ma log et dans mon appli....

Reply

Marsh Posté le 22-04-2016 à 23:56:07    

CA Y EST !!!!
CA FONCTIONNE !!!
:bounce: :bounce:

Reply

Marsh Posté le 22-04-2016 à 23:57:04    

Qu'as tu dans ce fichier ?

 

EDIT : Bien !
Qu'as tu changé pour que ça fonctionne ?


Message édité par Arcan_- le 22-04-2016 à 23:57:48
Reply

Marsh Posté le 23-04-2016 à 00:01:59    

Voici le fichier /etc/postfix/sasl/smtpd.conf que j'ai mis en place :
 
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login
 
Je peux donc spécifié comme serveur sortant mon serveur, smtp.mondomaine.fr, STARTTLS, port 587, AUTOMATIC, mon_compte_mail+mdp
 
J'envoies mes mails sans soucis.
:sol:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed