O servidor SMTP Exim4 permite que usuários não autenticados enviem e-mails

1

Eu uso Debian 7.x amd64 + Exim 4.82 em um servidor dedicado, eu também tenho um servidor SMTP em funcionamento em uma hospedagem compartilhada. Eu gostaria de configurar um SMTP no meu VPS que terá alguns scripts / filtros de entrega especiais (por exemplo, enviar uma cópia de todos os e-mails de saída para algumas contas)

Atualmente, a situação no VPS é a seguinte:

  • envia e-mail local (entrada) via host inteligente sem qualquer autenticação
  • envia todo o e-mail de saída via host inteligente sem qualquer autenticação < == Comportamento indesejado
  • se o cliente SMTP tiver o tipo de autenticação definido como "Senha normal", ele solicitará as credenciais e entregará o email corretamente
  • todos os casos acima se comportam da mesma maneira com ou sem a criptografia TLS ativada no lado do cliente

/etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype='smarthost'
dc_other_hostnames='myhost.mycompany.com; localhost'
dc_local_interfaces='127.0.0.1; xxx.xxx.xxx.xxx' <=== public IPv4 address
dc_readhost='mycompany.com'
dc_relay_domains='*'
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.external.com'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

/etc/exim4/passwd.client content:

*:smtp.external.com:secret

Eu gerou certificados auto-assinados e habilitei TLS /etc/exim4/exim4.conf.localmacros

MAIN_TLS_ENABLE = 1

Eu tentei usar plan_text e plain_login, agora estou usando saslauthd (tenho certeza que funciona, porque eu já testei com o anterior com o postfix).

exim -bP authenticator_list output:

plain_saslauthd_server
login_saslauthd_server
cram_md5
plain
login

telnet myhost.mycompany.com 25 output:

EHLO test
250-myhost.mycompany.com Hello xxxxxxxxx [xxx.xxx.xxx.xxx]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
...
AUTH PLAIN <random string>
503 AUTH command used when not advertised

Eu assumo que é porque nenhum autenticador é anunciado (não existe uma linha 250-AUTH ... na resposta EHLO), mas por padrão TODOS os autenticadores padrão têm essa condição

.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_in_cipher}{}{}{*}}
.endif

Suponho que tenho que adicionar AUTH_SERVER_ALLOW_NOTLS_PASSWORDS ao meu arquivo /etc/exim4/exim4.conf.localmacros para obter a condição server_advertise_condition processada, mas ela não será considerada de qualquer maneira se o cliente não tiver a criptografia TLS ativada (sou eu certo?).

Então, estou um pouco confuso sobre o que fazer agora. Quero que minha configuração funcione da seguinte maneira:

  • solicitações fetchmail (mail) locais são roteadas localmente sem qualquer autenticação (ou seja, tarefas agendadas)
  • solicitações remotas (simples ou criptografadas, não importa) devem funcionar de qualquer destino (laptops de meus colegas) para qualquer outro destino (nossos clientes) roteamento através de um SMTP externo (smarthost) e DEVE exigir autenticação do usuário, se necessário ele rejeitará / negará a solicitação
por Salaros 06.02.2014 / 14:08

1 resposta

2

Remova o * de dc_relay domains . Isso permite que qualquer pessoa retransmita. Se você está retransmitindo para sua rede local, coloque seus intervalos de IP em dc_relay_nets .

Se você quiser permitir que usuários autenticados enviem e-mails de qualquer lugar, você precisa de uma regra de aceitação para usuários autenticados. A configuração padrão deve incluir as regras apropriadas para ignorar verificações de usuários autenticados para que eles possam enviar e-mails como se estivessem na rede local.

Se você adicionar AUTH_SERVER_ALLOW_NOTLS_PASSWORDS ao seu /etc/exim4/exim4.conf.localmacros , poderá testar a autenticação em uma conexão não segura. É uma boa prática não permitir isso, pois qualquer um que possa detectar a rede pode obter suas credenciais.

Você pode adicionar essa macro para ativar a porta de envio para usuários remotos. A porta de envio é a porta preferida para envio remoto.

 daemon_smtp_ports = 25 : 587

Na minha configuração padrão, os autenticadores do lado do servidor são comentados. Eu os usei com êxito para autenticação de texto simples e md5. O ID do usuário e a senha são os segundo e terceiro campos.

    
por 06.02.2014 / 14:35