# Problemas con Servidor SMTP

## Diabliyo

Buenas.

Tengo problemas con mi servidor mail a la hora que los inbox comerciales Gmail, yahoo, etc... detecten mi servidor como seguro o fidedigno, asi que buscando solucion agregue a mi Servidor DNS el flag SPF (en sus 2 versiones) e implemente dkim-milter en el servidor mail, hasta este punto los mails salen y son recividos con los siguientes headers:

trama de Gmail obtenida

Si pulso en Ver Detalles me sale el mensaje de:

enviado por miservidor.com

firmado por miservidor.com

```
....

Received-SPF: pass (google.com: domain of contacto@miservidor.com designates IP_DEL_SERVIDOR as permitted sender) client-ip=IP_DEL_SERVIDOR;

Authentication-Results: mx.google.com; spf=pass (google.com: domain of contacto@miservidor.com designates IP_DEL_SERVIDOR as permitted sender) smtp.mail=contacto@miservidor.com; dkim=pass header.i=@miservidor.com

X-DKIM: Sendmail DKIM Filter v2.8.3 server.miservidor.com 51B8152408F

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=miservidor.com; s=default;

   t=numeros; bh=numerosyletras=;

   h=Date:Message-Id:To:Subject:MIME-Version:Content-Type:From;

   b=numerosyletras=

....
```

trama de Yahoo obtenida

Cuando abres un mail seguro en Yahoo, puede notar un icono que es una cartita con una llavesita, que indica confiabilidad y que se implementan DmainKeys. En mi caso no me sale ese icono y quiero lograr hacer eso.

En las cabeceras, salen todas como se las mostre arriba, excepto la cabecera Authentucation-Result, que contiene un valor cambiamos:

```
...

Authentication-Results: mta1055.mail.sk1.yahoo.com from=crver.net; domainkeys=neutral (no sig); from=crver.net; dkim=pass (ok)

...
```

Ademas en el log de mi servidor.com noto que mi postfix intenta hacer alguna comprobacion contra google (gmail), en fin, me sale este error:

# cat /var/log/maillog

```
Feb 10 16:37:27 server postfix/smtp[1282]: certificate verification failed for gmail-smtp-in.l.google.com: num=20:unable to get local issuer certificate

Feb 10 16:37:27 server postfix/smtp[1282]: certificate verification failed for gmail-smtp-in.l.google.com: num=27:certificate not trusted

```

MI PROBLEMA

En si quiero lograr esto:

[1] - Que yahoo me reciva al inbox y me aparesca el icono que quiere decir se usan DomainKeys (cartita con llaveita).

[2] - Saber si google con lo que tengo actualmente implementado me recivira siempre al inbox ? (ya que actualmente van al Inbox directo).

Detalles Extras

Si escribo un mail diciendo que lo envia usuario@hotmail.com, para usuario@gmail.com y establezco el Return-Path con contacto@miservidor.com..

En Gmail

Cuando veo el detalle del mail, solamente dice: Enviado mi miservidor.com, y ya no aparece el mensaje de Firmado por miservidor.com... Porque ?, como firmo el mensaje aun asi ?, que puedo hacer ?

[hr]

Actualmente el servidor mail cuenta con:

- dkim-milter.

- postfix.

- dovecot.

- saslauth

- bind (named)

- dnssec (instalado, sin configurar aun).

Espero puedan ayudarme !!

Saludos !

----------

## Inodoro_Pereyra

Dispone tu servidor de un registro rptr que apunte a host.tudominio.tld? De no ser así, he allí tu problema.

Esto es cosa de tu proveedor de internet, nada que puedas hacer desde tu lado al respecto.

Salud!

----------

## Diabliyo

 *Inodoro_Pereyra wrote:*   

> Dispone tu servidor de un registro rptr que apunte a host.tudominio.tld? De no ser así, he allí tu problema.
> 
> Esto es cosa de tu proveedor de internet, nada que puedas hacer desde tu lado al respecto.
> 
> Salud!

 

Si, el rDNS (DNS Inverso) esta configurado correctamente...

```
shell# host crver.net

miservidor.com has address IP

miservidro.com mail is handled by 10 server.miservidor.com.

shell#  host IP

IP .in-addr.arpa domain name pointer server.miservidor.com.
```

