Professional Documents
Culture Documents
net
INSTALACION
DE UN
SERVIDOR
Pág. 1
http://www.cybercursos.net
Índice
1. INTRODUCCIÓN AL S ENDMAIL ...........................................................................................................1
1.1. CLIENTE , SERVICIO, SERVIDOR Y PROTOCOLO .......................................................................................... 4
1.1.1. El sendmail .......................................................................................................................................... 4
1.1.2. Explicación básica de SMTP............................................................................................................5
1.1.3. El cliente mail (recep ción de correo) ..............................................................................................7
1.1.4. El cliente mail (envío de correo) .....................................................................................................8
1.1.5. Configuración del cliente mail .........................................................................................................8
1.2. L OS RFC’ S PARA EL SENDMAIL ...................................................................................................................9
2. PASOS PREVIOS A LA INS TALACIÓN ..............................................................................................10
2.1. DOCUMENTACIÓN ........................................................................................................................................10
2.2. R UTINAS DE LA BASE DE DATOS ................................................................................................................11
2.3. SERVICIO DE NOMBRES HOST .....................................................................................................................11
2.4. USÁNDOLO CON M H ...................................................................................................................................11
2.5. USANDO IDENTIFICACIONES .......................................................................................................................11
2.6. FICHEROS DE COMPILACIÓN .......................................................................................................................12
2.7. PERMISOS DE DIRECTORIOS ........................................................................................................................12
2.8. ESTRUCTURA DE DIRECTORIOS ..................................................................................................................12
3. INICIANDO EL PROCESO DE INSTALACIÓN ............................................................................... 13
3.1. FICHERO DE CONFIGURAC IÓN .................................................................................................................... 14
3.2. DETALLES DE LOS FICHEROS DE INSTALACIÓN ........................................................................................16
3.2.1. /usr/lib/sendmail ............................................................................................................................... 16
3.2.2. /etc/sendmail.cf .................................................................................................................................16
3.2.3. /usr/bin/newaliases ...........................................................................................................................16
3.2.4. /usr/binhoststat..................................................................................................................................16
3.2.5. /usr/bin/purgestat .............................................................................................................................16
3.2.6. /var/spool/mqueue ............................................................................................................................16
3.2.7. /var/spool/mqueue/.hoststat ............................................................................................................16
3.2.8. /etc/aliases .........................................................................................................................................16
3.2.9. /etc/rc..................................................................................................................................................17
3.2.10. /usr/lib/sendmail.hf...........................................................................................................................17
3.2.11. /etc/sendmail.st..................................................................................................................................17
3.2.12. /usr/mailq ...........................................................................................................................................17
3.3. L A CRUDA REALIDAD ..................................................................................................................................18
3.3.1. Problemas específicos de Solaris 2.x (SunOS 5.x) .....................................................................18
3.3.2. Comprobando que funciona ...........................................................................................................18
4. INTRODUCCIÓN AL PROTOCOLO POP.......................................................................................... 21
4.1. E L ESTADO DE AUTORIZACIÓN...................................................................................................................22
4.2. E L ESTADO DE TRANSACCIÓN .................................................................................................................... 23
4.3. E L ESTADO DE ACTUALIZACIÓN .................................................................................................................27
5. PASOS PREVIOS A LA INSTALACIÓN ..............................................................................................28
5.1. PROBLEMAS ..................................................................................................................................................29
5.2. L IMITACIONES ..............................................................................................................................................30
5.3. OTRAS CARACTERÍSTICAS .......................................................................................................................... 30
6. COMENZANDO LA INS TALACIÓN .................................................................................................... 31
6.1. DETALLES DE LOS FICHEROS DEL CÓDIGO FUENT E .................................................................................31
6.2. C OMPILANDO EL QPOPPER .........................................................................................................................32
6.2.1. Posibles errores que se pueden producir después ......................................................................33
6.3. PARÁMETROS DEL QPOPPER.......................................................................................................................33
Pág. 2
http://www.cybercursos.net
Pág. 3
http://www.cybercursos.net
Introducción al sendmail
El servicio de transferencia de correo +electrónico entre máquinas pertenecientes
a Internet es de los más antiguos que se vienen ofreciendo en la historia de esta gran red.
También es, quizás, el más representativo de la filosofía cliente servidor dentro de la
extensa familia de protocolos TCP/IP.
El servicio de correo electrónico permite llevar a cabo el envío y recepción de
mensajes con usuarios de otros ordenadores de la red. El modo más sencillo de
implementar este servicio es mantener ficheros de correo, llamados buzones, en cada
uno de los sistemas en los que se pretende intercambiar mensajes con alguno de sus
usuarios.
Este sistema se basa en un método que permite añadir un mensaje a esos
ficheros, o bien recuperarlos. El problema principal aparece cuando los ordenadores
entre los que se intercambia correo no tienen continuamente activo el gestor de correo.
Esto se solventa mediante la instalación de mail servers, que es lo que yo he
realizado. Voy a explicar un poco como funciona la gestión y distribución clásica de
este tipo de mensajes.
1.1.1. El sendmail
También se conoce con el nombre de “delivery”, o bien distribuidor de correo.
Realiza su función manteniéndose a la escucha del socket 25, comunicándose con los
daemons de otros sistemas para recibir el correo entrante y enviar el correo saliente.
En cuanto a la aplicación TCP/IP, se utiliza el protocolo SMTP (Simple Mail
Transfer Protocol), el cual se caracteriza por su eficiencia, sencillez y facilidad de
depuración, gracias a los mensajes que acompañan a sus comandos.
Pág. 4
http://www.cybercursos.net
Este es el mensaje
El formato del mensaje está basado en Internet estándar (RFC 822), donde
también se especifica que el mensaje debe transmitirse como net ASCII (ASCII con
<cr><lf>), con unas líneas de cabecera determinadas, una línea en blanco, y, a
continuación, el cuerpo del mensaje que deseamos enviar.
Pág. 5
http://www.cybercursos.net
Para poder reproducir todo esto, por ejemplo por medio de norba y arrakis,
podemos suplantar al programa de mail de norba haciendo un telnet a arrakis, pero al
puerto 25, escribiendo la orden siguiente:
telnet arrakis 25
A partir del momento en que hayamos escrito esta imprescindible línea, para
arrakis nosotros ya nos habremos convertido en un programa cliente de correo que ha
solicitado una conexión, y como tal nos va a tratar.
Los comandos utilizan texto normal, característica del estándar Internet, lo que
resultará muy útil a la hora de ver qué es lo que está sucediendo y ser capaces de
diagnosticar problemas.
Por ejemplo, el programa de mail mantiene un log de cada conversación. Si algo
sale mal, este log puede ser enviado al administrador de correo, quien tiene la
posibilidad de interactuar directamente contra el servidor SMTP.
En protocolos que sean un poco más complicados, este proceso no es práctico en
absoluto y se utilizan formatos binarios. Sin embargo, suelen estructurarse como
registros de C (struct) o bien de Pascal (record).
Otra característica del ámbito Internet es que las respuestas empiezan con un
número definido en el protocolo, lo que evita ambigüedades.
Pág. 6
http://www.cybercursos.net
Pág. 7
http://www.cybercursos.net
Si queremos obtener mas ayuda sobre el mail, podemos referirnos a la ayuda del
man, poniendo ‘man mail’. (En algunos sistemas, la ayuda se obtiene poniendo ‘man
mailx’ o ‘help mail’).
/etc/mail.rc contiene una serie de opciones del cliente mail que pueden ser
controladas mediante los comandos ‘set’ y ‘unset’. De esta forma, se pueden activar y
desactivar las distintas opciones booleanas.
Otras opciones se definen con variables que pueden adoptar distintos valores. La
información completa sobre la composición del fichero ‘mail.rc’ se pude obtener
tecleando el comando ‘man mailx’.
Las opciones de comportamiento del cliente mail pueden ser establecidas
particularmente para cada usuario a través del fichero ‘.mailrc’, que se encuentra en los
distintos directorios de conexión.
Pág. 9
http://www.cybercursos.net
El Sendmail al que nos vamos a referir es la versión 8.8.8, esta versión se pude
obtener en diferentes sitios de Internet, destacar entre ellos:
ftp.rediris.es
ftp.sendmail.org
ftp.cc.Berkeley.edu
Esta versión se suele obtener comprimida primero con tar y después con gzip,
luego lo primero que hay que hacer es descomprimir esta versión, al descomprimir el
fichero tar se creará una estructura de directorios, donde nos encontraremos las
siguientes cosas.
CHANGES-R5-R8
Este fichero nos indicará los cambios que se han producido desde la revisión 5
hasta la revisión 8 del sendmail. Las diferencias, los nuevos ficheros que se han
incluido, etc...
FAQ
Respuestas a preguntas frecuentes que se suelen hacer sobre el sendmail. En este
fichero encontramos una recopilación de las preguntas más frecuentes que se suelen
hacer, estas preguntas están sacadas de diferentes news sobre el sendmail.
KNOWNBUGS
Aquí se encuentran los bugs que se conocen sobre la reciente versión, la
actualización de este fichero se puede encontrar tanto en ftp.sendmail.org como en
ft.cs.berkeley.edu.
RELEASE_NOTES
Contiene una descripció n detallada de los cambios en la versión actual,
explicados con detenimiento a título informativo.
SRC/READ_ME
Contiene los detalles sobre la compilación y la instalación del sendmail.
Pág. 10
http://www.cybercursos.net
CF/README
Contiene todo lo que hace falta saber sobre el fichero de configuración, como
crearlo y cual es el contenido de este fichero.
DOC/OP/OP.ME
Contiene la guía de instalación y operación del sendmail, tanto en formato texto,
como en PostScript.
Pág. 12
http://www.cybercursos.net
Pág. 13
http://www.cybercursos.net
Estos son todos los ficheros que posee el sendmail dentro del subdirectorio /src y
los cuales serán compilados para crear el sendmail. Como hemos dicho antes para hacer
esto teclearemos sh makesendmail y este se compilará.
Una vez que hemos compilado el sendmail, lo instalaremos y para ello
escribiremos la siguiente línea sh makesendmail install. Entonces el fichero binario
creado se copiará en usr/lib y creará enlaces desde /usr/bin/newaliases y /usr/bin/mailq
a /usr/sbin/sendmail.
Ý ya tenemos nuestro fichero binario del sendmail copiado en su lugar, el
siguiente paso será crear el fichero de configuración.
Pág. 14
http://www.cybercursos.net
SITE(contessa)
SITE(hoptoad)
SITE(nkainc)
Estas referencias se hacen con la macro SITECONFIG
SITECONFIG(sitio.config.fichero,nom_del_sitio,X)
Pág. 15
http://www.cybercursos.net
3.2.1. /usr/lib/sendmail
Este es el fichero binario que se crea al compilar el sendmail. Por razones de
seguridad este subdirectorio debe de tener el modo 755. También deberían de tener este
modo los siguientes directorios /, /usr, y /usr/sbin. Esto evitará agujeros de seguridad.
3.2.2. /etc/sendmail.cf
Este es el fichero de configuración para el sendmail. Este y el fichero
/etc/sendmail.pid son los únicos que no se crean al compilar el sendmail.
Estos ficheros se crean como hemos descrito antes.
3.2.3. /usr/bin/newaliases
Los comandos del hoststat deben ser enlazados al sendmail:
rm –f /usr/bin/newaliases
ln –s /usr/sbin/sendmail /usr/bin/newaliases
Este fichero puede ser instalado en cualquier otro lugar que se quiera dentro del
sistema.
3.2.4. /usr/binhoststat
El comando hoststat debe ser enlazado al sendmail de una forma similar al
newaliases. Este comando lista el estado de las ultimas transacciones del sendmail con
otros host remotos.
3.2.5. /usr/bin/purgestat
Este comando debe ser enlazado al sendmail. Contiene toda la información que
es almacenada en el arbol del HoststatusDirectory.
3.2.6. /var/spool/mqueue
El directorio /var/spool/mqueue será creado para el mail queue. Este directorio
debe de tener el modo 700 y solo puede ser accedido por el root.
3.2.7. /var/spool/mqueue/.hoststat
Este es un tipo calor para las opciones del HoststatusDirectory, contiene un
fichero por cada host que el sendmail ha utilizado recientemente.
3.2.8. /etc/aliases
El sistema de alises se encuentra en /etc/aliases. Debe de haber una copia en
/lib/aliases para incluir unas modificaciones en el fichero /etc/aliases.
cp lib/aliases /etc/aliases
vi /etc/aliases
Los aliases incluidos deben de ser los propios para tu sistema.
Pág. 16
http://www.cybercursos.net
Normalmente el sendmail observa este fichero mantenido por rutinas dbm o db.
Otras referencias pueden ser /etc/aliases.dir y /etc/aliases.pag dependiendo del paquete
de base de datos que se este utilizando. Estos ficheros pueden ser inicialmente creados,
pero deben de ser inicializados por el sistema. Deben de tener el modo 644.
cp /dev/null /etc/aliases.dir
cp /dev/null /etc/aliases.pag
chmod 644 /etc/aliases.*
newaliases
El path actual puede ser modificado en la opción AliasFile en el sendmail.cf.
3.2.9. /etc/rc
Este fichero es necesario para iniciar el daemon del sendmail cuando tu resetees
tu sistema. Este fichero realiza dos funciones: Lista los socket SMTP para conexiones
(recibir mail desde estaciones remotas) y procesar la cola periódicamente para
asegurarse que el correo ha sido liberado cuando el host aceda.
Se deben de añadir las siguientes líneas a /etc/rc en el área donde comienza el
lanzamiento del daemon del sendmail:
If [-f /usr/lib/sendmail –a –f /etc/sendmail.cf ]; then
(cd /var/spool/mqueue; rm –f [lnx]f*)
/usr/lib/sendmail –fd –q30m &
echo –n ‘sendmail’ >/dev/console
fi
Los comandos cd y rm se aseguran que todos los bloqueos de los ficheros han
sido quitados; un bloqueo extraño puede hacer que en la mitad de la recepción de un
mensaje en proceso se venga abajo. La línea que invoca al sendmail con dos flags “–bd”
causa un listado en el puerto SMTP y “–q30m” causa la ejecución de la cola cada media
hora.
Si no estás ejecutando una versión de UNIX que soporte Berkeley TCP/IP no se
debe incluir el flag –bd.
3.2.10. /usr/lib/sendmail.hf
Este es el fichero de ayuda utilizado por los comandos de ayuda del SMTP.
El path actual de este fichero está definido en la opción H del sendmail.cf.
3.2.11. /etc/sendmail.st
Aquí encontramos una colección estadística del trafico de mail. Para crear este
fichero:
cp /dev/null /etc/sendmail.st
chmod 666 /etc/sendmail.st
Este fichero se imprime con el programa “mailstats/mailstats.c”. El path actual
de este fichero está definido en la opción S del fichero sendmail.cf.
3.2.12. /usr/mailq
Si el sendmail es invocado como mailq, se simulará el flag –bp (esto imprimirá
el contenido de la cola de mensajes). Este debe tener un enlace a /usr/lib/sendmail.
Pág. 17
http://www.cybercursos.net
La respuesta es satisfactoria.
Primer mensaje:
Segunda prueba.
Pág. 19
esta prueba debe de fallar al no tener aceptado este host
http://www.cybercursos.net
pueden aceptar correo, pero este fichero no funciona, o por lo menos no hace su
cometido, se envió un mensaje a sande que es uno de los nombres que tiene norba y el
cual no estaba incluido en el fichero sendmail.cw, pero este recibió el mensaje
perfectamente.
Con estas dos pruebas podemos asegurar que el sendmail funciona
perfectamente. Ahora instalaremos el daemon del protocolo POP, siguiendo los mismos
pasos que para el sendmail. Es decir que primero haremos una introducción a este
protocolo para después hablar del programa utilizado y como instalarlo, así como las
pruebas realizadas.
Pág. 20
http://www.cybercursos.net
Pág. 21
http://www.cybercursos.net
PASS string
Argumento: debe de especificarse un password para
el id-usuario.
Restricciones: Solo puede ocurrir en el estado de
autorización , después del comando USER.
Posibles respuestas:
+OK maildrop locked and ready
-ERR invalid password
-ERR unable to lock maildrop
Ejemplos:
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: +OK mrose’s maildrop has 2 messages
(320 octetos)
...........
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: -ERR mrose’s to lock mrose’s maildrop ,file
already locked.
QUIT
Argumentos: ninguno
Restricciones: ninguna
Posibles respuestas:
+OK
Ejemplos:
C: QUIT
S: +OK dewey POP3 server signing off
Pág. 23
http://www.cybercursos.net
LIST [msg]
Argumentos: un identificador de mensaje. Este
identificador no puede referirse a un mensaje
marcado como borrado.
Restricciones: solo puede utilizarse en el estado de
transacción.
Explicación: Si el argumento es aceptado por el
POP3, entonces pasará a ser una multilínea.
Después del +OK, para cada mensaje en el buzón,
el servidor de POP3 responderá con una línea que
contiene información para cada mensaje. Esta línea
es llamada “lista de datos” para cada mensaje.
La forma de esta línea viene definida, primero por
un octeto con el identificador, después el tamaño en
octetos, y esto será para la mínima implementación.
Para implementaciones mas avanzadas se incluirá
más información.
Pág. 24
http://www.cybercursos.net
S: 2 200
S: .
...................
C: LIST 2
S: +OK 2 200
.................
C: LIST 3
S: -ERR no such message, only 2 messages in
maildrop
RETR msg
Argumentos: un id-mensaje (obligatorio). Este id-
mensaje no debe referirse a un mensaje marcado
como borrado.
Restricciones: solo en el estado de transacción.
Explicación: Si el servidor de POP3 responde
positivamente, entonces se pasará a multilínea.
Después del +OK el servidor de POP3 enviará el
mensaje correspondiente al id-mensaje.
Si el número asociado con este mensaje es mayor
que el número de accesos mas alto en el buzón, el
servidor de POP3 actualizará el número de accesos
más alto al número asociado con este mensaje.
Posibles respuestas:
+OK message follows
-ERR no such message
Ejemplos:
C: RETR 1
S: +OK 120 octetos
S: <el servidor de POP3 envía el mensaje entero
aquí>
S: .
DELE msg
Argumentos: un id-mensaje. Este id-mensaje no
puede referirse a un mensaje marcado como
borrado.
Restricciones: solo en el estado de transacción
Explicación: El servidor de POP3 marca el mensaje
como borrado. Una futura referencia al id-mensaje
asociado con un comando del POP3 generará un
error. Este mensaje no será borrado hasta que la
sesión de POP3 entre en estado de actualización.
Si el número asociado con este mensaje es mayor
que el número de acceso mas alto en el buzón, el
servidor de POP3 actualizará el número de accesos
más alto con el número asociado a este mensaje.
Pág. 25
http://www.cybercursos.net
Posibles respuestas:
+OK message deleted
-ERR no such message
Ejemplos:
C: DELE 1
S: +OK message 1 deleted
..........
C: DELE 2
S: -ERR message 2 already deleted
NOOP
Argumentos: ninguno
Restricciones: solo en el estado de transacción
Explicación: El servidor de POP3 no hace nada, solo
puede esperar una respuesta positiva.
Posibles respuestas:
+OK
Ejemplos:
C: NOOP
S: +OK
LAST
Argumentos: ninguno
Restricciones: solo en el estado de transacción
Explicación: El servidor POP3 utiliza una respuesta
positiva cuando una línea contiene el mayor número
de mensaje accedido. Se devuelve cero en caso de
no haber mensajes en el buzón. Un cliente puede
transferir ese mensaje, si existe un número mayor
que el respondido en el comando LAST estos
mensajes no serán accedidos por el cliente.
Posible respuesta:
+OK nn
Ejemplos:
C: STAT
S: +OK 4 320
C: LAST
S: +OK 1
C: RETR 3
S: +OK 120 octets
S: <el servidor de POP3 envía el mensaje
entero>
S: .
C: LAST
S: +OK 3
C: DELE 2
S: +OK message 2 deleted
Pág. 26
http://www.cybercursos.net
C: LAST
S: +OK 3
C: RSET
S: +OK
C: LAST
S: +OK 1
RSET
Argumentos: ninguno
Restricciones: solo en el estado de transacción
Explicación: Si un mensaje ha sido marcado como
borrado por el servidor POP3, este será
desmarcado. El servidor POP3 responderá entonces
con una respuesta positiva. El valor del número de
acceso mas alto será restablecido a su valor inicial.
Posibles respuestas:
+OK
Ejemplos:
C: RSET
S: +OK maildrop has 2 messages (320 octets)
.....
Los comandos que hemos visto son para una implementación mínima del
protocolo POP3, existen otros comandos para otros tipos de implementaciones del
POP3, pero los cuales no vamos a ver, para más información referirse al RFC 1081 y
1082.
La figura que aquí se ve representa el funcionamiento del servicio de correo,
indicando cual es la función de los protocolos POP3 y SMTP.
El Qpopper 2.4
Pág. 28
http://www.cybercursos.net
5.1. Problemas
Si el fichero de sistema de recepción del mail se encuentra lleno en
/usr/spool/mail los usuarios tendrán problemas. El fichero de sistema debe tener espacio
suficiente para dos copias de el mensaje mas largo que pueda llegar. Popper tiene un
diseño robusto en lo que respecta a este problema, pero si te encuentras con esta
situación debes cerrar la sesión, y tus ficheros se encontrar án en
/usr/spool/mail/.userid.pop
y el resto de correo se encontrará en
/usr/spool/mail/userid
Si esto ocurre el administrador debe de liberar espacio en disco para que los
ficheros del sistema dispongan de espacio libre en los buzones de correo. Entonces el
usuario cuando inicie una sesión de POP u otro programa de mail debe de borrar sus
mensajes de correo.
Una alternativa sería que el administrador del sistema, combinara estos dos
ficheros, pero esta solución no es muy recomendable a no ser que no se disponga de
suficiente espacio libre.
Pág. 29
http://www.cybercursos.net
Donde:
aaa= número de mensajes borrados
bbb= número de bytes borrados
ccc= número de mensajes en el servidor
ddd= número de bytes en el servidor
Pág. 30
http://www.cybercursos.net
6. Comenzando la instalación
Ya se ha explicado cuales son las características y posibilidades del Qpopper,
ahora vamos a explicar como instalarlo, primero veremos de que ficheros disponemos
para la instalación del Qpopper, seguidamente explicaremos como compilar estos
ficheros, explicaremos también cuales son los parámetros de entrada que puede recibir
el Qpopper, y acabaremos con la parte práctica.
Pág. 31
http://www.cybercursos.net
Suma un nuevo campo llamado “bulldir” a la estructura del POP. Este campo
almacena el path del directorio de boletines, o es nulo si la opción –b no está activada.
Incluye una declaración externa para pop_xlst.
Se puede cambiar el tiempo de salida de 30 a 300 segundos. Por defecto el valor
es de 30 segundos.
7pop_init.c Procesa el parámetro –s de la línea de comandos.
Procesa el parámetro –b de la línea de comandos.
7pop_bull.c Nuevo fichero fuente para los boletines del sistema.
7pop_dropcopy.c Añade las llamadas a pop_bull
7xtnd_xlst.c Fichero fuente para los comandos xlst.
7pop_get_subcommand.c Suma una tabla de entrada para los comandos xlst.
7Makefile Suma pop_bull.c y xtnd_xlst.c al código fuente creando los ficheros
obj.
7popper.8 Actualización de las páginas del man donde se describen los
cambios.
Pág. 32
http://www.cybercursos.net
Pág. 33
http://www.cybercursos.net
Pág. 34
REFERENC IAS:
[Ref1]: Fichero perteneciente al Sendmail 8.8.8, este fichero se encuentra dentro
del subdirectorio /Sendmail -8.8.8/READ_ME, y posee información para la instalación,
así como posibles problemas que pueden surgir. También se explica cuales son las
variables de entorno que utiliza el sendmail.