Como instalar un servidor de correo en Linux

Instalacion de Sendmail Sobre linux.

(Informacion extraida de http://www.linuxparatodos.net

Introducción.

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).

Este manual considera que:

  • Usted tiene un dominio propio.
  • Que tiene un IP permanente o estática, y no una dinámica, y que se trata de un enlace dedicado, como E1, DSL, T1 o T3, etc. Es decir, usted NO se conecta a Internet por medio de un modem.
  • Tiene perfectamente configurada su red local y parámetros de red del servidor.
  • Que usted LEERÁ y seguirá al pie de la letra este documento en su totalidad.
  • Que usted utiliza Red Hat Enterprise Linux 3.0 o 4.0 o al menos Sendmail-8.12.11-4 y xinetd-2.3.12-6.

Con este manual usted podrá:

  • Enviar y recibir correo electrónico.
  • Establecer un buen nivel de seguridad.
  • Filtrar el molesto Spam, o correo masivo no solicitado, que a muchos nos aqueja a diario, para toda su red local.

Con este manual usted no podrá:

  • Convertirse en gurú en GNU/Linux, pero le será de utilidad.
  • Acabar con enfermedades, hambre, guerra, miseria, Microsoft® y otros miles de malestares de los que adolece el mundo.

Requerimientos y lista de materiales.

  • Un servidor con al menos 128 MB RAM y alguna distribución de GNU/Linux® instalada.
  • Deben de estar bien configurado los parámetros de red y un servidor de nombres -DNS-.
  • Preferentemente, aunque no indispensablemente, deberá utilizar DOS tarjetas de red. Lo que si será obligatorio es disponer de al menos dos interfaces. Una para acceder a la red local y otra para acceder hacia Internet (una de estas puede ser virtual, o eth0:0, o bien una segunda interfaz real, o eth1).
  • Tener instalados los paquetes sendmail, sendmail-cf, m4, make, xinet e imap que vienen incluidos en el CD de instalación o servidor FTP de actualizaciones para la versión de la distribución que usted utilice.

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.

Software requerido.

  • sendmail
  • sendmail-cf
  • dovecot (o bien imap si se utilizan derivados de Enterprise Linux 3.0 y anteriores)
  • m4
  • make

Instalación a través de yum.

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

Instalación a través de Up2date

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

Procedimientos.

Preparativos.

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“.

Una cosa más antes de continuar…

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).

Configurando Sendmail.

Antes de continuar, debemos editar el fichero /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):

Configuración recomendada de Sendmail.mc para Enterprise Linux 3.0

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 -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # enable both ipv6 and ipv4 in sendmail:
dnl #
dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl # 
dnl # Alos accept email sent to "localhost.localdomain" as local email.
dnl # 
LOCAL_DOMAIN(`localhost.localdomain')dnl
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
MASQUERADE_AS(`mi-dominio.org.mx')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

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 fichero /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 corrida 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

Habilitando los servicios POP3 e IMAP

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 fichero /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

Configuración de los clientes de correo.

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.

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: