OVH Cloud OVH Cloud

sendmail & MX

18 réponses
Avatar
Stéphane
Bonjour,

tout newbie dans le domaine, je tente ma chance .... et ça marche pas
comme je le veux :)

OS: OpenBSD 3.3
sendmail est lancé, popa3d aussi

lorsqu'on envoi un mail c'est via SMTP et on reçoit via POP3. Jusque là
pas de pb.

JEAN envoie un mail à PAUL.

le cheminement est le suivant :
ordi de JEAN
serveur SMTP de JEAN
serveur MX de PAUL
serveur POP3 de PAUL
ordi de PAUL

est-ce exact?

pour pop3 j'utilise popa3d, ok.
pour SMTP , sendmail s'occupe de ça.
et il paraitrai que sendmail s'occuperai aussi de la partie MX.

J'en suis au point où si je fais tout en local (JEAN et PAUL sont 3
users sur le meme serveur) cela fonctionne. mail envoyé localement et
reçu via pop3 .. ok pas de pb

maintenant lorsqu'il s'agit que PAUL@mamadoo.fr envoie à
JEAN@mon-domaine.net là JEAN ne reçois rien.

Est-ce que la partie MX est manquante?
est-ce qu'il faut ouvrir un port adequat (dites moi lequel) ?

Merci pour vos infos, url et conseils :)


Stéphane

PS: question subsidiaire, à quoi sert "submission 587/tcp" et
"submission 587/udp" ?

10 réponses

1 2
Avatar
Xavier Roche
Stéphane wrote:
JEAN envoie un mail à PAUL.


Sur deux sites différents, on est d'accord? (sinon, même MTA ("MX"))

le cheminement est le suivant :


client de messagerie de Jean
-> serveur SMTP de Jean
-> serveur SMTP déclaré comme MX du comaine de Paul
-> repository local (boite mbx, ou base de donnée)
-> récupération par Paul du message dans le repository local, peut être depuis l'extérieur

et il paraitrai que sendmail s'occuperai aussi de la partie MX.


Non. Sendmail (comme postfix, etc..) est un MTA (mail transfer agent), il
se contente de recevoir les mails qui arrivent sur le port 25 du serveur sur
lequel il et installé.

Pour dire "le domaine example.com a comme MTA la machine 12.34.56.78",
il faut une entrée DNS de type MX (mail eXchanger) sur example.com
Comme:
IN MX 10 12.34.56.78

J'en suis au point où si je fais tout en local (JEAN et PAUL sont 3
users sur le meme serveur) cela fonctionne. mail envoyé localement et
reçu via pop3 .. ok pas de pb


Certes - le serveur "sait" qu'il gère example.com, et n'a pas besoin
d'interroger le DNS.

maintenant lorsqu'il s'agit que envoie à
là JEAN ne reçois rien.


Quel est votre domaine ? Vérifiez qu'il a une entrée MX.
Exemple: (l'exemple est de saison...)

# host -t MX finances.gouv.fr
finances.gouv.fr mail is handled by 0 relaismsg.minefi.gouv.fr.

Est-ce que la partie MX est manquante?


A priori oui :)

est-ce qu'il faut ouvrir un port adequat (dites moi lequel) ?


Le port 25

Merci pour vos infos, url et conseils :)


Sécuriser le sendmail 25 et mettre un bon firewall!!

PS: question subsidiaire, à quoi sert "submission 587/tcp" et
"submission 587/udp" ?


" .. (a) low cost, deterministic means for messages to
be identified as submissions, and specifies what actions are to be
taken by a submission server "

http://www.ietf.org/rfc/rfc2476.txt?number$76

Ca concerne les MUA (clients), mais j'avoue n'avoir pas lu la RFC

Avatar
Stéphane
Stéphane wrote:

JEAN envoie un mail à PAUL.
Sur deux sites différents, on est d'accord? (sinon, même MTA ("MX"))



oui oui exactement.

le cheminement est le suivant :
client de messagerie de Jean

-> serveur SMTP de Jean
-> serveur SMTP déclaré comme MX du comaine de Paul
-> repository local (boite mbx, ou base de donnée)
-> récupération par Paul du message dans le repository local, peut être
depuis l'extérieur

et il paraitrai que sendmail s'occuperai aussi de la partie MX.
Non. Sendmail (comme postfix, etc..) est un MTA (mail transfer agent), il

se contente de recevoir les mails qui arrivent sur le port 25 du serveur
sur
lequel il et installé.

Pour dire "le domaine example.com a comme MTA la machine 12.34.56.78",
il faut une entrée DNS de type MX (mail eXchanger) sur example.com
Comme:
IN MX 10 12.34.56.78


ok, voilà qui est fait. En fait ça serai uniquement l'entrée DNS qui
manquait ..
mais bon je pressens qu'il va y avoir d'autres problèmes ...


est-ce qu'il faut ouvrir un port adequat (dites moi lequel) ?
Le port 25



Alors voilà ce qui me chagrine ...
hier soir (enfin très tôt ce matin car je n'arrivai pas à dormir) après
avoir fait tout ça et vu que de l'extérieur cela ne fonctionnait pas,
j'ai fait un telnet mon_ip_publique 25 => echec lors de la connexion
je fais un telnet ip_privée_serveur_smtp 25 => echec lors de la connexion

pourtant mon pf.conf (j'utilise OpenBSD 3.3) il y a une ligne :
pass in quick inet proto tcp from any to $gateway port smtp flags S/SA
keep states

Oui c'est ma gateway qui s'occupe de tout

Merci pour vos infos, url et conseils :)
Sécuriser le sendmail 25 et mettre un bon firewall!!



Mettre on bon firewall .. et de bonne rèbles ;)

Sécuriser sendmail ... comment?

Hier soir j'ai cherché cherché et cherché .... et j'ai vu les mot "M4"
et "kit jussieu apparaitre" :)
je me suis penché sur M4, effectivement c'est simple, mais ça marchait
pas :)
et puis bon, j'ai pas vraiment compris ce que je fesait avec tte les
lignes du .mc
J'ai pris 2 exemple : une sur http://gcu-squad.org/?viewtip+&tip_idH ,
l'autre sur http://www.pagasa.net/mail/exemple/exemple1.html

Bon il était 6h du mat, je vais me repencher sur M4, mas si quelqu'un a
une autre URL sympa où c'est bien expliqué je suis preneur ...


Avatar
Rakotomandimby
Stéphane wrote:

je me suis penché sur M4, effectivement c'est simple,


tu es tres optimiste toi ...m4 , je m'en sors pas personnellement , pourtant
je ne m'estime pas tres con . :-)

mais ça marchait pas :)


voila pourquoi c'est pas si simple ... non ?
cela dit , moi j'ai fait commander un bouquin ( et demi ) sur sendmail a ma
FAC ... je trouve que la Doc du net est tres bien , mais pour bien debuter
c'est dessus qu'il faut que je planche . :-)

Je sais j'ai pas repondu a ta question , mais je t'ai proposé une
alternative d'apprentissage de sendmail .


--
http://mrakotom.free.fr

Avatar
Xavier Roche
Rakotomandimby wrote:
tu es tres optimiste toi ...m4 , je m'en sors pas personnellement , pourtant
je ne m'estime pas tres con . :-)


$ apt-get install sendmail
$ cd /etc/mail
$ vi sendmail.mc

S'assurer que les lignes de ce type soient présentes:

