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
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
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'"
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.
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
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