Professional Documents
Culture Documents
srm.conf
En este archivo se configura la forma en que el servidor web responde ante los requerimientos de
los navegadores de internet. Cuales son las páginas reservada para los usuarios del equipo, que tipo
de dato contienen los archivos dependiendo su extensión, etcétera.
Algunos campos de interes:
•DocumentRoot <directorio>
En este campo se indica el directorio en el cual estarán todos los archivos relacionados con este sitio
web en particular. Acá se ubican las páginas HTML, CGIs y todo lo que involucre a este servidor
web. El directorio default es /home/httpd/html
•UserDir <nombre de directorio>
Los usuarios normales del equipo pueden realizar su propia página personal, cuando desde el
navegador se utilice el http:URL/? nombre_de_usuario, el servidor web irá al directorio de trabajo
del usuario (home directory) y buscará el subdirectorio nombre_de_directorio y le enviara al
navegador las páginas que se encuentren en el mismo. El directorio default es public_html
•DirectoryIndex <archivo indice> <archivo indice>
El servidor web utiliza un archivo (referenciado en este campo) como archivo por defecto de cada
directorio. Cuando un navegador pida las páginas del directorio
http://www.sudominio.com/informacion/, el servidor web buscará algún archivo que tenga el
nombre de archivo_indice, de no encontrarlo desplegará en el navegador, todos los archivos que se
encuentran en el directorio.
•Alias <nombre> <directorio_real>
Todos los directorios que se accedan a través de un navegador son relativos al directorio que indica
DocumentRoot. Si en un navegador se ingresa http://www.linuxcollege.com.ar/capacitacion, el
directorio que el servidor web tratará de acceder será DocumentRoot/capacitacion. De existir algún
directorio fuera de esta rama del árbol de directorios, se debe utilizar Alias para que el navegador
acceda al contenido del mismo. Por ejemplo, si el directorio "capacitacion" estuviese en otro
directorio se debería configurar el apache mediante un alias que diga:
Alias capacitacion /home/pepe/capacitacion
•ScriptAlias <nombre_falso> <directorio_real>
Este campo tiene la misma funcionalidad que el campo Alias, excepto que se utiliza para los scripts
que ejecute el servidor web.
Ejemplo: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin
access.conf
En este archivo se configura todo lo que tenga que ver con accesos a las páginas del servidor web.
Que tipo de restricciones tendrá cada directorio o directorios de todo el servidor web.
Algunos campos de interés:
•<Directory <directorio>>
Este campo le indica al servidor web las diferentes acciones que se pueden realizar sobre los
archivos que están dentro del directorio referenciado.
Ejemplo:
<Directory /home/httpd/cgi-bin>
AllowOverride None
Options ExecCGI
</Directory>
Con esta directiva estamos especificando que esta permitida la ejecución de programas tipo CGI
("Options ExecCGI") y que no se leerán las directivas que existan en el archivo /home/httpd/cgi-
bin/.htaccess ("AllowOverride None"). Este último archivo se utiliza para especificar ciertos tipos
de acceso sobre el directorio (con usuario y clave). Para más información sobre este campo dirigirse
a ladocumentación de apache en http://www.apache.org/docs/mod/core.html
Es importante notar que los directorios que se referencian tienen PATH absoluto y no son los
directorios que se utilizan desde el navegador. En el ejemplo anterior el directorio referenciado es
/home/httpd/cgi-bin, este directorio posee generalmente un Alias llamado /cgi-bin/, de esta forma en
el navegador el usuario pondrá http://www.linuxcollege.com.ar/cgi-bin/, pero el verdadero
directorio es /home/httpd/cgi-bin.
Servidores Virtuales
Apache permite tener varios servidores web montados sobre un único equipo con un único apache
corriendo. Estos servidores web reciben el nombre de servidores virtuales. Básicamente es para
realizar el trabajo de "hosting" (un único equipo con varios nombres distintos). Esta característica es
muy utilizada cuando se tiene varios sitios web que no reciben mucho trafico.
Existen varias formas de crear servidores virtuales:
1.Servidores virtuales basados en números de IP
2.Servidores virtuales basados en nombres (URLs)
3.Configuración dinámica de servidores virtuales
Servidores virtuales basados en números de IP
Este tipo de configuración requiere tener un número de IP distinto para cada servidor virtual.
Para realizar esta configuración se utiliza la directiva <VirtualHost <URL>> y dentro del contexto
de la directiva se puede especificar diferentes opciones que se aplicarán a este servidor virtual
únicamente. Los ejemplos siempre ayudan, así que acá presentamos uno:
Ejemplo
<VirtualHost soporte.linuxcollege.com.ar>
ServerAdmin webmaster@linuxcollege.com.ar
ServerName soporte.linuxcollege.com.ar
DocumentRoot /home/httpd/html/soporte
ErrorLog logs/soporte_error.log
CustomLog logs/soporte_combined.log combined
</VirtualHost>
En el ejemplo se puede ver que existe un sitio web virtual llamado soporte.linuxcollege.com.ar, este
nombre debe tener asociado una dirección de IP exclusiva, de esta forma, cuando un navegador
hace un requerimiento sobre este URL, apache sabrá a quien se esta referenciando y le enviará al
navegador las páginas que estén en el directorio /home/httpd/html/soporte. Las opciones que se
encuentran entre las directivas <VirtualHost> y </VirtualHost> solo se aplicarán a este servidor
virtual.
Servidores virtuales basados en nombres (URLs)
En los casos que un equipo no tenga varias direcciones de IP distintas, apache brinda la posibilidad
de tener una única dirección de IP y asociarle varios nombres para utilizarlo como servidores
virtuales.
El único requerimiento previo a este tipo de configuración es que se le indique al sistema operativo,
los diferentes nombres que tiene el equipo.
Para realizar esta configuración se hará uso de dos directivas. La directiva NameVirtualHost y
<VirtualHost>.
NameVirtualHost <número de IP>
La dirección de IP que se especifica en esta directiva es la dirección que tiene asociada todos los
nombres de los servidores virtuales.
Ejemplo
NameVirtualHost 216.32.74.55
<VirtualHost 216.32.74.55>
ServerAdmin webmaster@linuxcollege.com.ar
ServerName soporte.linuxcollege.com.ar
DocumentRoot /home/httpd/html/soporte
ErrorLog logs/soporte_error.log
CustomLog logs/soporte_combined.log combined
</VirtualHost>
<VirtualHost 216.32.74.55>
ServerAdmin webmaster@linuxcollege.com.ar
ServerName capacitacion.linuxcollege.com.ar
DocumentRoot /home/httpd/html/capacitacion
ErrorLog logs/capacitacion_error.log
CustomLog logs/capacitacion_combined.log combined
</VirtualHost>
En el ejemplo se puede ver como coexisten dos URL diferentes para una misma dirección de IP. El
servidor apache verificará que nombre utilizo el usuario en su navegador (si fue
http://soporte.linuxcollege.com.ar o http://capacitacion.linuxcollege.com.ar). Dependiendo de este
URL, el servidor apache le enviará al navegador las páginas que están en /home/httpd/html/soporte
o /home/httpd/html/capacitacion.
Configuración dinámica de servidores virtuales
Existe una tercer forma de armar servidores virtuales. Esta forma permite armar rápidamente un
nuevo servidor virtual, sin tener que reiniciar el servidor apache con cada nuevo servidor virtual que
se agregue. Esta configuración es más complicada inicialmente, pero una vez hecha solo alcanzará
con crear un directorio en el disco para que apache automáticamente dé de alta un servidor virtual
nuevo (sin reinicializar el servicio).
Para realizar esta configuración hay que agregar el módulo de vhost_alias en el httpd.conf. Esto se
agrega utilizando las siguientes dos líneas:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
AddModule mod_vhost_alias.c
Luego se utilizan las directivas de servidores virtuales dinámicos:
VirtualDocumentRoot /home/httpd/www/%0/html
VirtualScriptAlias /home/httpd/www/%0/cgi-bin
Es muy importante, para que funcione correctamente esta configuración que se deshabilite la opción
de UseCanonicalName, por lo tanto se debe agregar también:
UseCanonicalName off
Con esta configuración se le esta indicando al servidor apache que reemplace la variable especial
"%0" con el nombre del servidor que se quiere alcanzar. Si el usuario ingreso
http://dinamicos.linuxcollege.com.ar debe existir un directorio
/home/httpd/www/dinamicos.linuxcollege.com.ar/html (donde se alojaran todas las páginas del
servidor virtual) y /home/httpd/www/dinamicos.linuxcollege.com.ar/cgi-bin (donde estarán todos
los scripts que le dan funcionalidad al sitio web).
Una vez realizada esta configuración solo basta con crear un directorio con el nombre del sitio web
en /home/httpd/www y los subdirectorios "html" y "cgi-bin" (este último solamente se necesita si el
sitio web utiliza scripts).
Este tipo de configuración presenta una problemática y es que no se puede grabar información de
monitoreo en archivo separados. La información de todos estos servidores virtuales siempre se va a
grabar en un solo archivo. De todas formas se puede cambiar el formato con el que se graban las
líneas dentro del archivo de monitoreo, para poder filtrar luego la información y así crear diferentes
archivos.
Para realizar esto se debe cambiar la línea que indica el formato del archivo:
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
La variable especial "%V" se reemplazara por el URL que haya indicado el navegador (por
ejemplo: dinamicos.linuxcollege.com.ar)
Sendmail - El MTA (Message Transfer Agent) de Linux más utilizado
Uno de los servicios más utilizados en redes es la transferencia de correo electrónico entre usuarios.
Linux presenta varios programas que administran este servicio. Estos programas son llamados
"Agentes de Transferencia de Mensjes" (MTA). Se encargan de atender a los clientes de mai,
denominados MUA (Mail User Agent), comol Pine, elm, netscape, Eudora, Outlook, y encargarse
en llevar el mensaje enviado a destino.
Como el MTA más utilizado en Linux es sendmail (aunque existen muchos otros), en este curso
veremos algunas características de sendmail y como configurarlas.
Configuración
Existe un archivo donde se arma toda la configuración de sendmail, este archivo es /etc/sendmail.cf.
El archivo es bastante complejo y existen libros enteros que explican como entenderlo y
modificarlo. Acá se verán las características mas importante y utilizadas.
Para solucionar el problema de entender este archivo, existen muchas interfaces que permiten
modificar la configuración de sendmail, cada distribucion presenta el suyo, pero el que mejor
administra el sistema de correo es webmin (http://www.webmin.com/webmin)
Opciones del Sendmail
Opción Descripción
DS <host> Enviar correo saliente a través de esta maquina: A menos que no se especifique un
servidor, cualquier correo saliente no destinado a los usuarios de tu sistema será enviando a la
máquina especificada. Es útil si tu sistema está tras un firewall y por ello no puede entregar correo
de internet directamente.
DR <host> Remitir nombres de usuario no calificados a la máquina: Acá se escribe el host donde va
a ir a parar los mensajes de usuarios que no están en este equipo. En caso de no tener host, los
correos se remiten localmente.
Opción Descripción
O AliasFile=<archivo> Indica el archivo que contiene los aliases del equipo. El archivo configurado
por defecto es /etc/aliases
Aliases dinámicos:
Se llaman aliases dinámicos cuando involucran un archivo (que contiene direcciones de correo).
Ejemplo:
ventas: :include:/etc/mail/ventas.lst
soporte: :include:/etc/mail/soporte.lst
Dominios Locales archivo ( /etc/sendmail.cw )
Generalmente los equipos que están publicos en internet soportan recibir correo de diferentes
dominios. Por ejemplo, además de recibir correo de todo el dominio linuxcollege.com.ar, también
que se reciba correo de los dominios ciua.com.ar y capacitacionweb.com.ar. Para realizar esto se le
debe especificar a sendmail cuales son todos los dominios que se aceptan. Esta configuración se
realiza a través de la opción "Fw". El valor por defecto de esta opción es /etc/sendmail.cw.
IMPORTANTE: Para que esto funcione es necesario que el equipo este configurado, a nivel
direcciones de IP, para que acepte este dominio. Se deben agregar las configuraciones necesarias en
el DNS o archivo /etc/hosts (para uso local).
Opción Descripción
Fw<archivo con dominios> Especifica el archivo que contiene todos los dominios que acepta este
MTA.
Ejemplo:
Cuando se utilizan usuarios virtuales, se configuran usuarios con nombres que indiquen a que
dominio pertenecen. En este ejemplo los usuarios que se han dado de alta son:
pepe_linuxcollege
juan_linuxcollege
andreagarcia_ciua
Por lo tanto cuando el usuario pepe desee bajar sus correo no utilizará como usuario de POP a
"pepe", sino a "pepe_linuxcollege"
Documentación de referencia
Existen varios sitios que contienen información sobre apache, de todas formas, toda la información
sobre apache surge del sitio del proyecto http://www.apache.org.
Para información sobre sendmail, el mejor sitio es http://www.sendmail.org.
NETWORKING=yes
HOSTNAME=server80.ciua.com.ar
GATEWAY=10.10.3.80
Para /etc/hosts, es decir, la información de los hosts y las direcciones IP, correspondería lo
siguiente:
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 ciua.com.ar
#
# El IP de la máquina que tiene el DNS de la red local.
Nameserver 10.10.3.80
#
# Los DNS del proveedor de servicios.
Nameserver 200.0.194.68
nameserver 200.1.0.1
Preparativos.
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.
Ejemplo.
Se tiene como servidor de correo saliente -SMTP- a mail.proveedor.net, y con este tenemos cuatro
cuentas de correo electrónico: jperez@proveedor.net, plopez@proveedor.net,
psanchez@proveedor.net y pgonzalez@proveedor.net que son utilizadas por 4 distintos usuarios en
cuatro distintas máquinas dentro de nuestra intranet. Deberemos de crear al menos estas cuentas en
el servidor Linux®: jperez, plopez, psanchez y pgonzalez.
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.
Configurando Sendmail
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 comando:
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
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 fichero /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.
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
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:
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:
Al 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
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:
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:
/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:
/etc/rc.d/init.d/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 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 fichero ipop3, pop3s, imap e imaps,
según lo requiera. Estos requerirán edite una sola línea para habilitar el servicio:
service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += USERID
log_on_failure += USERID
disable = no
only_from = 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 localhost
}
/etc/rc.d/init.d/xinet restart
Configurando Fetchmail.
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 comando:
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
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/.fetchamailrc y con
algo como lo siguiente:
#/root/.fetchmailrc
set logfile "/var/log/fetchmail.log"
set postmaster "root"
set daemon 0
Ya que este archivo incluirá contraseñas importantes, es imperativo que las proteja cambiando los
permisos del archivo /root/.fetchamailrc de modo que solo root pueda utilizarlo:
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
#
#
#
chmod +x /etc/ppp/ip-up.local
#!/bin/bash
# ip-down.local
Si /etc/ppp/ip-down.local tampoco existiese, debe de crearse este con cualquier editor de texto y
hacersele ejecutable aplicandole el comando chmod +x:
chmod +x /etc/ppp/ip-down.local
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).
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.
Determine el nombre de todos los posibles nombres o aliases que tenga su servidor. Ejemplo:
ciua.com.ar, mail.ciua.com.ar, server80.ciua.com.ar , ciua.com.ar, 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".
Verificando parámetros de red.
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 servidor.mi-dominio.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=SERVER80.ciua.com.ar
GATEWAY=200.41.50.80
Para /etc/hosts, es decir, la información de los hosts y las direcciones IP, correspondería lo
siguiente:
Además de configurar correctamente un DNS 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 ciua.com.ar
#
# El IP de la máquina que tiene el DNS de la red local.
Nameserver 10.10.3.80
#
# Los DNS del proveedor de servicios.
nameserver 200.33.213.66
nameserver 200.33.209.66
mount /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
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.
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.
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 loal secundaria con restricciones.
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 ciua.com.ar 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(ciua.com.ar)dnl
Todo en conjunto, ya modificado, debería de quedar del siguiente modo (NO modificar el orden de
las líneas):
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
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 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
MASQUERADE_AS(ciua.com.ar)dnl
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:
# 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:
Al 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
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:
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:
A fin de que este nuevo alias surta efecto y pueda ser utilizado por Sendmail debe utilizar el
comando 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:
/etc/rc.d/init.d/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:
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
/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 fichero ipop3, pop3s, imap e imaps,
según lo requiera. Estos requerirán edite una sola línea para habilitar el servicio:
service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += USERID
log_on_failure += USERID
disable = no
only_from = 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 localhost
}
/etc/rc.d/init.d/xinet restart
Otra opción más del administrador es bloquear también el accesos a los dominios involucrados a
través de IPChains o IPTables. Esto no impedirá que llegue correo, pero servirá para boicotear a las
empresas que utilizan Spam para promocionarse, al no permitir el acceso a sus redes desde nuestras
redes locales.
Para determinar la dirección IP de un dominio en particular, solo baste ejecutar el comando host, el
cual devolverá la dirección IP y quizá algo de información adicional, como si se trata del alias de
otro dominio.
host solopromos.com.mx
solopromos.com.mx. has address 200.57.146.18
Una vez determinadas las direcciones IP problemáticas, solo hay que añadir algunas líneas en el
guión de Firewall que se este utilizando de modo tal que queden bloqueadas de manera permanente,
por lo menos desde nuestra red local. Ejemplo: