Paramétrage Postfix sous debian

Résolu
Bonjour,

je suis en train d'essayer apres avoir lancer sans erreur mon postfix d'envoyer un mail avec la fonction mail en commande et voici mon erreur lorsque je regarde mail.log

Aug 4 20:09:58 DebianASK postfix/local[2519]: fatal: open database /etc/aliases.db: No such file or directory
Aug 4 20:09:59 DebianASK postfix/master[2382]: warning: process /usr/lib/postfix/local pid 2519 exit status 1
Aug 4 20:09:59 DebianASK postfix/master[2382]: warning: /usr/lib/postfix/local: bad command startup -- throttling

voici le ls de etc:

DebianASK:/etc# ls -la | grep alia*
-rw-r--r-- 1 root root 199 30 juil. 13:17 aliases

A savoir que le fichier main.cf n'exister pas non plus lorsque j'ai installer postfix, j'ai du le creer moi même.

MErci beaucoup.

10 réponses

  1. Bonjour,
    Tout d'abord le fichier aliases.
    Tu as remarqué qu'il y a /etc/aliases en texte parfaitement lisible et /etc/aliases.db qui est une petite base de données au format Berkeley. Elle est générée à partir du fichier /etc/aliases.
    Comme l'a dit un intervenant précédent il faut exécuter la commande newaliases pour générer ou mettre à jour le fichier.

    Si dans le fichier tu rajoute la ligne suivante :
    directeur: lucien,marcel,gerard
    et qu'ensuite tu exécutes le commande newaliases, alors Lucien, Marcel et Gégé recevront le message.
    Si tu oublie la commande, ils ne le recevront pas.

    Autre info, il n'est pas utile d'arrêter le DAEMon postfix pour exécuter newaliases.
    Ça marche aussi très bien.

    Ensuite, pourquoi toto est en minuscule ?
    Tout simplement parce que les adresses email transitent toujours en minuscule.
    Même si ton client de messagerie les rédige en Majuscule, le serveur les envoie comme ça.

    Il n'y a pas si longtemps, il fallait impérativement créer les comptes utilisateurs unix en minuscule, j'ai d'ailleurs appris à le faire comme cela et j'ai conservé l'habitude.

    Enfin, c'est bien d'avoir installé postfix pour envoyer des messages, mais maintenant il faut un serveur POP ou IMAP pour les recevoir et il faut créer les comptes utilisateurs dedans.

    Est-ce que tu as bien un logiciel serveur POP ou IMAP ? (cyrus, courier, etc...)

    Bien cordialement.
    Jonas.

    1. Ce que je n'arrive pas saisir, je sais pas si vous avez bien compris l'objectif de mon serveur, c'est comme effectuer ce transfert de mail après analyse par l'antispam. Autrement dit, je souhaiterai que ce traitement soit transparent, je ne voudrai pas que tout mes mails soit remis avec un utilisateur toto dans la boite de mes utilisateurs finaux. Il faut que le destinataire reste inchangé. Ceci dit, je peux utiliser ces comptes effectivement pour tester mon serveur. Je continue avec vos précieuse piste en attendant.
  2. je ne suis pas sûr d'avoir bien compris si le sujet est résolu ou pas.

    s'il s'agit de configurer spamassassin, dans ce cas il faut ouvrir un nouveau post (càd poser une nouvelle question sur le forum).
    1. Désolé pour le multi post, mais comme j'avance, je met à jour mon problème.
      Je pense avoir ciblé le problème, en fait, je viens de me rendre compte que lorsque j'essaye de mettre un smtp et me mailé sur une adresse valide, il ne prend pas l'adresse relayhost que j'ai rempli, donc je retrouve mon mail en attente lorsque je fait mailq.

      Aug  6 18:15:57 smtp postfix/pickup[5495]: 1AE0766E0E: uid=0 from=<root>
      Aug  6 18:15:57 smtp postfix/cleanup[5509]: 1AE0766E0E: message-id=<20100806161557.1AE0766E0E@mail.postfix.iperion.fr>
      Aug  6 18:15:57 smtp postfix/qmgr[5496]: 1AE0766E0E: from=<root@mail.postfix.iperion.fr>, size=343, nrcpt=1 (queue active)
      Aug  6 18:15:57 smtp postfix/error[5500]: 1AE0766E0E: to=<mikael.fabre@iperion.fr>, relay=none, delay=0.07, delays=0.05/0/0/0.01, dsn=4.3.2, status=deferred (deferred transport)
      


      main.cf:

      inet_interfaces = all 
      
      # INFORMATION SUR LES REPERTOIRES LOCAUX 
      queue_directory = /var/spool/postfix 
      program_directory = /usr/lib/postfix 
      daemon_directory = /usr/lib/postfix 
      
      #POSSESSION DES FILES D'ATTENTE ET DES PROCESSUS 
      mail_owner = postfix 
      
      #NOM DE LA MACHINE ET DU DOMAINE 
      myhostname = mail.postfix.iperion.fr
      
      #POUR L'ENVOI DU COURRIER 
      myorigin = $myhostname 
      
      #POUR LA RECEPTION DU COURRIER 
      mydestination = $myhostname
      
      #MODE DE TRANSPORT 
      default_transport = smtp
      defer_transports = smtp
      
      #GESTION DES ALIAS 
      alias_maps = hash:/etc/aliases 
      alias_database = hash:/etc/aliases
      
      #DELIVRANCE DU COURRIER 
      mailbox_command = /usr/bin/procmail 
      
      #CONTROLE DES COURRIER 
      mynetworks = 172.16.0.0/24, 127.0.0.0/8 
      mynetworks_style = class
      
      #DELIVRANCES SIMULTANEES A LA MEME DESTINATION 
      local_destination_concurrency_limit = 2 
      default_destination_concurrency_limit = 10 
      
      relayhost = smtp.orange.fr
      #sender_canonical_maps = hash:/etc/postfix/sender_canonical 
      home_mailbox = .maildir/
      1. essaie : relayhost = [smtp.orange.fr]

        plutôt que : relayhost = smtp.orange.fr

        le problème pourrait être aussi à ce niveau :

        #MODE DE TRANSPORT
        default_transport = smtp
        defer_transports = smtp
      2. je ne vois pas ce qui peut poser problème sur ces paramètre "Mode de transport" ??

        J'ai modifié la configuration pour ces paramètres:

        mynetworks = 172.16.0.0/24, 127.0.0.0/8
        mynetworks_style = subnet
        relayhost = [smtp.orange.fr]

        Sa ne fonctionne toujours pas, lorsque je mail une adresse valide, autrement dit la ou je suis censé passé par le relayhost, j'ai n'ai pas de relai qui se fait comme le log précédent, mon mail est donc en liste d'attente comme si je n'avais pas de connexion internet sur la machine.
      3. Sa fonctionne enfin, il fallait paramétrer les redirection des adresses de reception et d'emission, si les fichier n'existe pas, il faut faire un postmap du fichier:

        relayhost = [smtp.orange.fr]
        sender_canonical_maps = hash:/etc/postfix/sender_canonical
        recipient_canonical_maps = hash:/etc/postfix/recipient_caninical
        home_mailbox = .maildir/


        Merci beaucoup !
      4. ben oui !

        la redirection d'adresse ...

        on en avait parlé ...

        ^ ^

        ps : bravo !
      5. J'ai encore des soucis, sa marche un peu quand sa veux.. Bref, est-ce que vous savez si le relayhost permet de transferer le mail sans que sa modifie quoi que ce soit?

        Moi en gros, j'ai besoin que ce serveur revoie le mail tel quel et de seulement modifié l'entete en ajoutant *****SPAM***** quand c'est le cas, ce que j'ai paramétré dans spamassassin sans probleme..

        En fait, depuis que sa fonctionne bien, sa ne passe plus car le smtp d'orange demande de s'authentifier, donc je vais le faire via un fichier..
        Rien d'anormal jusque là non ?
    2. Bon petite mise à jour du problème a résoudre, je vais procéder par étapes, sinon on va partir dans tout les sens:

      Envoyer un mail de mon serveur postfix vers le serveur exchange sur le même LAN:

      Aug  6 16:59:16 smtp postfix/pickup[5144]: DE9A866DF6: uid=0 from=<root>
      Aug  6 16:59:16 smtp postfix/cleanup[5181]: DE9A866DF6: message-id=<20100806145916.DE9A866DF6@DebianASK>
      Aug  6 16:59:16 smtp postfix/qmgr[5145]: DE9A866DF6: from=<root@DebianASK.postfix.iperion>, size=299, nrcpt=1 (queue active)
      Aug  6 16:59:17 smtp postfix/error[5184]: DE9A866DF6: to=<gregory.coustou@iperion.fr>, relay=none, delay=0.13, delays=0.08/0.02/0/0.03, dsn=4.3.2, status=deferred (deferred transport)
      


      Voilà le problème, pourant je ping bien le serveur exchange, mon fichier de configuration:
      inet_interfaces = all 
      
      # INFORMATION SUR LES REPERTOIRES LOCAUX 
      queue_directory = /var/spool/postfix 
      program_directory = /usr/lib/postfix 
      daemon_directory = /usr/lib/postfix 
      
      #POSSESSION DES FILES D'ATTENTE ET DES PROCESSUS 
      mail_owner = postfix 
      
      #NOM DE LA MACHINE ET DU DOMAINE 
      myhostname = DebianASK
      mydomain = postfix.iperion
      
      #POUR L'ENVOI DU COURRIER 
      myorigin = $myhostname 
      
      #POUR LA RECEPTION DU COURRIER 
      mydestination = $myhostname, $myhostname.postfix.iperion, localhost.postfix.iperion, localhost
      
      #MODE DE TRANSPORT 
      default_transport = smtp
      defer_transports = smtp
      
      #GESTION DES ALIAS 
      alias_maps = hash:/etc/aliases 
      alias_database = hash:/etc/aliases.db
      
      #DELIVRANCE DU COURRIER 
      mailbox_command = /usr/bin/procmail 
      
      #CONTROLE DES COURRIER 
      mynetworks = 172.16.0.0/24, 127.0.0.0/8 
      mynetworks_style = class
      
      #DELIVRANCES SIMULTANEES A LA MEME DESTINATION 
      local_destination_concurrency_limit = 2 
      default_destination_concurrency_limit = 10 
      
      #relayhost = srvexch.domiperion.local
      #sender_canonical_maps = hash:/etc/postfix/sender_canonical 
      home_mailbox = .maildir
      
      1. si tu passes par ton propre serveur smtp dans ce cas il faut regarder le lien que j'ai donné (cela ressemble étrangement à ton problème).

        un penguin sur la banquise !
        1. Effectivement, sa parle des rejets des adresses locale etc... j'approfondis demain.
          Je reviens faire un point après.
          Merci
      2. Non, je ne veux pas passer par mon FAI, mais juste une fois la verification anti-spam faites, envoyé avec mon serveur SMTP les mail au "vrai" serveur de mail du LAN.

        en gros, le serveur SMTP est juste la pour acheminer les mail vérifié par l'antispam, rien de plus.. et meme ça, j'ai du mal à le faire.

        Je veux bien un tuto oui..

        Encore merci pour l'aide.
        1. (unknown user: "toto")

          mal créé ton utilisateur ??

          ou bien peut-être ceci :

          http://www.postfix.org/LOCAL_RECIPIENT_README.html

          ou bien, passes-tu par ton FAI ?

          DebianASK.domiperion.local est peut-être inconnu, tu es donc rejeté si tu passes par ton FAI (dans ce cas, il faut jouer avec la réécriture d'adresse :

          > redfox@mandriva[192.168.1.2]:~$ mail redfox@mandriva.me.com      
          Subject: Et si ...      
          ...c'était vrai.      
          .      
          EOT      
          > redfox@mandriva[192.168.1.2]:~$       
          > redfox@mandriva[192.168.1.2]:~$       
          > redfox@mandriva[192.168.1.2]:~$ mail      
          Heirloom mailx version 12.4 7/29/08.  Type ? for help.      
          "/var/spool/mail/redfox": 1 message 1 new      
          >N  1 redfox             Thu Aug  5 19:42   18/632   Et si ...      
          ?       
          Message  1:      
          From monuserfai@monfai.fr  Thu Aug  5 19:42:14 2010      
          Return-Path: <monuserfai@monfai.fr>      
          X-Original-To: redfox@mandriva.me.com      
          Delivered-To: redfox@mandriva.me.com      
          Date: Thu, 05 Aug 2010 19:42:14 +0200      
          To: redfox@mandriva.me.com      
          Subject: Et si ...      
          User-Agent: Heirloom mailx 12.4 7/29/08      
          Content-Type: text/plain; charset=iso-8859-1      
          From: monuserfai@monfai.fr (redfox)      
          Status: R      
          
          ...c'était vrai.      
          
          ?       
          At EOF      
          ? q      
          Held 1 message in /var/spool/mail/redfox      
          > redfox@mandriva[192.168.1.2]:~$ 


          je te fournirai le tuto si tu le souhaites.

          les mails analyser par un anti-spam (j'ai choisi ActiveSpamKiller)

          j'utilise Spamassassin ..... relativement simple à configurer (je l'ai un peu décortiqué, je peux te joindre le lien si tu le souhaites).

          un penguin sur la banquise !
          1. Merci, effectivement, je n'ai plus d'erreur après avoir régénéré le fichier database de aliases.

            Par contre, il me reste une erreur, lorsque j'envoie un mail, mes utilisateurs sont en fait inconnu:
            
            Aug  5 10:36:16 DebianASK postfix/local[2160]: D150566DE4: to=<ToTo@DebianASK.domiperion.local>, relay=local, delay=0.05, delays=0.02/0/0/0.03, dsn=5.1.1, status=bounced (unknown user: "toto")
            Aug  5 10:36:16 DebianASK postfix/qmgr[2125]: D150566DE4: removed
            
            


            Pour les ajouter, j'ai fait tout simplement:
            adduser ToTo
            passwd ToTo

            Je trouve bizarre qu'il m'écrive : unknown user: "toto" sans les majuscules..

            ---------------------

            Autre chose, mon objectif final, c'est d'utiliser postfix juste pour rappatrier sur mon vrai serveur de mail (exchange) les mails analyser par un anti-spam (j'ai choisi ActiveSpamKiller). Je me demande bien si c'est alors utile de paramétré des comptes mail???

            Encore merci..
            1. Merci, je testerai demain, même si c'est une Mandriva, je pense au regard du fichier de configuration qu'il me manque des paramètre.

              Par contre, j'ai pas de fichier nommé /etc/aliases.db, il va me le manqué, c'est sur.
              Pourrait tu me copier coller ce fichier? Quel est son rôle? un fichier d'appel a une base de donnée ?

              Merci pour ces informations.
              1. essaie ceci

                # postfix stop 
                # newaliases  
                # postfix start


                newaliases = commande permettant de créer le fichier /etc/aliases.db
              2. Ok, merci, j'essaye ça demain matin.
            2. Bonjour,

              si ça peut aider :

              > root@mandriva[192.168.1.2]:~# whereis postfix 
              postfix: /usr/sbin/postfix /etc/postfix /usr/lib/postfix 
              > root@mandriva[192.168.1.2]:~# 
              > root@mandriva[192.168.1.2]:~# ls -l /etc/postfix/aliases* 
              -rw-r--r-- 1 root root  2261 2008-07-06 17:20 /etc/postfix/aliases 
              -rw-r--r-- 1 root root 12288 2008-07-06 17:21 /etc/postfix/aliases.db 
              > root@mandriva[192.168.1.2]:~# 
              > root@mandriva[192.168.1.2]:~# cat /etc/postfix/main.cf 
              # Please be sure to read the /usr/share/doc/postfix/README.MDK file 
              # to learn about differences from stock postfix to Mandriva package. 
              # This file contains only the parameters changed from a default install 
              # see /etc/postfix/main.cf.dist for a commented, fuller version of this file. 
              
              # These are changed by postfix install script 
              readme_directory = /usr/share/doc/postfix/README_FILES 
              html_directory = /usr/share/doc/postfix/html 
              sendmail_path = /usr/sbin/sendmail.postfix 
              setgid_group = postdrop 
              command_directory = /usr/sbin 
              manpage_directory = /usr/share/man 
              daemon_directory = /usr/lib/postfix 
              newaliases_path = /usr/bin/newaliases 
              mailq_path = /usr/bin/mailq 
              queue_directory = /var/spool/postfix 
              mail_owner = postfix 
              
              # User configurable parameters 
              mynetwork = 192.168.1.1/24, 127.0.0.1 
              inet_interfaces = localhost 
              mynetworks_style = host 
              #delay_warning_time = 4h 
              smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandriva Linux) 
              unknown_local_recipient_reject_code = 450 
              smtp-filter_destination_concurrency_limit = 2 
              lmtp-filter_destination_concurrency_limit = 2 
              data_directory = /var/lib/postfix 
              relayhost = [smtp.monfai.fr] 
              smtp_sasl_auth_enable = yes 
              smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
              smtp_sasl_security_options = 
              
              sender_canonical_maps = hash:/etc/postfix/canonical 
              
              > root@mandriva[192.168.1.2]:~# 


              un penguin sur la banquise !