PGPSendmail
Introducción
Este documento ha sido elaborado dentro del Grupo de Trabajo sobre PGP por personal de la Universidad de Murcia bajo la supervisión de Antonio Skármeta . Explica la experiencia que ha tenido el autor con la instalación, uso, problemas etc. de PGPsendmail
Introducción
PGPsendmail es una aplicación que cifra, firma y descifra automáticamente los mensajes de correo enviados y recibidos por el sendmail. La principal ventaja de PGPsendmail reside en que a pesar de estar integrado en el MTA es el usuario quien decide si desea o no utilizarlo. Esto se consigue con la variable de entorno PGPPATH. Así, cada usuario tiene dos opciones:- Si desea utilizar PGPsendmail, es decir, si quiere utilizar las ventajas que ofrece el correo cifrado, definir su propia variable de entorno PGPPATH y ejecutar su propio PGPdaemon
- Si, por el contrario, desea utilizar el sendmail antiguo, es decir, enviar
y recibir correo sin cifrar, no tendrá que hacer nada.
Otra ventaja es que permite al usuario enviar correo cifrado a algunas
personas y a otras no, es decir, dada una persona a la que se quiere enviar
correo, se decide si se desea o no enviarle mensajes cifrados y/o firmados.
Está formado por cuatro programas que se encargan de lo siguiente:
- PGPsendmail. Este programa se encarga de cifrar los mensajes que se envían con sendmail. Además, junto con PGPdaemon, se encarga también de la firma.
- PGPdaemon. Es un demonio que se encarga de firmar y descifrar los mensajes. Cuando se quiere firmar un mensaje, PGPsendmail llama a PGPdaemon que es quien realmente lo firma.
- sendpgppass. Se encarga de leer la frase secreta del usuario y pasársela a PGPdaemon para que firme y descifre.
- pgppipe. Es simplemente un filtro usado por PGPdaemon.
Instalación
Se supone que el PGP ya se encuentra instalado en la máquina y que el ejecutable se encuentra en el path con permisos de ejecución para todos los usuarios, es decir, que el PGP se puede utilizar por cualquier persona desde qualquier directorio de la máquina La instalación consta de dos partes: la primera deberá ser efectuada por el administrador del sistema y la segunda será realizada por cada uno de los usuarios que deseen utilizar PGPsendmail.- Instalación por parte del administrador del sistema.
El programa viene comprimido en el fichero PGPsendmail-v1.4.tar.
Lo primero que se debe hacer es descomprimirlo con la orden:
- tar xvf PGPsendmail-v1.4.tar
Se crea asi el directorio pgpsendmail que contiene los ficheros fuente del PGPsendmail junto al Makefile. Nos cambiamos a dicho directorio con la orden: - cd pgpsendmail El Makefile está preparado para instalar el PGPsendmail en el directorio /usr/lib. Si se tiene el sendmail en otro directorio, por ejemplo, en /usr/sbin, se debe cambiar el Makefile, así como los archivos karma.h y pgpsendmail.h para instalar el PGPsendmail en ese directorio. A continuaci¢n se ejecuta el Makefile con la orden:- make
Una vez compilado el PGPsendmail, se debe instalar en el directorio donde se encuentre el sendmail (que normalmente será /usr/lib ó /usr/sbin). Esto se hace mediante el programa install. Así, se teclean las siguientes órdenes:- install pgpsendmail directorio/pgpsendmail - install pgpdaemon directorio/pgpdaemon - install pgppipe directorio/pgppipe - install sendpgppass directorio/sendpgppass.
donde directorio es el directorio donde está el sendmail actual (/usr/lib o usr/sbin). Después, se debe matar el sendmail con el comando kill de Unix. A continuación, nos cambiamos al directorio donde se encuentra el sendmail. Desde aquí, se cambia el nombre al sendmail, de forma que ahora se llame sendmail.real, con el siguiente comando:- mv sendmail sendmail.real
Si alguna vez se quiere modificar el sendmail antiguo, sólo se tendrá que actualizar el fichero sendmail.real. No se tiene que tocar para nada el pgpsendmail. Má s tarde se crea el nuevo sendmail que ser un enlace al pgpsendma tecleando la siguiente instrucción:- ln -s pgpsendmail sendmail
A continuación, se llama al nuevo sendmail:- sendmail -bd -q 15m
Por último, se cambian algunos permisos del pgpdaemon:- chmod gu+s pgpdaemon
Finalmente, señalar que el directorio /var/spool/mail debe tener permisos de escritura para todos los usuarios. - Instalación de cada usuario. Lo único que se debe hacer es crear los dos ficheros de configuración PGPsendmail.config y PGPdaemon.config en el directorio donde se encuentren las claves del usuario. (Ver Configuración) Para poder usarlo, cada vez que se entre a la m quina se deben realizar una serie de ordenes que se comentan al final del documento, en el apartado Uso.
Configuración
La configuración se realiza mediante dos ficheros: PGPsendmail.config y PGPdaemon.config, ambos situados en el directorio que indica la variable de entorno PGPPATH. El PGPsendmail.config tiene las siguientes opciones:- always-secure. Si se pone esta palabra en el fichero, todos los mensajes serán cifrados.
- secure. Es sinónimo de always-secure.
- always. Es sinónimo de always-secure.
- never-secure. Con esta opción nunca se cifran los mensajes.
- insecure. Es sinónimo de never-secure.
- never. Es sinónimo de never-secure.
- return-receipt. Esta opción existe por defecto. Devuelve un mensaje de éxito cuando se envía un mensaje cifrado correctamente y un mensaje de fracaso cuando se intenta enviar un mensaje cifrado erroneamente.
- discard-receipt. Es lo contrario a return-receipt. No devuelve ningún mensaje cuando se envía correo cifrado.
- no-receipt. Es sinónimo de discard-receipt.
- add-key. Añade la clave pública en el mensaje.
- no-advertising. No muestra los mensajes de aviso sobre PGPsendmail.
- sign. Firma el mensaje antes de cifrarlo.
- Con la palabra GLOBAL. Esta palabra siempre tiene que aparecer en el PGPsendmail.config una sola vez. Tras ella se escriben las opciones anteriores que serán aplicadas a todos los mensajes.
- Individualmente para cada persona a la que se le envíe correo. Se pone en primer lugar un alias, seguido por la dirección de correo y por las opciones que se le aplican.
GLOBAL discard-receipt sign pepi pfc3@fcu.um.es always-secure jesus jesus@dif.um.es never-secureEn este ejemplo, todos los mensajes serán firmados y no se devolverán mensajes de éxito o fracaso. Los mensajes que vayan a Pepi serán cifrados y los que vayan a Jesús no.
El PGPdaemon.config tiene o puede tener las siguientes palabras:
- USERID. Es obligatorio escribirla seguida de la dirección de correo del usuario.
- MAILWAIT. Hace que PGPdaemon espere a que sendpgppass le envíe la frase de contraseña. Es conveniente ponerla.
- IN_SPOOL_DIR. Seguido del directorio donde se encuentra el correo que llega. Por defecto es /usr/spool/mail.
- OUT_SPOOL_FILE. Seguido del nombre del fichero que hará de buzón. Si no se indica, se tomará como buzón el fichero decrypted-mail
- MAIL_CHECK_INTERVAL. Seguido por un número que representa cada cuántos segundos se chequeará el correo que llega.
USERID pfc3@fcu.um.es MAILWAIT
Utilización
Cada vez que un usuario entra a la máquina tiene dos opciones- No usar PGPsendmail, sino usar el sendmail antiguo. Para ello no debe realizar nada.
- Usar PGPsendmail. Para ello se deben hacer las siguientes cosas:
- Definir la variable de entorno PGPPATH, que será igual
al directorio donde se encuentren los ficheros de claves del
PGP, así como los ficheros de configuración del PGPsendmail y
el PGPdaemon. Esto se hace con la orden:
- setenv PGPPATH directorio
- Ejecutar PGPdaemon. Para ello debe introducir el comando:
- pgpdaemon &
- Ejecutar el programa sendpgppass con la orden:
- sendpgppass
que le pedirá la contraseña para abrir su clave secreta
- Definir la variable de entorno PGPPATH, que será igual
al directorio donde se encuentren los ficheros de claves del
PGP, así como los ficheros de configuración del PGPsendmail y
el PGPdaemon. Esto se hace con la orden: