En postfix, cómo aplicar tls + auth sobre 587 dejando tls opcional por 25

9

Me gustaría alojar servicios de correo para algunos dominios. He configurado con éxito postfix para consultar sql para esos dominios virtuales. Lo que me gustaría hacer es:

  • Para conexiones en 25:

    1. Denegar retransmisión (solo entregar a destinatarios de mis dominios virtuales)
    2. Deje tls opcional, pero ofrezca autenticación solo si el cliente lo hace
    3. Acepte solo clientes no incluidos en la lista negra (por ejemplo, restringir XBL + SBL + PBL de spamhaus) o clientes que hacen tls y auth ("servidores de correo amigo" que están configurados para autenticarse conmigo con auth y tls)
  • Para conexiones en 587:

    1. Hacer cumplir tls y auth
    2. Permiso de retransmisión.
    3. Acepte solo clientes no incluidos en la lista negra (listas negras como las anteriores, pero omita la comprobación de PBL)

Mis preguntas:

  • R. Conozco las opciones de postfix para lo anterior, pero no puedo encontrar la manera de diferenciarlas en función del puerto de escucha.

  • B. ¿Tendré problemas ampliamente conocidos con clientes supuestamente legítimos con la política anterior?

Soy nuevo en la configuración del servidor de correo, perdón por cualquier pregunta / suposición sin sentido (por favor, apúntelo). Gracias.

Paralife
fuente

Respuestas:

15

Eso es fácil,

  1. En /etc/postfix/main.cfagregará / cambiará

    smtpd_tls_security_level=may
    

    para que TLS esté disponible de forma predeterminada (pero opcional).

  2. Luego, en su /etc/postfix/master.cflo anulará para el puerto 587 (el submissionpuerto) anulando el parámetro:

    submission inet n       -       n       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
    

    Esto requiere TLS para todas las conexiones de envío (puerto 587).

En cuanto a negar la retransmisión, este es el valor predeterminado; la retransmisión solo está permitida para usuarios autenticados y las direcciones IP que especifique mynetworks.

Finalmente, puede agregar listas negras main.cfagregando a smtpd_recipient_restrictions:

    reject_rbl_client zen.spamhaus.org,

o cualquier lista negra que desees. Deben aparecer cerca del final de la lista, justo antes de la final permit.


Una última cosa. Para obtener más ideas sobre cómo prevenir el correo no deseado, consulte Cómo combatir el correo no deseado: ¿qué puedo hacer como administrador de correo electrónico, propietario de dominio o usuario?

Michael Hampton
fuente
Gracias, solo un punto borroso: en el puerto 25 quiero negar incondicionalmente la retransmisión, sin importar si el cliente se autenticó o no.
Paralife
La autenticación en el puerto 25 está deshabilitada de manera predeterminada. Pero para verificar con certeza, asegúrese de que smtpd_sasl_auth_enableNO esté en su main.cfy también de que NO esté presente en la smtpsección de su master.cf(pero DEBE estar configurado yesen la submissionsección). El master.cfdebería parecerse mucho a esto .
Michael Hampton
Correcto pero quiero habilitar auth + tls opcionales en 25. Simplemente no quiero retransmitir en 25. Esencialmente quiero ser liberal sobre cómo alguien se conecta pero muy estricto en retransmitir (negar todo retransmitir). No se debe permitir la retransmisión a menos que venga en 587 y el cliente esté autenticado a través de tls. Cualquier otra combinación debería rechazar la retransmisión. Probablemente simplemente elimine permit_sasl_authenticated de smtpd_relay_restrictions y lo coloque solo en anulaciones para 587 en master.cf. Gracias.
Paralife
Se supone que las personas ni siquiera intentan autenticarse en 25. Puede habilitarlo si lo desea, pero realmente no debería hacerlo.
Michael Hampton
3

No sé la respuesta a la pregunta B, pero a A:

en postfix generalmente tiene un lugar master.cfdonde define cada proceso en ejecución, a menudo en /etc/postfix. En ese archivo tiene una entrada por servicio postfix en ejecución, por lo que hay dos diferentes para puerto 25y puerto 587. Para cada uno de ellos, también puede pasar parámetros a smtpdpara que tengan diferentes configuraciones.

Ese es un ejemplo de mi servidor de correo:

4.3.2.1:25      inet  n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
4.3.2.1:10027   inet  n       -       -       -       -       smtpd
  -o mynetworks=91.190.245.4/32 127.0.0.0/8
  -o smtpd_client_restrictions=permit_mynetworks,reject
repetición
fuente