martedì, Dicembre 24, 2024

Installazione di OpenCA

Alessandro Pensato
Alessandro Pensatohttp://www.alessandro-pensato.it
Ciao a tutti, sono Alessandro, sono nato a Palermo il 24/01/1983 e vivo a qualche chilometro dalla città. Da anni coltivo la passione per i computer e tutto quello che ci sta attorno, con un occhio di riguardo per il mondo delle reti. Nel 2000 mi avvicino al mondo di Linux e ne resto impressionato da ciò che consente di fare, nonchè alla filosofia dell’opensource. Nel Aprile 2005 ho conseguito la certificazione Cisco CCNA. Da Novembre 2006 sono membro del CUG. Ho completato il corso HP IT Essential I e II e Cisco Network Security. Ho svolto uno stage presso Jump2Future dove mi sono occupato di redigere una ralazione per la realizzazione di un cluster basato su RedHat GFS (Global File System). Lavoro per l’IBIM-CNR di Palermo dal 2002 come tecnico informatico e gestione rete. Sto cominciando ad acquisire conoscenze nel campo del VoIP con software quali Trixbox e Elastix, realizzazione e uso di macchine virtuali basate su VMWare.

Dopo le svariate prove d’installazione effettuate, seguendo varie guide trovate in rete, da un paio di queste sono riuscito a farne una che come risultato finale portasse ad una installazione valida.

Tutte le prove sono state condotte su una macchina VMware con la distribuzione Debian 4r0 scaricabile da questo link

I repository dei pacchetti che ho usato sono quelli disponibili nella distribuzione. Occorre effettuare un aggiornamento degli stessi prima di cominciare con l’installazione dei pacchetti necessari, utilizzando il comando apt-get update.
Dato che alcuni software saranno compilati da sorgenti, dobbiamo predisporre il sistema con i pacchetti adeguati:

apt-get install g++ gcc make libssl-dev ncftp ftp unzip bzip2 zip nmap ssh

OpenCA richiede come prerequisiti alcuni pacchetti perl, necessari per il suo funzionamento:

apt-get install libwww-perl libxml-perl libxml-regexp-perl libdbi-perl \
perl perl-modules libldap2 libldap2-dev libdbd-mysql-perl \
libauthen-sasl-perl libx500-dn-perl libcgi-session-perl \ 
libconvert-asn1-perl libdigest-md2-perl libdigest-md4-perl \
libdigest-sha1-perl libio-socket-ssl-perl libio-stringy-perl \
libmime-lite-perl libmime-perl libmailtools-perl libnet-server-perl \
liburi-perl libxml-twig-perl libintl-perl libnet-ldap-perl \
libdigest-hmac-perl libgssapi-perl dbishell libintl-xs-perl \
libxml-sax-perl libcompress-zlib-perl libunicode-map8-perl \
libunicode-string-perl libterm-readline-gnu-perl \ 
libterm-readline-perl-perl libhtml-format-perl libtie-ixhash-perl \
libxml-xpath-perl perl-doc

Dato che la gestione/configurazione/richiesta dei certificati avverrà tramite interfaccia web, occorre installare anche un webserver (Apache) e per sicurezza dei dati scambiati, abiliteremo il protocollo SSL. Per comodità mia ho aggiunto anche il modulo php5, che non è comunque necessario al funzionamento di OpenCA.

apt-get install libapache-mod-perl libapache-mod-ssl libapache-mod-php5 \
php5-mysql php5-gd php-pear xml-core libft-perl php5-dev libgd-tools

Dobbiamo installare e configurare Apache in maniera tale da usare i moduli citati prima.

apt-get install apache
dpkg-reconfigure apache  (Selezioniamo i moduli mod_ssl, mod_perl, mod_php5)

Per la registrazione delle informazioni personali e dei certificati, ci appoggiamo ad un db MySQL.

apt-get install mysql-server

Adesso possiamo procedere con l’installazione di OpenCA, che avverrà tramite i suoi sorgenti, Pertanto occorre scaricarli ed estrarli. Per comodità saranno creati due file eseguibili per automatizzare le procedure di installazione.

cd /tmp
wget https://www.openca.org/alby/download?target=openca-0.9.3-rc1.tar.gz --no-check-certificate
tar xvfz openca-0.9.3-rc1.tar.gz
cd openca-0.9.3-rc1
touch config_ra
touch config_ca
chmod 755 config_ra
chmod 755 config_ca

Creiamo il primo file per automatizzare l’installazione.

nano config_ra  

e, all’interno di esso, inseriamo:

#!/bin/sh
./configure --prefix=/usr/local/openca --with-web-host=localhost \
--with-httpd-user=www-data --with-httpd-group=www-data \
--with-ext-prefix=/usr/local/openca.0.9.3 --with-htdocs-fs-prefix=/var/www/ \
--with-cgi-fs-prefix=/usr/lib/cgi-bin --with-ca-organization=TEST \
--with-ca-locality=Palermo --with-ca-country=IT \
--with-module-prefix=/usr/local/openca/modules --enable-dbi --disable-db \
--disable-rbac --with-hierarchy-level=ra \
--with-service-email-account=alessandro.pensato@areanetworking.it \
--with-db-type=mysql --with-db-name=openca --with-db-port=3306 \  
--with-db-user=openca --with-db-passwd=openca
make
make install-ra
make install-pub
make install-node

Ora possiamo eseguirlo.

./config_ra

Creiamo il secondo file per automatizzare l’installazione.

nano config_ca

con all’interno:

#!/bin/sh
./configure --prefix=/usr/local/openca --with-web-host=localhost \
--with-httpd-user=www-data --with-httpd-group=www-data \
--with-ext-prefix=/usr/local/openca.0.9.3 --with-htdocs-fs-prefix=/var/www/ \
--with-cgi-fs-prefix=/usr/lib/cgi-bin --with-ca-organization=TEST \
--with-ca-locality=Palermo --with-ca-country=IT \
--with-module-prefix=/usr/local/openca/modules --enable-dbi --disable-db \
--disable-rbac --with-hierarchy-level=ca \
--with-service-email-account=alessandro.pensato@areanetworking.it \
--with-db-type=mysql --with-db-name=openca --with-db-host=localhost \
--with-db-port=3306 --with-db-user=openca --with-db-passwd=openca 
make
make install-ca
make install-node

Eseguiamo anche questo:

./config_ca

Come detto in precedenza, useremo MySQL per memorizzare i dati personali e dei certificati, quindi occorre creare i database.

mysql -uroot -p
create database openca;
create database openra;
grant all privileges on openca.* to openca@localhost identified by 'openca';
grant all privileges on openra.* to openra@localhost identified by 'openra';
exit;

Modifichiamo il file di configurazione di OpenCA. I relativi campi devono essere come i seguenti.

nano /usr/local/openca/OpenCA/etc/config.xml
ca_organization TEST
ca_locality Palermo
ca_country IT
service_mail_account [email protected]
httpd_host localhost
httpd_port :443
dbmodule DBI
db_type mysql
db_name openca
db_host localhost
db_port 3306
db_user openca
db_passwd openca

Finaliziamo la configurazione di OpenCA e predisponiamo il sistema alla sua esecuzione ad ogni boot.

cd /usr/local/openca/OpenCA/etc/
./configure_etc.sh
cp /usr/local/openca/OpenCA/etc/openca_rc /etc/init.d/
cd /etc/init.d/
update-rc.d openca_rc defaults
./openca_rc start

Configuriamo Apache per utilizzare i certificato SSL e riavviamolo

mkdir /etc/apache/ssl
cd /etc/apache/ssl
openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days 3650 -out cacert.pem -nodes
nano /etc/apache/httpd.conf
Port 443
SSLEngine On
SSLOptions +StdEnvVars
SSLCertificateFile /etc/apache/ssl/cacert.pem
SSLCertificateKeyFile /etc/apache/ssl/cakey.pem
/etc/init.d/apache stop
/etc/init.d/apache start
rm /var/www/index.html

Adesso possiamo accedere all’inidizizzo https://localhost/ca per inizializzare la nostra CA. I dati per il login sono:

  • username: root
  • password: root

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie