Bienvenido(a) a Alcance Libre 05/09/2025, 23:28
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
Este documento es obsoleto, por favor consultar en su lugar:
La mayoría de las distribuciones de GNU/Linux incluyen de manera predeterminada Sendmail, un poderoso servidor de correo electrónico ampliamente utilizado alrededor del mundo. Este requiere de una correcta configuración para su mejor aprovechamiento y poder disponer de un nivel de seguridad aceptable.
Es muy común que los administradores inexpertos no se molesten siquiera en establecer un nivel de seguridad apropiado en sus redes locales y mucho menos en el servidor de correo, el cual ven como un servicio más. Es un error común el configurar Sendmail para que permita enviar correo como sea a cualquier costo. Usualmente este costo significa convertirse en Open Relay y por lo tanto en un paraíso para personas que se dedican al envío masivo de correo comercial (Spam).
Tómese en consideración que, de ser posible, se debe utilizar la versión estable más reciente de todo el software que vaya a instalar al realizar los procedimientos descritos en este manual, a fin de contar con los parches de seguridad necesarios. Ninguna versión de sendmail anterior a la 8.12.11 se considera como apropiada debido a fallas de seguridad de gran importancia y ningún administrador competente utilizaría una versión inferior a la 8.12.11. Por favor visite el sito Web de su distribución predilecta para estar al tanto de cualquier aviso de actualizaciones de seguridad.
Si se utiliza de CentOS 4.0 o White Box Enterprise Linux 4.0, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente:
yum -y install sendmail sendmail-cf dovecot m4 make
Si se utiliza de CentOS 3.0 o White Box Enterprise Linux 3.0, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente:
yum -y install sendmail sendmail-cf imap m4 make
Si se utiliza de Red Hat Enterprise Linux 4.0, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente:
up2date -i sendmail sendmail-cf dovecot m4 make cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain
Si se utiliza de Red Hat Enterprise Linux 3.0, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente:
up2date -i sendmail sendmail-cf imap m4 make cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain
Lo primero será establecer que es lo que tenemos en la red local y que es lo que haremos con esto. Determine que máquinas de su red local, específicamente las direcciones IP, necesitan poder enviar y recibir correo electrónico y cuales NO deben hacerlo.
Determine como desea recuperar los mensajes de correo electrónico que arriben al servidor. POP3 o IMAP.
POP3: Es el protocolo de recuperación de correo electrónico más utilizado en la actualidad. Permite recuperar el correo pero este se almacenará localmente en el disco duro de las máquinas de los usuarios IMAP: Este protocolo almacena el correo electrónico y permite la creación de carpetas de usuario, en el servidor. De modo tal, los usuarios pueden acceder desde cualquier parte del mundo a su buzón de correo y carpetas personales. IMAP también facilita la utilización de webmails (servicios de correo basado sobre Web). . |
Determine el nombre de todos los posibles nombres o aliases que tenga su servidor. Ejemplo: mi-dominio.org, mail.mi-dominio.org, servidor.mi-dominio.org, mi-red-local-org, mail.mi-red-local.org, etc.
Configure sus dos tarjetas de red, una para la red local con la IP inválida y otra para la dirección IP real. Puede hacerlo utilizando el procedimiento descrito en el manual "Cómo - configurar correctamente los parámetros de red".
No olvide que se requiere un DNS perfectamente configurado para que este resuelva su nombre de dominio utilizado por el servidor de correo. Recuerde que el correo proveniente de otros equipos no llega solo al servidor ni tampoco por arte de magia. Consulte el manual Cómo configurar un servidor de nombres de dominio (DNS).
Antes de continuar, debemos editar el archivo /etc/mail/local-host-names, en el cual deberemos de listar todos y cada uno de los aliases que tenga el servidor que estamos configurando, así como los posibles sub-dominios. Es decir, todos los dominios para los cuales estaremos recibiendo correo en un momento dado.
# Incluya aquí todos los dominios para los que # recibamos correo. mi-dominio.org.mx servidor.mi-dominio.org.mx mail.mi-dominio.org.mx mi-red-local.org.mx intranet.mi-red-local.org.mx mail.mi-red-local.org.mx |
Procederemos entonces a modificar el archivo /etc/mail/sendmail.mc, con previo respaldo del original, a fin de preparar la configuración del servidor de correo.
cp /etc/mail/sendmail.mc /etc/mail/etc/sendmail.mc.default |
Por defecto Sendmail solo permitirá enviar correo solo desde la interfaz loopback (127.0.0.1), es decir, desde el mismo servidor. Si queremos poder enviar correo desde las máquinas de la red local comente la línea o bien, si tiene varias, añada las interfaces desde las cuales se quiere que escuche peticiones sendmail y omita las que no deben, como sería una red local secundaria con restricciones.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') |
Si queremos filtrar Spam de manera eficiente, la mejor manera de empezar a hacerlo es rechazando correo proveniente de dominios NO RESUELTOS, es decir dominios que no están registrados en un DNS y que por lo tanto SON inválidos. Para tal fin, a menos que se requiera lo contrario, es necesario mantener comentada la siguiente línea:
dnl FEATURE(`accept_unresolvable_domains')dnl |
Es necesario establecer que mi-dominio.org.mx corresponderá a la máscara que utilizaremos para todo el correo que emitamos desde nuestro servidor. Debe, por tanto, añadirse una línea justo debajo de MAILER(procmail)dnl y que va del siguiente modo:
MASQUERADE_AS(mi-dominio.org.mx)dnl |
Todo en conjunto, ya modificado, debería de quedar del siguiente modo (NO modificar el orden de las líneas):
divert(-1)dnl dnl # dnl # This is the sendmail macro config file for m4. If you make changes to dnl # /etc/mail/sendmail.mc, you will need to regenerate the dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is dnl # installed and then performing a dnl # dnl # make -C /etc/mail dnl # include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup for Red Hat Linux')dnl OSTYPE(`linux')dnl dnl # dnl # default logging level is 9, you might want to set it higher to dnl # debug the configuration dnl # dnl define(`confLOG_LEVEL', `9')dnl dnl # dnl # Uncomment and edit the following line if your outgoing mail needs to dnl # be sent out through an external mail server: 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 dnl # dnl # The following allows relaying if the user authenticates, and disallows dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links dnl # dnl define(`confAUTH_OPTIONS', `A p')dnl dnl # dnl # PLAIN is the preferred plaintext authentication method and used by dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do dnl # use LOGIN. Other mechanisms should be used if the connection is not dnl # guaranteed secure. dnl # Please remember that saslauthd needs to be running for AUTH. 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 # dnl # Rudimentary information on creating certificates for sendmail TLS: dnl # cd /usr/share/ssl/certs; make sendmail.pem dnl # Complete usage: dnl # make -C /usr/share/ssl/certs usage dnl # dnl define(`confCACERT_PATH',`/usr/share/ssl/certs') dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt') dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem') dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem') dnl # dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's dnl # slapd, which requires the file to be readble by group ldap dnl # dnl define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl 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 # dnl # The following limits the number of processes sendmail can fork to accept dnl # incoming messages or process its message queues to 12.) sendmail refuses dnl # to accept connections once it has reached its quota of child processes. dnl # dnl define(`confMAX_DAEMON_CHILDREN', 12)dnl dnl # dnl # Limits the number of new connections per second. This caps the overhead dnl # incurred due to forking new sendmail processes. May be useful against dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address dnl # limit would be useful but is not available as an option at this writing.) dnl # dnl define(`confCONNECTION_RATE_THROTTLE', 3)dnl dnl # dnl # The -t option will retry delivery if e.g. the user runs over his quota. dnl # FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db',`hash -T |
Consulte el Apéndice: Opciones avanzadas de seguridad para Sendmail, para incrementar la seguridad del servicio.
Deben definirse los dominios para los cuales se estará permitiendo enviar correo electrónico. Esto se hace generando el archivo /etc/mail/relay-domains:
mi-dominio.org.mx servidor.mi-dominio.org.mx mi-red-local.org.mx intranet.mi-red-local.org.mx |
Abrimos ahora el archivo /etc/mail/access y agregamos algunas líneas para definir quienes podrán hacer uso de nuestro servidor de correo para poder enviar mensajes:
# Por defecto, solo se permite enviar correo desde localhost... localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY # Debemos añadir solo las direcciones IP # que ahora tenga el servidor 192.168.1.1 RELAY 148.243.59.1 RELAY # # Agregue también las direcciones IP que integran su red local. # Solo especifique aquellas máquinas que tendrán # permitido enviar y recibir correo. No es buena idea # especificar redes completas. Especifique máquinas # individuales, aunque signifique ingresar manualmente un # centenar de entradas. Es más seguro de este modo. 192.168.1.2 RELAY 192.168.1.3 RELAY 192.168.1.4 RELAY # etc. # # Y también podemos agregar las direcciones de correo # electrónico de aquellos a quienes consideremos # "indeseables" o que queramos bloquear. Spam@algun_Spamer.com REJECT info@otro_Spammer.com REJECT # servidor.indeseable.com REJECT part.com.mx REJECT newlad.com REJECT dmc.com.mx REJECT propnewidea.com REJECT lapromocion.com REJECT hosting.com.mx REJECT solopromos.com.mx REJECT # etc. |
En este archivo también puede agregar las direcciones de correo electrónico que desee bloquear, como son algunas de quienes envían correo masivo no solicitado Spam.
Al concluir, hay que convertir sendmail.mc en sendmmail.cf y compilar access para generar otro en formato de base de datos a fin de ser utilizado por Sendmail:
cd /etc/mail make |
Será de utilidad designar un alias a la cuenta de correo de root a fin de recibir los mensajes generados por el sistema en una cuenta común de usuario. Abra el archivo /etc/aliases, en donde al final encontrará la siguientes líneas:
# Person who should get root's mail root: jperez |
Esto corresponde a la cuenta de correo local hacia donde se re-direcciona el correo de root. Des-comente la última línea y asigne el nombre de la cuenta de usuario que utiliza normalmente:
# Person who should get root's mail root: jperez |
A fin de que este nuevo alias surta efecto y pueda ser utilizado por Sendmail debe utilizar el mandato newaliases:
/sbin/newaliases |
Terminados los detalles de la configuración, reinicie sendmail del siguiente modo y tendrá listo un servidor de correo que podrá utilizar para enviar mensajes para toda su red local utilizando el servidor SMTP de su proveedor de servicios:
/sbin/service sendmail restart |
Generalmente Sendmail está incluido entre los servicios que de forma predeterminada se inician con el sistema. Si por alguna razón Sendmail no estuviese habilitado, ejecute lo siguiente a fin de habilitar sendmail en los niveles de ejecución 3, 4 y 5:
/sbin/chkconfig --level 345 sendmail on |
Si está funcionando un contrafuegos o firewall, recuerde que debe de estar abierto el puerto 25, de otro modo el correo saldría pero no entraría. Añada o verifique que esté presente una línea en el guión de firewall similar a la siguiente:
#SMTP /sbin/iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 25 -j ACCEPT |
Si utiliza Red Hat Enterprise Linux 4.0, CentOS 4.0 o White Box Enterprise Linux 4.0, el paquete imap es reemplazado por dovecot, el cual funciona como otros servicios. Se debe editar el archivo /etc/dovecot.conf y habilitar los servicios de imap y/o pop3 del siguiente modo (de modo predefinido solo está habilitado imap):
protocols = imap pop3
El servicio se agrega al arranque del sistema y se inicializa del siguiente modo:
/sbin/chkconfig dovecot on
/sbin/service dovecot start
Si utiliza Red Hat Enterprise Linux 3.0, CentOS 3.0 o White Box Enterprise Linux 3.0, el procedimiento utilizará el paquete imap, el cual solo requirer un simple mandato para activar el servicio.
/sbin/chkconfig imap on
/sbin/chkconfig ipop3 on
Considerando que tiene bien configurada su red local y que ha seguido este manual al pie de la letra, sea la PC que sea en su red local, puede configurar mail.mi-red-local.org.mx o mail.mi-dominio.org.mx como servidor de correo saliente o SMTP y servidor de correo entrante, POP3 o imap, en el cliente de correo que utilice.
Última Edición: 18/03/2006, 21:04| Hits: 46,014