Forum Linux.général Postfix relay involontaire

Posté par . Licence CC by-sa
Tags : aucun
2
31
mai
2016

Bonjour à tous,
j'ai installé un serveur de mails avec postfix, dovecot et sasl ( via dovecot ). Je me croyais un peu protégé jusqu'à présent, mais là dans mes logs j'ai pu apercevoir la portion suivante :

May 31 12:45:21 serv1 postfix/smtpd[28800]: connect from 114-24-12-211.dynamic.hinet.net[114.24.12.211]
May 31 12:45:22 serv1 postfix/smtpd[28800]: A02C54052C: client=114-24-12-211.dynamic.hinet.net[114.24.12.211]
May 31 12:45:23 serv1 postfix/cleanup[28804]: A02C54052C: message-id=
May 31 12:45:23 serv1 postfix/qmgr[3897]: A02C54052C: from=xxxxx@yahoo.com.tw, size=619, nrcpt=1 (queue active)
May 31 12:45:23 serv1 spamd[11174]: spamd: connection from localhost [::1]:49155 to port 783, fd 6
May 31 12:45:23 serv1 spamd[11174]: spamd: setuid to debian-spamd succeeded
May 31 12:45:24 serv1 spamd[11174]: spamd: processing message for debian-spamd:126
May 31 12:45:26 serv1 spamd[11174]: spamd: identified spam (16.7/5.0) for debian-spamd:126 in 2.8 seconds, 642 bytes.
May 31 12:45:26 serv1 spamd[11174]: spamd: result: Y 16 - EMPTY_MESSAGE,FREEMAIL_FROM,FROM_BLANK_NAME,FSL_HELO_BARE_IP_2,INVALID_DATE,RCVD_HELO_IP_MISMATCH,RCVD_IN_BRBL_LASTEXT,RCVD_IN_PBL,RCVD_IN_RP_RNBL,RCVD_IN_SORBS_DUL,RCVD_IN_XBL,RCVD_NUMERIC_HELO,RDNS_DYNAMIC,SPF_NEUTRAL,TVD_RCVD_IP,TVD_RCVD_IP4,T_MIME_NO_TEXT scantime=2.8,size=642,user=debian-spamd,uid=126,required_score=5.0,rhost=localhost,raddr=::1,rport=49155,mid=,autolearn=no autolearn_force=no
May 31 12:45:26 serv1 postfix/pickup[28645]: D335E419A5: uid=126 from=xxxxx@yahoo.com.tw
May 31 12:45:26 serv1 postfix/pipe[28805]: A02C54052C: to=xxxxx@msa.hinet.net, relay=spamassassin, delay=4.5, delays=1.6/0.01/0/2.9, dsn=2.0.0, status=sent (delivered via spamassassin service)
May 31 12:45:26 serv1 postfix/qmgr[3897]: A02C54052C: removed
May 31 12:45:26 serv1 postfix/cleanup[28804]: D335E419A5: message-id=
May 31 12:45:26 serv1 postfix/qmgr[3897]: D335E419A5: from=xxxxx@yahoo.com.tw, size=2765, nrcpt=1 (queue active)
May 31 12:45:26 serv1 spamd[11173]: prefork: child states: II
May 31 12:45:32 serv1 postfix/smtp[28809]: D335E419A5: to=xxxxx8@msa.hinet.net, relay=msa-smtp-mx2.hinet.net[168.95.6.62]:25, delay=4.8, delays=0.09/0.03/4.2/0.5, dsn=5.7.1, status=bounced (host msa-smtp-mx2.hinet.net[168.95.6.62] said: 550 5.7.1 xxxxx@yahoo.com.tw… Mail from xx.xx.xx.xx blocked using Trend Micro RBL+. Please see http://www.mail-abuse.com/cgi-bin/lookup?ip_address=xx.xx.xx.xx (in reply to MAIL FROM command))
May 31 12:45:32 serv1 postfix/cleanup[28804]: 5851640D8F: message-id=20160531104532.5851640D8F@xxxxxx.org
May 31 12:45:32 serv1 postfix/bounce[28810]: D335E419A5: sender non-delivery notification: 5851640D8F
May 31 12:45:32 serv1 postfix/qmgr[3897]: 5851640D8F: from=<>, size=4900, nrcpt=1 (queue active)
May 31 12:45:32 serv1 postfix/qmgr[3897]: D335E419A5: removed
May 31 12:45:33 serv1 postfix/smtpd[28800]: disconnect from 114-24-12-211.dynamic.hinet.net[114.24.12.211]
May 31 12:45:36 serv1 postfix/smtp[28811]: 5851640D8F: to=xxxxx@yahoo.com.tw, relay=mx-tw.mail.gm0.yahoodns.net[203.188.197.119]:25, delay=3.4, delays=0.05/0.02/1.1/2.2, dsn=5.0.0, status=bounced (host mx-tw.mail.gm0.yahoodns.net[203.188.197.119] said: 554 delivery error: dd This user doesn't have a yahoo.com.tw account (xxxxx@yahoo.com.tw) [-5] - mta1004.mail.tp2.yahoo.com (in reply to end of DATA command))
May 31 12:45:36 serv1 postfix/qmgr[3897]: 5851640D8F: removed
May 31 12:48:53 serv1 postfix/anvil[28802]: statistics: max connection rate 1/60s for (smtp:114.24.12.211) at May 31 12:45:21
May 31 12:48:53 serv1 postfix/anvil[28802]: statistics: max connection count 1 for (smtp:114.24.12.211) at May 31 12:45:21
May 31 12:48:53 serv1 postfix/anvil[28802]: statistics: max cache size 1 at May 31 12:45:21

Et surtout notamment ces deux lignes :

May 31 12:45:23 serv1 spamd[11174]: spamd: connection from localhost [::1]:49155 to port 783, fd 6
May 31 12:45:23 serv1 spamd[11174]: spamd: setuid to debian-spamd succeeded

Où j'ai compris que quelqu'un s'était connecté comme venant de localhost alors qu'il s'agit de l'adresse qui n'est pas effacée ici ( peut-être aurais-je dû la masquer aussi, mais s'agissant d'un gros méchant je n'ai pas vu l'utilité de préserver son intimité ), et que ledit gros méchant avait réussi à se servir de ma machine comme relais pour envoyer un spam à quelqu'un ( et que le spam avait été rejeté par l'atispam de yahoo, bonjour ma réputation sur les serveurs mails…)

J'ai pu observer que spamassassin avait reconnu le mail comme spam, et l'avait laissé passé, ce que je dois maintenant chercher à configurer.
Mais comment se fait-il qu'on ait pu se connecter comme ça sur ma machine ?
J'ai pensé que l'ipv6 était mal configuré chez moi et que l'attaquant en profitait, alors j'ai enlevé les adresses ipv6 dans mon /etc/postfix/main.conf et banni via iptables la plage d'adresse incriminée. Cela va-t-il suffir ?
Je suis quand même inquiet donc si quelqu'un peut me donner quelques conseils sur la sécurité de mon serveur. Demandez-moi les fichiers je les posterai, plutôt que de tartiner maintenant 3 pages de logs.

je ne poste jamais mais là au niveau des mails je voudrais ne pas servir de boîte relais et envoyer des cochonneries à tout le monde !

Merci d'avance,

  • # postfix, spamd, dovecot et compagnie

    Posté par . Évalué à 3.

    May 31 12:45:23 serv1 spamd[11174]: spamd: connection from localhost [::1]:49155 to port 783, fd 6
    May 31 12:45:23 serv1 spamd[11174]: spamd: setuid to debian-spamd succeeded

    non, pour moi c'est une fonctionnement "normal"
    c'est postfix qui cause à ton spamd

    mais en effet ton serveur semble etre OPENRELAY

    ton attaquant sur le premier message essaie d'envoyer un email, ca passe par ton postfix

    pd[28800]: A02C54052C: client=114-24-12-211.dynamic.hinet.net[114.24.12.211]
    May 31 12:45:23 serv1 postfix/cleanup[28804]: A02C54052C: message-id=
    May 31 12:45:23 serv1 postfix/qmgr[3897]: A02C54052C: from=xxxxx@yahoo.com.tw,

    postfix se connecte à spamd
    spamd se connecte à postfix l'email prend alors l'ID D335E419A5
    et postfix tente de delivrer l'email a msa.hinet.net qui te le refuse alors.

    du coup ton serveur email genere un autre email pour le renvoyer à l'utilisateur xxxx@yahoo.com.tw 5851640D8F
    qui lui aussi se fait refuser car l'utilisateur xxxx@yahoo.com.tw n'existe pas chez yahoo.

    AMHA tu as configuré dovecot/sasl mais tu n'as pas contraint postfix à ne prendre que les utilisateurs authentifiés à envoyer des emails.

    • [^] # Re: postfix, spamd, dovecot et compagnie

      Posté par . Évalué à 2.

      Merci beaucoup pour ton aide.

      En fait j'avais démasqué la victime et masqué l'attaquant ! comme quoi c'est important de bien regarder les logs en détail avant d'interpréter n'importe comment…

      Donc je viens de rajouter

      disable_vrfy_command = no
      smtp_sender_dependent_authentication = yes
      smtpd_sender_restrictions = reject_sender_login_mismatch

      à mon main.cf

      et

      -o smtpd_sender_restrictions=permit_mynetworks, reject_unauth_destination
      ```

      ```à mon master.cf, dans la section smtps, car il n'y était pas.

      j'ai aussi décommenté

      -o smtpd_reject_unlisted_recipient=yes

      J'ai relancé le serveur et ça fonctionne toujours, ouf…

      De cette manière, ai-je donc contraint postfix à utiliser
      Par contre j'ai entretemps changé mon mot de passe utilisateur et apparemment postfix ne le prend pas en compte. Je pensais qu'il aurait dû bloquer car le mot de passe n'est plus le même que dans le fichier sasl_passwd.

      Je verrais demain vers la même heure si le mail passe encore, et s'il est rejeté ou non. Je vais aussi revenir sur la doc de postfix pour mieux maîtriser les détails de la configuration.

      • [^] # Re: postfix, spamd, dovecot et compagnie

        Posté par (page perso) . Évalué à 2.

        Heu je ne pense pas que cela va régler ton problème d'open relay, pour cela il faut des restrictions sur les récipients.

        Il existe une dizaine d'outils sur le net pour valider la configuration d'un site, recherche "open relay test" dans ton moteur de recherche préféré

  • # RE : Postfix relay involontaire

    Posté par . Évalué à 1.

    Hello,

    Est-ce que ce relais est destiné à être contacté de l'extérieur ?
    Si ce n'ai pas le cas, il est possible de limiter postfix aux réseaux internes :
    dans main.cf

    mynetworks = 127.0.0.0/24, XXX.XXX.XXX.0/24, YYY.YYY.YYY.0/24

    et ensuite

    smtpd_etrn_restrictions = permit_mynetworks, reject
    smtpd_data_restrictions = reject_unauth_pipelining
    smtpd_hard_error_limit = 10
    smtpd_helo_required = yes
    smtpd_client_restrictions = permit_mynetworks
    smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, check_sender_access hash:/etc/sender_access

    et enfin, de il est aussi possible de n'autoriser que certains "sender" via, ici, le fichier sender_access

    L'authentification de l'émetteur est aussi un solution, mais je ne l'ai pas mise en place ….

    Bonne continuation ;-)

  • # RE : Postfix relais involontaire

    Posté par . Évalué à 1.

    Hello,
    merci encore à tous…

    Donc suite aux précédentes modifs j'ai cherché "open relay test" sur mon moteur favori qui m'a effectivement indiqué pas mal de sites de tests. Chez Mailradar, au hasard, on m'indique que tout est OK, mais apparemment ils testent le port 25, qui rejette le relay, normal je pense, car le serveur est sensé travailler avec submission ( je ne comprends pas encore assez bien les commandes telnet, il va vraiment falloir pratiquer un peu…)

    J'avais aussi du coup

    smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
    smtp_sender_dependent_authentication = yes
    smtpd_sender_restrictions = reject_sender_login_mismatch
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

    dans mon main.cf
    et

    smtp inet n - - - - smtpd
    -o content_filter=spamassassin

    submission inet n - - - - smtpd
    -o content_filter=spamassassin
    -o syslog_name=postfix/submission
    -o smtpd_tls_security_level=encrypt
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_reject_unlisted_recipient=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    //# -o smtpd_helo_restrictions=$mua_helo_restrictions
    -o smtpd_sender_restrictions=permit_mynetworks
    -o smtpd_recipient_restrictions=
    -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
    -o milter_macro_daemon_name=ORIGINATING
    smtps inet n - - - - smtpd
    -o content_filter=spamassassin
    -o syslog_name=postfix/smtps
    -o smtpd_tls_wrappermode=yes
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_reject_unlisted_recipient=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    //# -o smtpd_helo_restrictions=$mua_helo_restrictions
    -o smtpd_sender_restrictions=permit_mynetworks,
    //# -o smtpd_recipient_restrictions=
    -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
    -o milter_macro_daemon_name=ORIGINATING

    Dans mon master.cf

    Oui je veux contacter mon serveur de l'extérieur, en fait il gère les utilisateurs de mon domaine et normalement uniquement ceux-là.

    De manière à mieux filtrer les envois et réceptions j'ai donc ajouté au fichier /etc/postfix/main.cf :

    smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/envoyeurs, check_client_access >hash:/etc/postfix/clients

    J'ai créé un fichier "clients"

    /etc/postfix/clients
    mon-domaine.net OK

    Et un fichier "envoyeurs"

    /etc/postfix/envoyeurs
    mon-domaine.net OK

    postmap hash:clients
    postmap hash:envoyeurs
    service postfix reload

    Je réussis à m'envoyer un mail sur une boîte externe, tout semble fonctionner au moins comme avant, je n'ai plus qu'à attendre de nouvelles tentatives.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.