Bienvenido(a) a Alcance Libre 25/10/2025, 14:04
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.
Linux® es una marca registrada de Linus Torvalds, LinuxPPP® es una marca registrada de José Neif Jury Fabre, Red Hat(TM) Linux, RPM y GLINT son marcas registradas de Red Hat Software, Unix® es marca registrada de X/Open. Fetchmail® es una marca registrada de Eric S. Raymond. Sendmail® es una marca registrada de Sendmail, Inc.
Recuperar el correo electrónico desde Linux® no es problema si se utilizan clientes de correo electrónico como el mismo Netscape® u otros más. Sin embargo, cuando se tiene una o bien distintas computadoras personales conectadas en una pequeña red, con distintas cuentas de correo electrónico y distintos usuarios, el siguiente procedimiento puede resultar de mucha utilidad.
Este manual considera que:
Con este manual usted podrá:
Con este manual usted no podrá:
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.11.x se considera como apropiada debido a fallas de seguridad de gran importancia. Por favor visite el sito web de su distribución predilecta para estar al tanto de cualquier aviso de actualizaciones de seguridad.
Debe de definirse el nombre de la máquina que funcionará como servidor de correo. Normalmente utilizaremos el esquema nombre_maquina.nombre_dominio. Un ejemplo del nombre de la máquina servidor sería linux.linuxparatodos.com o linux.miredlocal.org.mx. Así que asegúrese de que esto se encuentra perfectamente definido en /etc/sysconfig/network y /etc/hosts:
Para /etc/sysconfig/network, es decir, el nombre que asignamos a la máquina, correspondería lo siguiente:
NETWORKING=yes HOSTNAME=linux.miredlocal.org.mx GATEWAY=192.168.1.1 |
Para /etc/hosts, es decir, la información de los hosts y las direcciones IP, correspondería lo siguiente:
127.0.0.1 localhost.localdomain localhost 192.168.1.1 linux.miredlocal.org.mx linux miredlocal.org.mx # # Opcionalmente aquí puede agregar también # los nombres y direcciones IP de la máquinas de # la red local. |
Además de configurar correctamente un DNS, si se tuviese red local, que defina bien los DNS o servidores de nombres de dominios correspondientes. Esto debe hacerlo en el archivo /etc/resolv.conf, de un modo similar al siguiente:
search miredlocal.org.mx # # El IP de la máquina que tiene el DNS de la red local. nameserver 192.168.1.1 # # Los DNS del proveedor de servicios. nameserver 200.33.213.66 nameserver 200.33.209.66 |
Es imperativo crear las cuentas locales para cada usuario que recuperará correo del servidor. Si además se tiene u proveedor de accesos a Internet y se utilizan varias cuentas de correo de este y se desea enviar correo desde dichas cuentas a través de Sendmail, para efectos prácticos y de organización, se deben utilizar también los mismos logins.
|
Si solo tenemos una cuenta de correo electrónico con mail.proveedor.net, solo necesitaremos crear una cuenta con este mismo login. El procedimiento descrito en este manual hará que todo el correo electrónico, sin importar que nombre de dominio tengamos, salga con una máscara y llegue a los destinatarios como @proveedor.net.
Considere que en adelante podrá enviar un mensaje de correo electrónico incluso desde una ventana terminal o consola y este llegará al destinatario presentando como remitente su_login@proveedor.net, así que es importante defina bien los nombre de las cuentas en Linux. Si usted envía un mensaje desde una cuenta de correo electrónico que en realidad no existe en mail.proveedor.neto que le pertenece a alguien fuera de su organización u hogar, técnicamente estaría enviando Spam al no proporcionar una cuenta de correo electrónico verdadera o bien nunca le llegarían las posibles contestaciones.
Es importante tener instalados los paquetes sendmail y sendmail-cf, ya que utilizaremos el servidor de correo Sendmail para el envío de nuestros mensajes y filtrado de correo masivo no solicitado -Spam- y el paquete imap, mismo que nos permitirá utilizar el servicio de IMAP y POP3. Para asegurarse de esto, se puede utilizar la siguiente línea de mandato:
rpm -q sendmail sendmail-cf imap |
Esto debe devolvernos las versiones de sendmail, sendmail-cf e imap que se tienen instaladas. Si no fuese así, debemos cambiar a root, si aún no lo hemos hecho y proceder a instalar estos paquetes. Introduzca el CD-ROM de su distribución y siga el siguiente procedimiento:
mount /mnt/cdrom cd /mnt/cdrom/RedHat/RPMS rpm -Uvh sendmail-* imap-* cd $home eject /mnt/cdrom |
Debe instalar sendmail-cf o no le será posible compilar los archivos necesarios para configurar Sendmail. El paquete imap, el cual contiene el daemon para los protocolo POP3, es el que nos permitirá recuperar el correo desde el servidor en el resto de las máquinas que integren la red local con cualquier cliente de correo electrónico.
Antes de continuar, debemos editar el archivo /etc/mail/local-hostnames, en el cual deberemos listar todos y cada uno de los aliases que tenga el servidor que estamos configurando, así como los posibles dominios.
# - include all aliases for your machine here. miredlocal.org.mx linux.miredlocal.org.mx mail.miredlocal.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 del siguiente modo, donde smtp.proveedor.net corresponde al servidor de correo saliente del proveedor de servicio que utilicemos y proveedor.net corresponde a la máscara que utilizaremos para todo el correo que emitamos desde nuestro servidor:
divert(-1) include(`/usr/share/sendmail-cf/m4/cf.m4') VERSIONID(`linux setup for Red Hat Linux')dnl OSTYPE(`linux') define(`confDEF_USER_ID',``8:12'')dnl define(`SMART_HOST',`smtp.proveedor.net')dnl undefine(`UUCP_RELAY')dnl undefine(`BITNET_RELAY')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/sendmail.st')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 TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')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 dnl FEATURE(delay_checks)dnl FEATURE(`no_default_msa',`dnl')dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl FEATURE(local_procmail)dnl FEATURE(`access_db')dnl FEATURE(`blacklist_recipients')dnl EXPOSED_USER(`root')dnl dnl Si queremos establcer un mejor nivel de seguridad dnl es conveniente descomentar la siguiente línea de dnl modo tal que solo estará permitido enviar correo dnl desde la interfaz de la tarjeta de red dnl DAEMON_OPTIONS(`Port=smtp,Addr=192.168.1.1, Name=MTA') FEATURE(`accept_unresolvable_domains')dnl dnl FEATURE(`relay_based_on_MX')dnl MAILER(smtp)dnl MAILER(procmail)dnl MASQUERADE_AS(proveedor.net)dnl |
Luego se procesa con el siguiente mandato para generar /etc/sendmail.cf:
m4 /etc/sendmail.mc > /etc/sendmail.cf |
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 # a localhost... localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY miredlocal.org.mx RELAY linux.miredlocal.org.mx RELAY # # Si aplica, también agregue los nombres de las # máquinas que integran su red local. m2.miredlocal.org.mx RELAY m3.miredlocal.org.mx RELAY m4.miredlocal.org.mx 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 # etc. |
En este archivo también puede agregar las direcciones de correo electrónico que desee bloquear, como son las de quienes envían correo masivo no solicitado -Spam-. Si le desea ahorrarse algo de tiempo ingresando direcciones y servidores a bloquear, descargue el siguiente archivo que ya incluye una buena colección de direcciones de correo electrónico y conocidos servidores que generan Spam:
https://www.alcancelibre.org/linux/access.txtAl concluir, debemos también compilar este archivo para generar otro en formato de base de datos a fin de ser utilizado por Sendmail:
cd /etc/mail make |
O bien puede ejecutar lo siguiente:
makemap hash /etc/mail/access.db < /etc/mail/access |
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: sam |
Esto corresponde a la cuenta de correo local hacia donde se redireccciona el correo de root. Descomente 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:
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, agregue del siguiente modo:
/sbin/chkconfig --add sendmail |
Si usted utiliza Red Hat Linux 7.x o versiones posteriores o equivalentes, debe saber que inetd ha sido sustituido por xinetd y utiliza métodos de configuración muy distintos.
Puede habilitar los servicios ipop3 (POP3 tradicional, autenticación en texto simple), pop3s (POP3 seguro, autenticación con criptografía), imap (IMAP tradicional, autenticación en texto simple) e imaps (IMAP seguro, autenticación con criptografía). Utilice aquellos que consideré como más apropiados para su red local de acuerdo a las capacidades de los clientes de correo electrónico utilizados. Tome en cuenta que la autenticación por medio de texto simple es definitivamente un método inseguro y siempre serán mejor usar los servicios que permitan establecer conexiones seguras.
Puede habilitar los servicios de manera automática e inmediata ejecutando los siguientes mandatos (solo habilite aquellos que realmente necesite):
/sbin/chkconfig ipop3 on /sbin/chkconfig pop3s on /sbin/chkconfig imap on /sbin/chkconfig imaps on |
También puede habilitarlos manualmente con un editor de texto, lo cual es sugerido a fin de habilitar opciones adicionales, como direcciones IP específicas a las cuales se les estaría permitido cierto servicio. Acceda a al directorio /etc/xinet.d/ y edite los archivo ipop3, pop3s, imap e imaps, según lo requiera. Estos requerirán edite una sola línea para habilitar el servicio:
service pop3
|
Lo mismo aplica para el protocolo IMAP e IMAPS.
Hecho lo anterior, es necesario reiniciar el daemon xinetd con la siguiente línea de mandato:
service xinet restart |
Es importante tener instalado el paquete Fetchmail, ya que este será el que se encargue de recuperar el correo de cuantas cuentas tengamos. Para asegurarse de esto, se puede utilizar la siguiente línea de mandato:
rpm -q fetchmail |
Esto debe devolvernos la versión de fetchmail que se tiene instalada. Si no fuese así, debemos cambiar a root proceder a instalarlo. Introduzca el CDROM de su distribución y siga el siguiente procedimiento:
mount /mnt/cdrom cd /mnt/cdrom/RedHat/RPMS rpm -Uvh fetchmail-* cd $home eject /mnt/cdrom |
Recuerde que las versiones más recientes de Fetchmail, 5.3.x en adelante, requieren tener instalados algunos de los paquetes de kerberos5, así que de ser necesario, instálelos del mismo modo. Después de Instalar fetchmail, se debe crear manualmente un archivo que se llame /root/.fetchmailrc y con algo como lo siguiente:
#/root/.fetchmailrc set logfile "/var/log/fetchmail.log" set postmaster "root" set daemon 0 # Recuperamos el correo de jperez@proveedor.net y lo # depositamos en el buzón de correo local de jperez. # poll mail.proveedor.net with protocol POP3, with options user "jperez" there with password "contraseña" is jperez here with options rewrite mimedecode pass8bits # Si tenemos cuenta en Yahoo!, podemos recuperar esta y # también depositarla en buzón de correo local de jperez # poll pop.mail.yahoo.com with protocol POP3, with options user "login_Yahoo" there with password "contraseña" is jperez here with options rewrite mimedecode pass8bits # Hacemos lo mismo con el usuario jlopez y todos aquellos usuarios que # queramos, a fin de recuperar su correo desde Internet y depositarlo # en su correspondiente carpeta de correo local. # poll mail.otroproveedor.net with protocol POP3, with options user "login_remoto" there with password "contraseña" is jlopez here with options rewrite mimedecode pass8bits # Opcionalmente limitamos la recepción de # mensajes grandes a un máximo 1.5 MB, por # aquello de los imprudentes "amigos" que suelen # enviarnos mensajes con adjuntos de 2 MB. # Modifíquese el valor a su propia conveniencia. # limit 1500000 |
Ya que este archivo incluirá contraseñas importantes, es imperativo que las proteja cambiando los permisos del archivo /root/.fetchmailrc de modo que solo root pueda utilizarlo:
chmod 700 /root/.fetchmailrc |
A fin de evitar que el archivo de registro de Fetchmail, /var/log/fetchmail.log, crezca demasiado y se realice una rotación de registro como los del resto del sistema, será necesario tomar un editor de texto y crear un archivo denominado /etc/logrotate.d/fetchmail con el siguiente contenido:
/var/log/fetchmail.log {
daily
rotate 5
compress
missingok
}
|
Siendo que es el daemon crond el que controla al daemon logrotated, será necesario reinciar dicho servicio:
service crond restart |
Luego, en ip-up.local deben agregarse las líneas correspondientes, esto para que se inicie fetchmail inmediatamente después de levantarse el enlace ppp del siguiente modo:
#!/bin/bash # ip-up.local # Primero nos aseguramos de que no exista # un proceso de Fetchmail en el trasfondo. fetchmail -q # # Recupera mensajes inmediatamente después de # conectarnos a Internet cada 960 segundos. # Elija entonces el intervalo de tiempo que mejor # le convenga, recordando que algunos proveedores # de servicios suelen desconectarnos de Internet # automáticamente si hay acciones repetitivas cada # determinado tiempo o bien si hay inactividad después # de cierto tiempo. Por experiencia personal, le sugiero # revisar correo cada 15-16 minutos o bien cada 30 # minutos si su proveedor de servicio requiere # autenticación previa cada 30 minutos para poder # enviar mensajes. # Considere que a veces puede tomar más de 15 minutos # descargar todo el correo de sus cuentas. fetchmail se # interrumpiría y volvería a empezar, por lo que tendríamos # mensajes repetidos infinitamente y jamás terminaríamos # de descargarlos. # fetchmail -d 960 # # Si acaso el servidor SMTP no requiere una autenticación # previa vía POP3, esto enviará nuestros mensajes # pendientes. /usr/sbin/sendmail -q & ############################## # Si usted tiene una sola PC # # conectada a Internet, # # como sería en el hogar, # # omita todo lo que sigue. # ############################## # # # # cargamos los módulos necesarios: /sbin/modprobe ip_conntrack /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_REDIRECT /sbin/modprobe ipt_TOS /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ipt_MIRROR /sbin/modprobe ipt_LOG /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat # creamos cadenas que bloqueen nuevas conexiones excepto si # provienen de la red local # /sbin/iptables -N block /sbin/iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT /sbin/iptables -A block -j DROP /sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT # ftp /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ftp /sbin/iptables -A INPUT -p udp --dport 22 -j ACCEPT # ftp /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT # http /sbin/iptables -A INPUT -p tcp --dport 6699 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 6347 -j ACCEPT # Gnutella /sbin/iptables -A INPUT -p ucp --dport 5000 -j ACCEPT # ICQ /sbin/iptables -A INPUT -p tcp --dport 5000 -j ACCEPT /sbin/iptables -A INPUT -p udp --dport 5000 -j ACCEPT /sbin/iptables -A INPUT -j block /sbin/iptables -A FORWARD -j ACCEPT echo "Starting Masquerading" /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward # Redireccionamos todas las peticiones hacia puerto 80 del # exterior para pasar a través de el puerto donde escucha # nuestro Proxy # /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 80 |
Si /etc/ppp/ip-up.local no existiese, debe de crearse este utilizando cualquier editor de texto y hacersele ejecutable aplicandole el mandato chmod +x:
chmod +x /etc/ppp/ip-up.local |
Y en /etc/ppp/ip-down.local debe de agregarse lo siguiente:
#!/bin/bash # ip-down.local # Nos aseguramos de que se termine Fetchmail al desconectarnos # de Internet. fetchmail -q # Quitamos los módulos de IP Masquerade para liberar recursos. /sbin/rmmod ip_conntrack /sbin/rmmod ipt_REJECT /sbin/rmmod ipt_REDIRECT /sbin/rmmod ipt_TOS /sbin/rmmod ipt_MASQUERADE /sbin/rmmod ipt_MIRROR /sbin/rmmod ipt_LOG /sbin/rmmod iptable_mangle /sbin/rmmod iptable_nat # Y borramos las reglas que habíamos establecido /sbin/iptables -X /sbin/iptables -F /sbin/iptables -Z |
Si /etc/ppp/ip-down.local tampoco existiese, debe de crearse este con cualquier editor de texto y hacersele ejecutable aplicandole el mandato chmod +x:
chmod +x /etc/ppp/ip-down.local |
Considerando que tiene bien configada su red local y que ha seguido este manual al pie de la letra, sea la PC que sea en su red local, debe configurar linux.miredloacal.org.mx como servidor de correo saliente o SMTP y servidor de correo entrante o POP3 en el cliente de coreo que utilice. El correo que enviemos sin estar conectados a Internet se guardará en el spool de Sendmail y será enviado una vez que se levante el enalce PPP. Los mensajes de correo de nuestras cuentas serán recuperados desde Internet por Fetchmail y concentrados en los buzones de correo local y solo bastará recuperarlos de el servidor local con cualquier cliente de correo.

Si acaso le resulta más cómodo, deje que Fetchmail haga su trabajo y utilice directamente el servidor SMTP que elija para enviar sus mensajes. Para tal caso, es aún más importante recordar que debe definir en las máquinas clientes o estaciones de trabajo, el IP de la maquina que servira de servidor de correo y con el modem que se conecta a Internet como el Gateway o puerto de enlace para toda la red.
Última Edición: 29/10/2005, 12:35| Hits: 24,724