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 skarmeta [at] dif [dot] um.es  . 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:

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

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

Todas estas opciones tienen dos formas de escribirse:

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

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

Un hecho a tener en cuenta es que cuando se desea firmar y cifrar un mensaje a la vez, la palabra sign debe aparecer antes que la palabra always-secure, secure o always, ya que el PGPsendmail incluye la firma antes de cifrar.

Un ejemplo de fichero de configuración del PGPsendmail es el siguiente:

GLOBAL discard-receipt sign

pepi               pfc3@fcu.um.es                  always-secure
jesus              jesus@dif.um.es                 never-secure
En 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.

Un ejemplo del fichero de configuración del PGPdaemon es el siguiente:


	USERID     pfc3@fcu.um.es
	MAILWAIT


Utilización

Cada vez que un usuario entra a la máquina tiene dos opciones

  1. No usar PGPsendmail, sino usar el sendmail antiguo. Para ello no debe realizar nada.

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

Si se desea utilizar siempre esta segunda opción, estos tres comandos se pueden introducir en el profile y, así evitar estar tecleando siempre lo mismo.

Hay que tener en cuenta que el correo ya no se leerá con la orden mail, sino que ser  almacenado en un fichero, por defecto decrypted-mail en el directorio home del usuario. Para leerlo se puede usar alguna aplicación como Mailtool o con un simple more inspeccionar el fichero. Este buzón se puede cambiar en el fichero de configuración (ver Configuración).

Esta página ha sido firmada digitalmente usando PGP