define(`_USE_ETC_MAIL_')
OSTYPE(`linux')
define(`confDOMAIN_NAME',`mondomaine.com')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confPRIVACY_FLAGS', `authwarnings,needmailhelo,novrfy,noexpn')
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
FEATURE(`accept_unresolvable_domains')
FEATURE(`relay_entire_domain')
MAILER(smtp)
MAILER(procmail)

- Si on a un domaine local à masquerader:

MASQUERADE_AS(mondomaine.com
FEATURE(`masquerade_entire_domain')
MASQUERADE_DOMAIN(domaine.local

- Eventuellement pour avoir les mailertable & virtusertable:

FEATURE(`mailertable',`hash -o /etc/mail/mailertable')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')

- Faire joujou en v6:

DAEMON_OPTIONS(`Name=MTA-v6, Family=inet6')

- Mettre en place des certificats: (les créer dans /etc/mail/certs)

define(`CERT_DIR', `/etc/mail/certs')
define(`confCACERT_PATH', `CERT_DIR')
define(`confCACERT', `CERT_DIR/CAcert.pem')
define(`confSERVER_CERT', `CERT_DIR/MYcert.pem')
define(`confSERVER_KEY', `CERT_DIR/MYkey.pem')
define(`confCLIENT_CERT', `CERT_DIR/MYcert.pem')
define(`confCLIENT_KEY', `CERT_DIR/MYkey.pem')
dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN CRAM-MD5 DIGEST-MD5')
TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')

Puis dans le fichier access :
127.0.0.1 RELAY
mondomaine.com RELAY

Et éventuellement créer les tables vides:
/etc/mail/mailertable
makemap hash /etc/mail/mailertable < /etc/mail/mailertable

/etc/mail/virtuser
makemap hash /etc/mail/virtuser < /etc/mail/virtuser

makemap hash /etc/mail/access < /etc/mail/access
/etc/mail/userdb
makemap hash /etc/mail/userdb < /etc/mail/userdb

newaliases

Après:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/rc.d/init.d/sendmail restart

On peut mettre en place check_local (pour filtrer le spam), des règles
sur le content-type, etc .. mais l'essentiel est la.

Avatar
Stéphane
super exemple xavier, je le mets de coté.. mais j'en cherche TOUUUUT
simple qui me montre que ça fontionne ... et APRES je verrai pour
affiner le tout.

# more /etc/mail/sendmail.mc
divert(0)dnl
VERSIONID(`$Id: mondomaine.net 03/02/2004 Exp $')
OSTYPE(bsd4.4)dnl
DOMAIN(mondomaine.net)dnl
MAILER(local)dnl
MAILER(smtp)dnl
#
# m4 sendmail.mc >sendmail.cf
#
# kill -HUP `head -1 /var/run/sendmail.pid`
# Feb 3 13:48:30 golden sm-mta[13504]: gethostbyaddr(192.168.0.1) failed: 1
Feb 3 13:48:30 golden sm-mta[13504]:
gethostbyaddr(IPv6:2001:7a8:2b1e::1) failed: 1

...

telnet 192.168.0.1 25 .... Connexion à 192.168.0.1 ... Impossible de se
connecter à l'hôte par le port 25 : Echec lors de la connexion

je pense que c'est lié :)

pour rappel, localement je peux envoyer un mail de root à JEAN.
JEAN récupère les mails aussi bien localement que via pop3.
pas de pb.
Toujours à partir du local, peut envoyer un mail à
... reçoit sans pb.
Par contre ne peut pas envoyer le mail à partir de
son propre ordi à
En fait de sa propre machine peut envoyer à personne

et là je me dis "ça vient de pf" .. eh bien non!
services_tcp = "{" http pop3 smtp "}"
services_udp = "{" pop3 "}"
pass in quick inet proto tcp from any to $gateway port $services_tcp
flags S/SA keep state
pass in quick inet proto udp from any to $gateway port $services_udp
keep state

si quelqu'un peut éclairer ma lanterne ....

merci :)

Stéphane
Avatar
Stéphane
# kill -HUP `head -1 /var/run/sendmail.pid`
# Feb 3 13:48:30 golden sm-mta[13504]: gethostbyaddr(192.168.0.1)
failed: 1
Feb 3 13:48:30 golden sm-mta[13504]:
gethostbyaddr(IPv6:2001:7a8:2b1e::1) failed: 1


C'est bon, après avoir rajouté la ligne adequat dans /etc/hosts j'ai
plus l'erreur ...

telnet 192.168.0.1 25 .... Connexion à 192.168.0.1 ... Impossible de se
connecter à l'hôte par le port 25 : Echec lors de la connexion


bah ça c'est toujours d'actualité :)

Avatar
Stéphane
tentatives en local ...

# telnet 192.168.0.1 25
Trying 192.168.0.1...
telnet: connect to address 192.168.0.1: Connection refused

# telnet mondomaine.net 25
Trying 127.0.0.1...
Connected to mondomaine.net.
Escape character is '^]'.
220 golden.mondomaine.net ESMTP Sendmail 8.12.9/8.12.9; Tue, 3 Feb 2004
14:16:05 +0100 (CET)
quit
221 2.0.0 golden.mondomaine.net closing connection
Connection closed by foreign host.

# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 golden.mondomaine.net ESMTP Sendmail 8.12.9/8.12.9; Tue, 3 Feb 2004
14:16:19 +0100 (CET)
quit
221 2.0.0 golden.mondomaine.net closing connection
Connection closed by foreign host.

à n'y plus rien comprendre :)
Avatar
Stéphane
rectification .. quand on fait des tests on fait selon les IP ;)

# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 golden.mondomaine.net ESMTP Sendmail 8.12.9/8.12.9; Tue, 3 Feb 2004
14:40:00 +0100 (CET)
quit
221 2.0.0 golden.mondomaine.net closing connection
Connection closed by foreign host.

# telnet 192.168.0.1 25
Trying 192.168.0.1...
telnet: connect to address 192.168.0.1: Connection refused

# telnet 62.212.103.30 25
Trying 62.212.103.30...
telnet: connect to address 62.212.103.30: Connection refused


à n'y plus rien comprendre :)


selon moi ça viendrai du sendmail.mc
car du coté des règles du firewall vraiment j'ai vérifié plusieurs fois
et ça a l'air ok

Avatar
Erwan David
Xavier Roche écrivait :

Stéphane wrote:
JEAN envoie un mail à PAUL.


Sur deux sites différents, on est d'accord? (sinon, même MTA ("MX"))

le cheminement est le suivant :


client de messagerie de Jean
-> serveur SMTP de Jean
-> serveur SMTP déclaré comme MX du comaine de Paul
-> repository local (boite mbx, ou base de donnée)
-> récupération par Paul du message dans le repository local, peut être depuis l'extérieur

et il paraitrai que sendmail s'occuperai aussi de la partie MX.


Non. Sendmail (comme postfix, etc..) est un MTA (mail transfer agent), il
se contente de recevoir les mails qui arrivent sur le port 25 du serveur sur
lequel il et installé.

Pour dire "le domaine example.com a comme MTA la machine 12.34.56.78",
il faut une entrée DNS de type MX (mail eXchanger) sur example.com
Comme:
IN MX 10 12.34.56.78


Un enregistrement MX est un *nom* de machine, *jamais* une adresse IP.

--
Erwan


Avatar
Stéphane
Virer ou commenter DAEMON_OPTIONS et sendmail écoutera sur toutes
les interfaces de la machine.


mais il y a pas ça ... :-/
moi j'ai suivi les explications de
http://www.pagasa.net/mail/exemple/exemple1.html

# more /etc/mail/sendmail.mc
divert(-1)
dnl
dnl Configuration élémentaire SMTP
dnl
dnl
divert(0)
include(`/usr/share/sendmail/m4/cf.m4')dnl
VERSIONID(`Sendmail pour mondomaine.net')dnl
OSTYPE(`bsd4.4')dnl
define(`confMAX_MESSAGE_SIZE', `5000000')dnl
define(`STATUS_FILE', `/etc/mail/sendmail.st')dnl
define(`confDOMAIN_NAME', `mondomaine.net')dnl
define(`ALIAS_FILE', `/etc/mail/aliases')dnl
FEATURE(use_cw_file)dnl
FEATURE(`access_db',`hash -o /etc/mail/access')dnl
FEATURE(always_add_domain)dnl
FEATURE(local_procmail)dnl
MAILER(smtp)dnl

puis je créé sendmail.cf grace au .mc et à m4
# cd /etc/mail
# m4 sendmail.mc >sendmail.cf
*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash
-o /etc/mail/access)

??? :-/ normal ?

puis comme indiqué je construis la base aliases.db
# /usr/sbin/sendmail -bi -v
Feb 4 01:48:10 golden sendmail[18246]: alias database /etc/mail/aliases
rebuilt by root
/etc/mail/aliases: 23 aliases, longest 10 bytes, 245 bytes total

# more local-host-names
mondomaine.net

puis on redémarre sendmail
# kill -HUP `head -1 /var/run/sendmail.pid`
#

# more access
127.0.0.1 RELAY
192.168.0.1 RELAY
IP_publique RELAY
localhost RELAY
mondomaine.net RELAY
#

On construit la base ..
# makemap -v hash access.db <access
key=`127.0.0.1', val=`RELAY'
key=`192.168.0.1', val=`RELAY'
key=`ip_publique', val=`RELAY'
key=`localhost', val=`RELAY'
key=`mondomaine.net', val=`RELAY'
#

hop un ptit coup pour la forme
# kill -HUP `head -1 /var/run/sendmail.pid`
#

# telnet 192.168.0.1 25
Trying 192.168.0.1...
telnet: connect to address 192.168.0.1: Connection refused
# telnet IP_publique 25
Trying IP_publique...
telnet: connect to address IP_publique: Connection refused
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 golden.mondomaine.net ESMTP Sendmail 8.12.9/8.12.9; Wed, 4 Feb 2004
01:02:06 +0100 (CET)
quit
221 2.0.0 golden.mondomaine.net closing connection
Connection closed by foreign host.

et bien évidement si à partir d'un client sur une machine du lan
j'essaye de faire un envoi via 192.168.0.1:SMTP ça ne fonctionne pas

et là je me dis que ça doit etre pf.conf (OpenBSD 3.3)
services_tcp = "{" http pop3 smtp "}"
pass in quick inet proto tcp from any to $gateway port $services_tcp
flags S/SA keep state

http et pop3 fonctionnent bien, le pb se situe bien au niveau du SMTP et
non du firewall

PLEASE HELP ME !!


Attention à la conf: il faut être rigoureux si on est en connexion
permanente.


déjà faudrai que ça fonctionne ... :)


Stéphane

1 2