Estuve verificando despues de muchas pruebas, que la razon principal de que Yahoo no me pone el sello de la cartita con la llave es porque utilizo dkim-milter... y Yahoo comprueba las DomainKeys que es propiamente un servicio de autenticidad creado por el mismo Yahoo. Asi que estoy trabajando en la instalacion y funcionamiento de este.

Continuando con el problema ahora la cosa esta en la firmada del correo, ya que estuve observando que si envio un mail de mail@miservidor.com para micuenta@gmail.com, el postfix SI FIRMA el correo, y GMAIL me pone en los detalles que mail fue enviado y firmado por miservidor.com.

Pero cuando envio un correo de mail@hotmail.com (u otro proveedor), para micuenta@gmail.com, postfix no firma el correo, y Gmail me lo confirma porque en los detalles solo me dice mail enviado por servidor.com pero ya no dice mensaje sobre que este firmado por miservidor.com.

OJO: los mails los envios desde un script en php.

Me imagino que es algun conflicto en mi postfix (creo), pero no se ni por donde empezar a buscarle !

Saludos !

----------

## Diabliyo

Dejo configuracion del postfix:

# /etc/postfix/main.cf

```

myhostname = server.miservidor.com

mydomain = crver.net

queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

mail_owner = postfix

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost

unknown_local_recipient_reject_code = 550

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

home_mailbox = Maildir/

mailbox_command = 

smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

debug_peer_level = 2

debugger_command =

    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

    xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix

newaliases_path = /usr/bin/newaliases.postfix

mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop

html_directory = no

manpage_directory = /usr/share/man

sample_directory = /usr/share/doc/postfix-2.3.3/samples

readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes

smtpd_sasl_authenticated_header = yes

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_local_domain = $myhostname

smtp_sasl_security_options = noanonymous

smtp_sasl_tls_security_options = noanonymous

smtpd_sasl_application_name = smtpd

mynetworks = 127.0.0.0/8

smtp_use_tls = yes

smtp_tls_note_starttls_offer = yes

smtp_tls_key_file = /etc/postfix/ssl/smtpd.ket

smtp_tls_cert_file = /etc/postfic/ssl/smtpd.crt

smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem

smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache

smtpd_use_tls = yes

smtpd_tls_auth_only = no

smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key

smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt

smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem

smtpd_tls_loglevel = 1

smtpd_tls_received_header = yes

smtpd_tls_session_cache_timeout = 3600s

smtpd_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache

tls_random_source = dev:/dev/urandom

smtpd_milters = inet:localhost:8891

non_smtpd_milters = inet:localhost:8891

```

# /etc/postfix/master.cf

```
smtp      inet  n       -       n       -       -       smtpd -v

   -o smtpd_proxy_filter=127.0.0.1:10055

   -o smtpd_client_connection_count_limit=100

submission inet n       -       n       -       -       smtpd

   -o smtpd_etrn_restrictions=reject

   -o smtpd_sasl_auth_enable=yes

   -o content_filter=dksign:[127.0.0.1]:10057

   -o receive_override_options=no_address_mappings

   -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject

dksign   unix   -   -   n   -   10   smtp

   -o smtp_send_xforward_command=yes

   -o smtp_discard_ehlo_keywords=8bitmime

127.0.0.1:10056   inet   n   -   n   -   10   smtpd

   -o content_filter=

   -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks

   -o smtpd_help_restrictions=

   -o smtpd_client_restrictions=

   -o smtpd_sender_restrictions=

   -o smtpd_recipient_restrictions=permit_mynetworks,reject

   -o mynetworks=127.0.0.0/8

   -o smtpd_authorized_xforward_hosts=127.0.0.0/8

127.0.0.1:10058   inet   n   -   n   -   10   smtpd

   -o content_filter=

   -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks

   -o smtpd_helo_restrictions=

   -o smtpd_client_restrictions=

   -o smtpd_sender_restrictions=

   -o mynetworks=127.0.0.0/8

   -o smtpd_authorized_xforward_hosts=127.0.0.0/8

pickup    fifo  n       -       n       60      1       pickup

cleanup   unix  n       -       n       -       0       cleanup

qmgr      fifo  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

smtp      unix  -       -       n       -       -       smtp

relay     unix  -       -       n       -       -       smtp

   -o fallback_relay=

showq     unix  n       -       n       -       -       showq

error     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
```

----------

