configurando uma porta de retransmissão para postfix smtp no CentOS 7

0

Um servidor do CentOS 7 tem o postfix, o dovecot e o mailx instalados. Eu sou capaz de fazer uma conexão IMAP para o servidor do meu cliente Thunderbird remoto em execução no meu devbox local. Mas eu não sou capaz de enviar e-mails através do servidor do meu Thunderbird local instalado no meu devbox. Depois de muita pesquisa, eu identifiquei que a razão é que o meu devbox ISP está bloqueando a porta 25. Então, eu quero mudar a porta de e-mail de saída para 465. Isso envolve mudanças no servidor firewalld e postfix, além de mudar em o devbox Thunderbird.

Esta questão é diferente de questões semelhantes na rede do stackexchange, porque estou perguntando como fazer isso no CentOS 7, que tem o firewalld complicando as coisas.

O problema com a simples alteração da porta SMTP é que outros servidores de e-mail usam a porta 25 para enviar e-mails uns aos outros. Se eu mudar a porta smtp para 465, ninguém será capaz de enviar e-mail para o meu servidor. Como faço para alterar o postfix, o firewalld e o Thunderbird, para que meu e-mail de saída passe pela porta 465, enquanto a porta 25 permanece aberta para receber de outros servidores de e-mail?

Eu preciso de sintaxe específica para arquivos de configuração específicos. Eu já sei a resposta envolve a criação de um host de retransmissão. Mas como configurar isso no CentOS 7?

Aqui está o que eu fiz até agora:

1.) Adicionei a linha 465 inet n - - - - smtpd a /etc/postfix/master.cf :

   # =========================================  
   # service type  private unpriv  chroot  wakeup  maxproc command + args
   #               (yes)   (yes)   (yes)   (never) (100)  
   # ====================================================================  
    smtp      inet  n   -   n   -   -   smtpd  
    465   inet  n   -   -   -   -   smtpd  

2.) Em seguida, alterei o número da porta SMTP no firewalld para 465, tornando /usr/lib/firewalld/services/smtp.xml como segue:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Mail (SMTP)</short>
  <description>This option allows incoming SMTP mail delivery. If you need to allow remote hosts to connect directly to your machine to deliver mail, enable this option. You $
  <port protocol="tcp" port="465"/>
</service>

3.) Ainda no servidor, digitei systemctl stop postfix then systemctl start postfix then systemctl status postfix e tudo correu bem. Então eu digitei firewall-cmd --reload sem problemas.

4.) Em seguida, mudei a porta smtp de saída no Thunderbird do meu devbox para 465.

5.) No servidor, segui o conselho do @ derobert e digitei tcpdump -n -i any tcp port 465 e tentei enviar um e-mail pelo servidor usando meu devbox Thunderbird, e o seguinte foi impresso no servidor:

tcpdump -n -i any tcp port 465
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
18:07:36.276193 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [S.], seq 3232257854, ack 2935370285, win 14480, options [mss 1460,sackOK,TS val 979486294 ecr 14200749,nop,wscale 7], length 0
18:07:36.361712 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 1, win 115, options [nop,nop,TS val 14200832 ecr 979486294], length 0
18:07:36.362152 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [P.], seq 1:43, ack 1, win 114, options [nop,nop,TS val 979486380 ecr 14200832], length 42
18:07:36.366824 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [P.], seq 1:186, ack 1, win 115, options [nop,nop,TS val 14200832 ecr 979486294], length 185
18:07:36.366865 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [.], ack 186, win 122, options [nop,nop,TS val 979486385 ecr 14200832], length 0
18:07:36.454916 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 43, win 115, options [nop,nop,TS val 14200920 ecr 979486380], length 0
18:07:36.454961 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [P.], seq 43:195, ack 186, win 122, options [nop,nop,TS val 979486473 ecr 14200920], length 152
18:07:36.539237 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 195, win 123, options [nop,nop,TS val 14201009 ecr 979486473], length 0
18:09:20.466757 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [F.], seq 186, ack 195, win 123, options [nop,nop,TS val 14304941 ecr 979486473], length 0
18:09:20.467113 IP my.SERVER.ip.addr.urd > my.DEVBOX.ip.addr.37589: Flags [F.], seq 195, ack 187, win 122, options [nop,nop,TS val 979590485 ecr 14304941], length 0
18:09:20.550693 IP my.DEVBOX.ip.addr.37589 > my.SERVER.ip.addr.urd: Flags [.], ack 196, win 123, options [nop,nop,TS val 14305025 ecr 979590485], length 0
^C
11 packets captured
12 packets received by filter
0 packets dropped by kernel  

6.) Da mesma forma, também com base no conselho do @ derobert, no devbox eu digitei nc my.server.ip.addr 465 < /dev/null e o terminal imprimiu 220 mydomain.com ESMTP Postfix na resposta.

As configurações do servidor de saída (SMTP) no Thunderbird são:

Description:           <Not Specified>  
Server Name:           mydomain.com  
Port:                  465
User Name:             me
Authentication Method: Normal Password
Connection Security:   SSL/TLS  

Mas a conexão do Thunderbird ainda expira e o e-mail não é enviado. O que mais eu preciso fazer?

OBSERVAÇÃO: Quando eu altero /usr/lib/firewalld/services/smtp.xml novamente para indicar a porta 25 e deixo tudo igual aos outros 5 passos acima, recupero a capacidade de receber e-mails do servidor, mas não consigo enviar e-mails através do servidor.

EDITAR:

@jsbillings sugeriu que eu definisse a porta de envios no master.cf. Para avançar, digitei postconf -M no terminal para imprimir o conteúdo relevante do master.cf. Ainda não consigo enviar e-mails, mas aqui estão os resultados após as alterações que venho fazendo hoje durante o trabalho:

smtp       inet  n       -       n       -       -       smtpd
587        inet  n       -       -       -       -       smtpd
submission inet  n       -       -       -       -       smtpd 
-o   smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes 
-o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth 
-o smtpd_sasl_security_options=noanonymous 
-o smtpd_sasl_local_domain=$myhostname 
-o smtpd_client_restrictions=permit_sasl_authenticated,reject 
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual 
-o smtpd_sender_restrictions=reject_sender_login_mismatch 
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
pickup     unix  n       -       n       60      1       pickup
cleanup    unix  n       -       n       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
rewrite    unix  -       -       n       -       -       trivial-rewrite
bounce     unix  -       -       n       -       0       bounce
defer      unix  -       -       n       -       0       bounce
trace      unix  -       -       n       -       0       bounce
verify     unix  -       -       n       -       1       verify
flush      unix  n       -       n       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       n       -       -       smtp
relay      unix  -       -       n       -       -       smtp
showq      unix  n       -       n       -       -       showq
error      unix  -       -       n       -       -       error
retry      unix  -       -       n       -       -       error
discard    unix  -       -       n       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       n       -       -       lmtp
anvil      unix  -       -       n       -       1       anvil
scache     unix  -       -       n       -       1       scache
    
por CodeMed 03.03.2015 / 00:56

1 resposta

1

Você não pode esperar que outras pessoas tenham um servidor SMTP escutando em qualquer porta diferente da porta 25. Se o seu ISP estiver bloqueando a porta de saída 25, você poderá configurar seu sistema de pós-correção para retransmitir mensagens por meio do ISP, como < href="http://lists.centos.org/pipermail/centos/2013-November/138548.html"> neste exemplo para Comcast .

Honestamente, se você estiver executando seu próprio serviço de e-mail em um ISP que está bloqueando a porta de saída 25, convém considerar alternar o serviço para um provedor de Internet comercial que não bloqueie a porta 25 ou mova seu e-mail. para um provedor de hospedagem que permite SMTP.

EDITAR:

Entendo melhor o que você está perguntando agora. Você quer que seu servidor SMTP receba e-mail E seja um host de envio de SMTP. Você precisará adicionar um segundo serviço a /etc/postfix/master.cf e configurar a autenticação SASL. O Wiki da Dovecot tem configuração de exemplo para este processo.

    
por 03.03.2015 / 03:31