• Publicidad

Envío de correo sólo con autentificación SMTP

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

Envío de correo sólo con autentificación SMTP

Notapor lr_emilio » 2013-10-18 12:11 @549

Buenas tardes,
Tengo una duda/problema a la hora de configurar un servidor dedicado.

El servidor está bajo CentOS 5.9 y tiene instalado cPanel con exim para el correo.

Está configurado para que a la hora de enviar un correo desde el exterior se requiera autentificación SMTP.

Mi duda es: ¿cómo puedo hacer lo mismo dentro del servidor, por ejemplo los scripts de PHP/Perl que tienen las páginas webs del servidor?

Lo que busco es que todo código que llame a la función mail y que no tenga autentificación no envíe dicho email.

He estado mirando la configuración de exim.conf pero no saco nada en claro.

¿Alguien me puede echar una mano?

Muchas gracias.

Saludos.
lr_emilio
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2013-08-01 11:57 @539

Publicidad

Re: Envío de correo sólo con autentificación SMTP

Notapor explorer » 2013-10-18 15:19 @680

Pero el decir que llamas a la función mail no explica el método de transporte que usa para hacer la entrega de correo.

Por ejemplo, ¿cómo sabemos que cuando llamas a mail no se conecta al servidor de SMTP remoto, directamente, sin pasar por el servidor local?

En /var/log/exim4/mainlog debe quedar registrado el movimiento de los correos, pero solo de los correos que dialogan con el exim local.

Si, suponemos, que la función mail sí usa exim como transporte de correo, lo que hay que hacer es obligar a que los correos se envíen de forma autenticada.

Serían con una regla así (no probada):
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
acl_check_rcpt:
 
  deny  message         = El emisor no está autenticado (intente usar SMTP-AUTH)
        log_message     = Usuario local [${sender_address}] no está autenticado
        hosts           = +local_hosts
        !authenticated  = *
        condition       = ${if match_domain{$sender_address_domain}{+local_domains}}
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Antes hay que haber definido local_domains, con la lista de los dominios locales, y local_hosts con la lista de IP de nuestro servidor.

Entonces, lo que hace la regla es: denegar el envío del correo si a) el host de envío es uno de los locales, b) no está autenticado, y c) quien lo envía pertenece a uno de los dominios locales.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados