Una vez instalado FreeVote, es preciso proceder a su correcta configuración. Examinaremos paso por paso los apartados respectivos.
El primer paso consiste en la creación del fichero de configuración. Para ello se debe copiar el fichero /etc/freevote.conf.dist en el fichero /etc/freevote.conf, y proceder a la edición de éste.
El fichero de configuración no es sino una secuencia de asignaciones de variables a valores. A continuación se describen éstos y sus significados:
Directorio donde se almacenan datos y ficheros temporales. Deberá tener permisos de escritura para el usuario bajo el que se ejecute el servidor web ( normalmente nobody o www
Directorio base de la instalación de FreeVote. Normalmente ( a menos que se haya cambiado dicho directorio, tal y como se explica en el capítulo anterior ) contendrá el valor /usr
Directorio donde reside el fichero de configuración del servidor Apache.
Directorio del sistema de archivos donde se deben instalar las páginas web de FreeVote durante el proceso de personalización
URL desde la que van a ser accedidas las páginas Web de FreeVote. WEBURL debe estar en el fichero de configuración de Apache direccionada a INSTALLDIR ( ver apartado sobre configuración del web )
Indica la facility a la que se van a asociar los eventos de syslog() generados por FreeVote. Para más detalle consultar la página de manual syslog(3)
Directorio donde se almacenan los ficheros de logging de FreeVote.
Directorio donde se almacenan los backups de FreeVote
Indica si se debe utilizar el protocolo HTTPS para el acceso a páginas con información susceptible de ser monitorizada
Indica si nuestro sistema tiene instalado soporte de encriptación de correo, y si éste es PGP o GnuPG
Contraseña de desbloqueo para poder firmar digitalmente los mensajes generados ( ver sección referida al correo y a la configuración de PGP )
Nombre "genérico" que le damos al sistema de voto una vez instalado ( eg "Votaciones ACME S.L."
Nombre del servidor de bases de datos que utilizamos. En el momento actual solo se soporta PostGreSQL
Nombre de la base de datos que contiene la información de FreeVote
usuario propietario de la base de datos . Notesé que se refiere a un usuario PostGreSQL, no necesariamente a un usuario del sistema
contraseña de acceso a la DB por parte del usuario anterior
Servidor y puerto de acceso en el que reside la base de datos
Como es obvio, dadas las características de los datos contenidos en este fichero, deberá estar instalado en modo de solo lectura para el usuario root
Una vez editado el fichero de configuración, el siguiente paso es compilar e instalar los templates de las páginas web extraídas del paquete, así como de generar diversos ficheros auxiliares.
El método mas sencillo es utilizar el programa de instalación previsto a tal ejemplo. Supondremos de ahora en adelante que FreeVote se ha instalado en el directorio /usr. y procederemos a ejecutar:
/usr/bin/freevote_install.sh --install-files
Dicho programa realiza las siguientes tareas:
La configuración del servidor de bases de datos, es sin duda la parte más complicada de la instalación. Por ello, se han previsto una serie de scripts para facilitar la labor. No obstante, y puesto que en ocasiones ( por ejemplo en caso de caida del sistema y necesidad de una recuperación manual ) será necesario realizar alguna de estas tareas a mano, procedemos a describirlas en detalle.
FreeVote accede a la base de datos a través del usuario definido como DBUSER y con la contraseña DBPASSWD tal y como figuran en el fichero de configuración.
La creación del propietario de la base de datos puede realizarse de dos maneras:
/usr/bin/freevote_install.sh --create-user
Al igual que en el apartado anterior podemos realizarlo, bien a mano, bien mediante un script
/usr/bin/freevote_install.sh --restart-db
createdb freevote -U DBUSER
createlang -U postgres -L /usr/lib/pgsql plpgsql freevote
psql freevote -U DBUSER -f /usr/lib/freevote/lib/database.sql
FreeVote soporta diversas categorías de usuarios. El más destacable es el administrador. Los datos de éste son definidos en el fichero de configuración. Para crear dicho usuario Ejecutaremos el comando:
/usr/bin/freevote_install.sh --register-sysop
El programa toma los datos del fichero de configuración, registra el usuario, y le asigna una contraseña aleatoria, que se guarda en la copia de seguridad del fichero de configuración que se almacena en BACKUPDIR.
No es recomendable el crear este usuario a mano, pues se debe garantizar que tenga userid=1 y groupid=6. En caso necesario, procedase a estudiar el script de instalación para realizar esta tarea
Las operaciones de personalización del correo se reducen a ajustar las opciones referidas al gestor de correo existentes en el fichero /etc/httpd/php3.ini, y a preparar el soporte de firma y encriptación PGP en caso de que éste se vaya a utilizar.
Es preciso, en el caso de que se desee soporte PGP/GnuPG, que la direccion de correo ADMIN_EMAIL tenga generadas y definidas las claves pública y privada en el anillo de claves que utiliza FreeVote. En la sección correspondiente a la configuración de PGP/GnuPG se detalla el procedimiento
NOTA:En el momento actual PGP no está soportado , debiendo utilizar GnuPG si se desea firmado digital de los mensajes
Free-Vote Incorpora la posibilidad de firmar y encriptar los mensajes generados por el sistema, de manera que se certifique el origen de éstos. Esto es necesario especialmente en las operaciones relacionadas con la intervención de una votación.
NOTA: En el momento actual, FreeVote no soporta PGP, sino sólo GnuPG. Del mismo modo no está habilitada la opción de encriptar los mensajes, funcionando solamente la firma de éstos
La variable USE_PGP del fichero de configuración indica el programa a utilizar. Seleccionaremos "NONE" , "PGP" ,o "GnuPG", según sea nuestro caso
El siguiente paso es crear las estructuras y directorios necesarios para el funcionamiento del soporte PGP desde el servidor Web: Los mensajes generados por Free-Vote van firmados por el usuario ADMIN_EMAIL, por lo que es necesario crear y exportar las claves para dicho usuario
El script de instalación freevote_install.sh contiene la opción --install-pgp que realiza las opereciones necesarias:
Si bien es posible realizar las operaciones de forma manual, se recomienda utilizar el script proporcionado para ello
BUG: La versión actual de freevote, presupone que los ejecutables de gpg y pgp residen en /usr/bin. En caso de que esto no sea así será preciso editar el fichero tools.php3 y corregirlo
El programa de personalización habrá configurado correctamente el fichero /etc/syslog.conf. Comprobaremos este punto, y en el caso de que todo sea correcto se deberá proceder a relanzar el demonio de syslog
FreeVote define diversos tipos de evento, asociados cada uno a un tipo de operaciones sobre el sistema:
Autentificacion de usuarios
Operaciones de administracion
Registro de accesos al web
Operaciones de voto y solicitud de clave
Registro de usuarios, consultas e interventores
Operaciones de sistema, trazas, etc
Cada una deberá estar previamente definida en el fichero de configuración con el nivel adecuado, acorde con el comando syslog(3). Para la mayor parte de las instalaciones, la configuración propuesta será la correcta
La variable USE_HTTPS del fichero de configuración, indica al sistema si se desea o no el uso de conexiones SSL para poder operar con FreeVote. Un valor de '0' ( cero ) hará que no se utilicen conexiones seguras en el sistema, activándose si dicha variable tiene el valor '1' (uno)
Si tenemos instalado el soporte para SSL y además el de certificación digital podemos proceder a personalizar la configuración para la aceptación de certificados digitales. Para ello, editamos el fichero /etc/httpd/conf/httpd.conf.freevote, generado en el proceso de instalación y ajustamos el valor de la variable SSLVerifyClient. Existen las siguientes opciones:
No se requiere el uso de certificación digital
Se le pide certificado al cliente, pero se permite continuar la ejecución si no es presentado el certificado
Es precisa la presentación de un certificado digital para poder acceder a las páginas
Para poder utilizar certificados digitales, el sistema debe estar correctamente instalado y configurado. Se remite al lector a las páginas del manual sobre mod_ssl y OpenSSL, para la configuración del resto de parámentros del soporte SSL
Verificar que el programa de instalación ha modificado correctamente el fichero crontab del usuario root. En caso necesario, se almacena en BACKUPDIR una copia de las entradas del crontab asociadas a FreeVote
Una vez realizado este proceso, procederemos a relanzar el servidor web y el servidor de bases de datos. Accediendo al navegador a la página principal ( definida como WEBURL ) , deberemos obtener la página de bienvenida. Comprobaremos, accediendo a los menús de consultas que el acceso vía SSL funciona correctamente, y que el acceso a la base de datos tampoco da problemas.
En caso necesario se proporciona un script de ejemplo /usr/lib/freevote/lib/ejemplo.sql , con una serie de usuarios y consultas predeterminadas. El operador puede jugar con este script para familiarizarse con el sistema antes de ponerlo en producción
Es muy importante que el operador recuerde que en caso de modificar el fichero de configuración, será preciso reinstalar el sistema, o al menos aquellas partes que se hayan visto afectadas. En concreto el comando
/usr/bin/freevote_install.sh --install-filesserá necesario ejecutarlo siempre, pues es preciso reconstruír unos ficheros internos necesarios para el funcionamiento del servidor PHP