Postfix, hostname e / etc / aliases

2

Depois de procurar por horas em SF / SO e procurar no Google muito, ainda não consigo descobrir como / etc / aliases é usado pelo postfix.

  1. Eu uso um servidor Amazon Linux EC2 (tipo Centos6)
  2. Meu nome de host do servidor está definido como srv.example.com
  3. Eu configurei o postfix 2.6.6 com uma configuração de cliente nulo (somente para enviar e-mails para meu site e enviar relatórios para meu e-mail pessoal)
  4. Eu configurei /etc/aliases com regras, incluindo root: [email protected]
  5. Eu corro newaliases para levar em conta as alterações em /etc/aliases
  6. reiniciei o postfix sudo service postfix restart
  7. echo "something" | mailx -s D"subject" root envia um email para [email protected] em vez de [email protected]

Eu rastreei isso em /var/log/maillog :

Mar 13 17:21:23 srv postfix/smtpd[14462]: A27B540A87: client=localhost[127.0.0.1]
Mar 13 17:21:23 srv postfix/cleanup[14466]: A27B540A87: message-id=<55031c93.Il7wUJmrkLu/WLNL%[email protected]>
Mar 13 17:21:23 srv opendkim[2065]: A27B540A87: DKIM-Signature field added (s=prod-key-swf, d=example.com)
Mar 13 17:21:23 srv postfix/qmgr[14458]: A27B540A87: from=<[email protected]>, size=820, nrcpt=1 (queue active)
Mar 13 17:21:23 srv sendmail[14461]: t2DHLNlC014461: to=root, [email protected] (serveur srv) (500/500), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30309, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as A27B540A87)
Mar 13 17:21:25 srv postfix/smtp[14467]: A27B540A87: to=<[email protected]>, relay=aspmx.l.google.com[64.233.186.27]:25, delay=2, delays=0.1/0.01/1.4/0.48, dsn=5.1.1, status=bounced (host aspmx.l.google.com[64.233.186.27] said: 550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 f78si2479139qkh.47 - gsmtp (in reply to RCPT TO command))
Mar 13 17:21:26 srv postfix/bounce[14468]: A27B540A87: sender non-delivery notification: 2297E40A86
Mar 13 17:21:26 srv postfix/qmgr[14458]: A27B540A87: removed

Minhas únicas modificações de configuração do postfix são ( configuração de cliente nulo ):

  • myhostname = srv.example.com
  • myorigin = $mydomain
  • relayhost = $mydomain
  • inet_interfaces = loopback-only
  • mydestination =

Qual etapa estou faltando para que as declarações de / etc / aliases sejam aplicadas como esperado?

Meu sudo postconf -n :

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = loopback-only
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
milter_default_action = accept
mydestination =
myhostname = srv.example.com
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = $smtpd_milters
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relayhost = $mydomain
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_milters = inet:127.0.0.1:8891
unknown_local_recipient_reject_code = 550
    
por iwalktheline 13.03.2015 / 20:51

1 resposta

4

Depois de entender que um "cliente nulo" é um cliente nulo , gosto um pouco mais de entender domínio virtual postfix como .

Em poucas palavras

  1. Um cliente nulo é ideal para um servidor de email "enviar apenas" (o que eu preciso para o meu site)
  2. Configurar um "cliente nulo" requer a definição de myorigin para o nome do host do servidor
  3. myorigin also specifies the default domain name that is appended to recipient addresses that have no @domain part (tirada de /et/postfix/main.cf ).
  4. O postfix não usará meu /etc/aliases para encaminhar meus e-mails locais, pois meus e-mails para root / fail2ban / me ... serão reescritos para [email protected] / [email protected] ...
  5. Então, preciso do postfix para reescrever [email protected] to [email protected]
  6. Adicione @srv.example.com [email protected] em /etc/postfix/canonical
  7. Adicione canonical_maps = hash:/etc/postfix/canonical em /etc/postfix/main.cf
  8. Executar postmap /etc/postfix/canonical e reiniciar o postfix ( sudo service postfix restart )

Reescrevendo correio local com regex

Eu fui um pouco mais longe para manter as informações do usuário alvo original. Você pode usar expressões regulares para isso:

  • Em /etc/postfix/main.cf , em vez de canonical_maps = hash:/etc/postfix/canonical , use canonical_maps = regexp:/etc/postfix/canonical
  • Em /etc/postfix/canonical , em vez de @srv.example.com [email protected] , usei (.+)@(.+).example.com [email protected] para receber e-mails para [email protected] (terei srv2, srv3, srvx mais tarde ...)

Pedi ajuda cedo demais, espero que essa resposta ajude outras pessoas a se depararem com o mesmo problema.

    
por 15.03.2015 / 18:03