Table Of Contents

Previous topic

Applicazione OpenVPN

Next topic

Applicazione DOMOTICA

This Page

INSTALLAZIONE

Pacchetti necessari

apt-get install acl
apt-get install openvpn
apt-get install postgresql-8.3
apt-get install apache2-mpm-prefork
apt-get install python-psycopg2
apt-get install python-imaging
apt-get install libapache2-mod-wsgi
apt-get install python-openssl

Installazione OpenVpn

Recuperare il file di configurazione dell’openvpn

cd /usr/share/doc/argodef/vtun
cp mk_vpn.conf /etc/openvpn/mk_vpn/

Editare il file mk_vpn.conf

cd /etc/openvpn/mk_vpn
vim mk_vpn.conf

E sostituire

123.456.789.254 con l'ip esterno del server
ROUTE_PUSH="192.168.0.0 255.255.255.0" con la relativa rete interna da pushare sul client
ROUTE_PUSH_CIDR="192.168.0.0/24" con la relativa rete interna da pushare sul client

Creazione di un certificato in modo da generare la chiave il certificato del server

mk_vpn utentetest-nome_macchina # Es marco-thunder (non e' importante il nome, questo e' uno standard che seguiamo

Dare invio alle varie domande e quando verra’ chiesto

Sign the certificate? [y/n]:

Digitare y. Digitare y anche alla successiva conferma Stesso procedimento anche per le successive richieste.

Scompattare il tar.gz (quello del server, non quello del client) creato nella cartella etc

cd /etc
tar -xvzf /root/utentetest-nome_macchina/utentetest-nome_macchina.srv.tgz

Creazione Utente Postgres (Opzionale)

Entrare come untente postgres

su postgres
createuser utente

E scegliete le preferenze per il vostro utente (se l’utente che state creando vi serve per l’applicazione di Django dovete dargli la possibilita’ di creare nuovi database).

psql -c "ALTER USER utente WITH PASSWORD 'utente'"

Installazione Applicazione JUMBO-OPENVPN

Inizialmente andremo a crearci la struttura delle direcotry che usiamo solitamente e ci scarichiamo l’applicazione standard firewall.thundersystems.it che includera’ di default jumbo-openvpn e jumbo-proxy (successivamente si puo’ personalizzare)

cd /home
mkdir www
cd www
hg clone http://hg.thundersystems.it/siti/firewall.thundersystems.it
cd firewall.thundersystems.it/site-packages
hg clone http://hg.thundersystems.it/jumbo/jumbo-core
hg clone http://hg.thundersystems.it/jumbo/jumbo-openvpn
hg clone http://hg.thundersystems.it/jumbo/jumbo-proxy
hg clone http://hg.thundersystems.it/django/django-trunk
hg clone http://hg.thundersystems.it/django/south-trunk

Creare i local_settigs.py

cd ../firewall_thunder cp local_settings_sample.py local_settings.py

Editarli secondo le proprie esigenze. I parametri di default che possono essere modificati (basta aggiungerli in questo file per sovrascriverne il valore) sono:

Parametro Descrizione Default
CA_KEY Nome del file contente la chiave privata della Certification Authority /etc/openvpn/keys/ca.key
CA_CERT Nome del file contente il certificato della Certification Authority /etc/openvpn/keys/ca.crt
TAR_PATH Percorso in cui verranno salvati i file dei certificati degli utenti /etc/openvpn/cert_files/
CONF_DEFAULT_FILE Nome del file della configurazione dell’openvpn /etc/openvpn/mk_vpn/mk_vpn.conf
CONF_NAME Nome con cui verra’ creato il file configurazionde dell’openvpn che verra’ dato all’utente Openvpn
CERT_RULES_PATH Percorso in cui verranno salvate le regole del firewall associate ai vari utenti /etc/openvpn/cert_rules/
EXT_CERT Estensione del file compresso da dare al cliente zip
USE_PASSWORD Identifica se al cliente verra’ chiesta o meno la password per collagarsi in openvpn True

Inizializzare il progetto

./manage.py initdb

Creare la configurazione di apache

cd ../apache
cp apache_sample.conf firewall.thundersystems.it

Editarla con i propri parametri.

Apache

Abilitare il modulo rewrite.load se non lo e’

cd /etc/apache2/mods-enabled/
ln -s ../mods-available/rewrite.load

Creare il sito in apache

cd /etc/apache2/sites-enabled
ln -s /home/www/firewall.thundersystems.it/apache/firewall.thundersystems.it
/etc/init.d/apache2 restart

Configurazione OpenVpn

Creare le cartelle TAR_PATH e CERT_RULES_PATH

Nel nostro esempio:
cd /etc/openvpn
mkdir cert_files
mkdir cert_rules

Copia degli script personalizzati in OpenVpn

cp /home/www/firewall.thundersystems.it/site-packages/jumbo-openvpn/openvpn/scripts/check_user /etc/openvpn/scripts/
cp /home/www/firewall.thundersystems.it/site-packages/jumbo-openvpn/openvpn/scripts/connect /etc/openvpn/scripts/
cp /home/www/firewall.thundersystems.it/site-packages/jumbo-openvpn/openvpn/scripts/remove_rules.fw /etc/openvpn/scripts/

N.B. Nel caso la vostra installazione sia stata fatta in una cartella diversa da /home/www/ bisognera’ modificare i due file andando a correggere la variabile PATH_APPLICATION con il percorso corretto.

Creazione e gestione delle ACL

vim /etc/fstab

Modificarlo in questo modo

Da: "/dev/xxx       /           reiserfs        defaults"
A:  "/dev/xxx       /           reiserfs        defaults, acl"

Smontare e rimontare il disco

mount / -o remount

Settare ACL

setfacl -R -m u:www-data:rxw /etc/openvpn/keys
setfacl -d -m u:www-data:rxw /etc/openvpn/keys

setfacl -R -m u:www-data:rxw /etc/openvpn/mk_vpn
setfacl -d -m u:www-data:rxw /etc/openvpn/mk_vpn

setfacl -R -m u:www-data:rxw /etc/openvpn/cert_rules
setfacl -d -m u:www-data:rxw /etc/openvpn/cert_rules

setfacl -R -m u:www-data:rxw /etc/openvpn/cert_files
setfacl -d -m u:www-data:rxw /etc/openvpn/cert_files

Aggiungere/Modifica nel file /etc/sudoers la seguente linea

visudo
www-data ALL=NOPASSWD:/etc/init.d/openvpn

Aprire la porta 1194 nel firewall

cd /etc/argo
vim fw.conf
Aggiungere 1194 nella variabile TCP_DPORTS

Controllare il livello si sicurezza degli script (deve essere a 3)

less /etc/openvpn/server-tcp.conf
Controllare che script-security sia settato a 3, se non lo e' settarlo e riavviare l'openvpn:

script-security 3

Lanciare il server OpenVpn

/etc/init.d/openvpn start