Como configurar o sendmail para realmente enviar emails (!) [closed]

1

Estou configurando um servidor de e-mail, mas o sendmail não me permite enviar e-mails de dispositivos remotos e / ou softwares. Minha configuração: CentOS 6.4, Sendmail 8.14.4.

Aqui está a mensagem que recebo quando tento enviar e-mails de fora do servidor

sendmail[25390]: rA4Fp855025390: [213.x.x.x] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
sendmail[25391]: rA4Fp86s025391: ruleset=check_rcpt, arg1=<[email protected]>, relay=[213.x.x.x], reject=550 5.7.1 <[email protected]>... Relaying denied. IP name lookup failed [213.x.x.x]
sendmail[25391]: rA4Fp86s025391: from=<[email protected]>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=[213.x.x.x]

Eu sei que há algo com o host de retransmissão, mas e se você não conhece o host de retransmissão? Quero dizer ... Enfim, aqui está o arquivo sendmail.mc

divert(-1)dnl
include('/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID('setup for linux')dnl
OSTYPE('linux')dnl
dnl define('confSMTP_LOGIN_MSG', '$j Sendmail; $b')dnl
dnl define('confLOG_LEVEL', '9')dnl
dnl define('SMART_HOST', 'smtp.your.provider')dnl
define('confDEF_USER_ID', ''8:12'')dnl
dnl define('confAUTO_REBUILD')dnl
define('confTO_CONNECT', '1m')dnl
define('confTRY_NULL_MX_LIST', 'True')dnl
define('confDONT_PROBE_INTERFACES', 'True')dnl
define('PROCMAIL_MAILER_PATH', '/usr/bin/procmail')dnl
define('ALIAS_FILE', '/etc/aliases')dnl
define('STATUS_FILE', '/var/log/mail/statistics')dnl
define('UUCP_MAILER_MAX', '2000000')dnl
define('confUSERDB_SPEC', '/etc/mail/userdb.db')dnl
define('confPRIVACY_FLAGS', 'authwarnings,novrfy,noexpn,restrictqrun')dnl
define('confAUTH_OPTIONS', 'A')dnl
MASQUERADE_AS(mydomain.com)dnl
MASQUERADE_DOMAIN(mydomain.com)dnl
dnl define('confAUTH_OPTIONS', 'A p')dnl
dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confCACERT_PATH', '/etc/mail/certs')dnl
dnl define('confCACERT', '/etc/mail/certs/CAcert.pem')dnl
dnl define('confSERVER_CERT', '/etc/mail/certs/MYcert.pem')dnl
dnl define('confSERVER_KEY', '/etc/mail/certs/MYkey.pem')dnl
dnl define('confCLIENT_CERT', '/etc/mail/certs/MYcert.pem')dnl
dnl define('confCLIENT_KEY', '/etc/mail/certs/MYkey.pem')dnl
dnl define('confDONT_BLAME_SENDMAIL', 'groupreadablekeyfile')dnl
dnl define('confTO_QUEUEWARN', '4h')dnl
dnl define('confTO_QUEUERETURN', '5d')dnl
dnl define('confQUEUE_LA', '12')dnl
dnl define('confREFUSE_LA', '18')dnl
define('confTO_IDENT', '0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE('no_default_msa', 'dnl')dnl
FEATURE('smrsh', '/usr/sbin/smrsh')dnl
FEATURE('mailertable', 'hash -o /etc/mail/mailertable.db')dnl
FEATURE('virtusertable', 'hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl define('confMAX_DAEMON_CHILDREN', '20')dnl
dnl define('confCONNECTION_RATE_THROTTLE', '3')dnl
FEATURE('relay_hosts_only')dnl
FEATURE(local_procmail, '', 'procmail -t -Y -a $h -d $u')dnl
FEATURE('access_db', 'hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE('blacklist_recipients')dnl
EXPOSED_USER('root')dnl
dnl define('confLOCAL_MAILER', 'cyrusv2')dnl
dnl define('CYRUSV2_MAILER_ARGS', 'FILE /var/lib/imap/socket/lmtp')dnl
dnl DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl DAEMON_OPTIONS('Port=submission, Name=MSA, M=Ea')dnl
dnl DAEMON_OPTIONS('Port=smtps, Name=TLSMTA, M=s')dnl
dnl DAEMON_OPTIONS('port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl DAEMON_OPTIONS('Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
FEATURE('accept_unresolvable_domains')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
dnl FEATURE('relay_based_on_MX')dnl
LOCAL_DOMAIN('mydomain.com')dnl
dnl MASQUERADE_AS('mydomain.com')dnl
dnl FEATURE(masquerade_envelope)dnl
dnl FEATURE(masquerade_entire_domain)dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl

O que devo fazer? Como sei se o SMTP-AUTH funciona? TLS?

Muito obrigado pela sua ajuda -.-

    
por Mike 04.11.2013 / 17:16

1 resposta

4

Para iniciantes, o sendmail tem uma curva de aprendizado bastante íngreme, o MTA recomendado é o postfix.

Para determinar o que o sendmail atualmente suporta; telnet para a porta smtp e emitir o comando help, o sendmail exibirá seus recursos:

] $ telnet localhost 25

 220 example.com ESMTP Sendmail 8; Mon, 4 Nov 2013 17:27:20 +0100

ajuda

214-2.0.0 This is sendmail
214-2.0.0 Topics:
214-2.0.0       HELO    EHLO    MAIL    RCPT    DATA
214-2.0.0       RSET    NOOP    QUIT    HELP    VRFY
214-2.0.0       EXPN    VERB    ETRN    DSN     AUTH
214-2.0.0       STARTTLS

AUTH significa que este servidor sendmail suporta autenticação SMTP.

STARTTLS significa que SSL / startTLS é suportado.

Para habilitar ambos, você precisará modificar sua configuração do sendmail. O arquivo de configuração do sendmail é, bem, digamos claro como lama. A maneira mais fácil é editar o sendmail.mc um arquivo de macro que pode ser usado para gerar uma configuração funcional do sendmail.cf. As linhas que começam com # são comentários, assim como as linhas que começam com dnl .

As três linhas seguintes não ativadas habilitarão a autenticação SMTP:

 # /etc/mail/sendmail.mc
 <snip>
 define('confAUTH_OPTIONS', 'A p')dnl
 TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
 define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 <snip>

Para ativar o TLS / SSL, descomente as seguintes linhas e certifique-se de que os certificados (auto-assinados ou públicos) estejam presentes.

define('confCACERT_PATH', '/etc/mail/certs')dnl
define('confCACERT', '/etc/mail/certs/CAcert.pem')dnl
define('confSERVER_CERT', '/etc/mail/certs/MYcert.pem')dnl
define('confSERVER_KEY', '/etc/mail/certs/MYkey.pem')dnl

A maioria dos clientes usará starttls através da porta smtp 25, mas você pode ter um SSL somente smtp sendmail escutando na porta 465 removendo o comentário:

DAEMON_OPTIONS('Port=smtps, Name=TLSMTA, M=s')dnl 

verifique se os pacotes rpm do sendmail-cf e do cyrus-sasl estão instalados:

 ]#  yum -y install cyrus-sasl sendmail-cf

Gere o novo sendmail.cf do seu sendmail.mc modificado e reinicie o sendmail

 ]#  cd /etc/mail ; ./make
 ]#  service sendmail restart

Configure o servidor de autenticação sasl com seu método de autenticação preferido para usuários de e-mail e verifique se ele estará em execução. (o padrão é definido para pam em / etc / sysconfig / saslauthd)

 ]#  chkconfig saslauthd on
 ]#  service saslauthd start

Agora, para testar o SMTPAUTH, usaremos o método PLAIN. Verificaremos se o teste de telnet anterior agora mostra suporte para o método AUTH.

Se isso acontecer, tentaremos a autenticação simples. Isso requer uma string codificada na base64 contendo um nome de usuário + senha separado do NULL:

 ]$  perl -MMIME::Base64 -e 'print encode_base64("
 ]$  openssl s_client -starttls smtp -connect example.com:25
 .   <snip more SSL stuff> 
 .   ---
 .   SSL handshake has read 17078 bytes and written 357 bytes
 .   ---
 .   New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
 .   
 EHLO example2.com
 .
 .   250-mail.example.com Hello example2.com [1x.2x.3x.4x], pleased to meet you
 .   250-ENHANCEDSTATUSCODES
 .   250-PIPELINING
 .   250-8BITMIME
 .   250-SIZE
 .   250-DSN
 .   250-ETRN
 .   250-AUTH LOGIN PLAIN
 .   250-DELIVERBY
 .   250 HELP
 .
 AUTH PLAIN AFVTRVJOQU1FAFBBU1NXT1JE
0USERNAME
 220 example.com ESMTP Sendmail 8; Mon, 4 Nov 2013 17:27:20 +0100
0PASSWORD");' AFVTRVJOQU1FAFBBU1NXT1JE

Agora podemos capturar dois pássaros com uma cajadada, verificar a configuração de SSL e a autenticação PLAIN (PLAIN e LOGIN só são permitidos em conexões SSL criptografadas):

214-2.0.0 This is sendmail
214-2.0.0 Topics:
214-2.0.0       HELO    EHLO    MAIL    RCPT    DATA
214-2.0.0       RSET    NOOP    QUIT    HELP    VRFY
214-2.0.0       EXPN    VERB    ETRN    DSN     AUTH
214-2.0.0       STARTTLS

Agora, os clientes que usam autenticação SMTP válida podem usar seu servidor sendmail para enviar e-mail.

    
por 04.11.2013 / 17:35