2008-09-04 18 views
6

Estoy configurando un servidor que está en una red detrás de un firewall y quiero que los programas en esta computadora puedan usar sendmail para enviar correos electrónicos a cualquier dirección de correo electrónico. Tenemos un servidor SMTP ejecutándose en esta red (llamémoslo mailrelay.example.com) que es como se supone que debemos recibir correos salientes a través del firewall.Configurando sendmail detrás de un firewall

Entonces, ¿cómo configuro sendmail para enviar todo el correo a través de mailrelay.example.com? Google no me ha dado la respuesta todavía, y solo ha revelado que la configuración de sendmail es extremadamente compleja y molesta.

Respuesta

11

@eli: no se recomienda modificar directamente sendmail.cf directamente, ya que es generado por el compilador de macros.

Editar /etc/mail/sendmail.mc para incluir la línea:

define(`SMART_HOST',`mailrelay.example.com')dnl 

Después de cambiar el archivo de configuración de macro sendmail.mc, se debe volver a compilar para producir el archivo de configuración de sendmail.

# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 

y reinicie el servicio sendmail (Linux):

# /etc/init.d/sendmail restart 

Además de establecer el host inteligente, es posible que desee desactivar también la configuración de resolución de nombres y posiblemente cambiar su sendmail a puerto no estándar, o deshabilitar el modo daemon.

Desactivar resolución de nombres

servidores que están dentro de las redes de paredes de fuego o el uso de direcciones de red Translation (NAT) no puede tener los servicios de DNS o NIS disponible.Esto crea un problema para Sendmail, ya que utilizará DNS por defecto, y si no es disponibles se muestran mensajes de este tipo en mailq:

host map: lookup (mydomain.com): deferred) 

menos que esté dispuesto a configurar un DNS adecuado o NIS servicio que puede usar sendmail, en esta situación, normalmente configurará la resolución del nombre para que se haga usando el archivo/etc/hosts. Esto se hace al permitir un archivo 'service.switch' y especificando resolución de archivo, de la siguiente manera:

1: Habilitar service.switch para Sendmail Editar /etc/mail/sendmail.mc para incluir las líneas:

define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl 

2: Configurar service.switch para archivos Crear o modificar /etc/mail/service.switch para referirse sólo a/etc/hosts para el nombre resolución:

# cat /etc/mail/service.switch 
    hosts files 

3: Recompil e sendmail.mc y reinicie sendmail para que esta configuración surta efecto.

Shift Sendmail a puerto no estándar, o desactivar el modo demonio

Por defecto, Sendmail va a escuchar en el puerto 25. Es posible que desee cambiar este puerto o desactivar el modo daemon Sendmail por completo por varias razones: - si existe una política de seguridad que prohíbe el uso de puertos conocidos - si otro producto/proceso SMTP se va a ejecutar en el mismo host en el puerto estándar - si no desea aceptar correo a través de smtp en absoluto , simplemente envíela utilizando sendmail

1: Para cambiar el envío de sendmail a un puerto no estándar. Editar /etc/mail/sendmail.mc y modificar el "Puerto" establecer en la línea:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 

Por ejemplo, para conseguir el sendmail para utilizar el puerto 125:

DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA') 

Esto requerirá Sendmail .mc a ser recompilado y sendmail para ser reiniciado.

2: De forma alternativa, para desactivar el modo daemon Sendmail por completo (Linux) Editar/etc/sysconfig/sendmail y modificar el "daemon" el establecimiento de:

DAEMON=no 

Este cambio requerirá sendmail que ser reiniciado.

+0

Gracias! Ese consejo sobre 'service.switch' resolvió mi problema. –

5

http://www.elandsys.com/resources/sendmail/smarthost.html

Sendmail Smarthost

Un host inteligente es un anfitrión a través del cual se transmite correo saliente. Algunos ISP bloquean el tráfico SMTP saliente (puerto 25) y requieren que sus usuarios envíen todos los correos a través del servidor de correo del ISP . Sendmail se puede configurar a use el servidor de correo del ISP como el host inteligente .

Lea el artículo vinculado para obtener instrucciones sobre cómo configurarlo.

3

@Espo: Gracias por los excelentes consejos sobre dónde empezar. Su enlace habría sido mejor si hubiera estado configurando sendmail para su primer uso en lugar de tomar una configuración existente y realizar este pequeño cambio. Sin embargo, una vez que supe buscar cosas en "SmartHost", encontré una manera más fácil.

Todo lo que tenía que hacer era editar mi archivo /etc/mail/sendmail.cf para cambiar

DS 

a

DSmailrelay.example.com 

continuación, reinicie Sendmail y funcionó.

Cuestiones relacionadas