Category: Interventi

Mercoledì 16 Aprile sarò alla Piazza Telematica di Schio a parlare di:

I blog, social networking e disclosure: fondamentali espressione di libertà, di democrazia e di crescita sociale e culturale, sono talora usati per giustificare censure. Discuteremo con Stefano Zattara di blog, libertà digitali ed etica.

Non sarà una presentazione “noiosa”… E’ piu che altro un modo per “far capire” a tutti i blogger/navigatori/lettori di notizie on line, cosa ne pensano di noi e come ci descrivono alla tv o sui giornali.

Per info…. mail/cell/voip o lasciate semplicemente un commento….

Stefano

Piccolo how-to su open-vpn

Prima di parlare di openvpn e di come creare una vpn tra due host, ed i vantaggi che possono venirne fuori bisogna che venga fatto una brevissima introduzione alle VPNs.

Breve introduzione alle VPNs.

La sicurezza in rete sta diventando di giorno in giorno un elemento fondamentale per le grandi aziende che adoperano Internet come mezzo di “commercio” e “comunicazione” e che pretendono di proteggersi e scambiare informazioni in maniera sicura.
Le VPNs rappresentano un modo per risparmiare cifre elevate per le linee dedicate e per permettere ad un utente quasliasi di connettersi da ovunque si trovi ed accedere ai propri dati personali residenti su server locali.
L’acronimo VPN sta per Virtual Private Network, ossia una rete privata, crittata e passante su di un canale di comunicazione diretto che permette lo scambio di dati con la possibilità di restringere l’accesso ad gruppo di utenti autorizzati.
Un semplice esempio di VPN:

Pc_Home ————- Internet ————- Pc_Uffico
Ip:10.0.0.1 ————- x.x.x.x ————- 10.0.1.2

Tra il Pc_Home e Pc_Ufficio viene aperto un canale di comunicazione che passa per Internet, utilizzando classi di indirizzi privati. Per effettuare tali operazioni si avvale dei Protocolli dei Tunneling, e` possibile accedere ad una rete privata tramite PPtP (Point To Point Tunneling Protocol) L2TP (Layer 2 Tunneling Protocol.), IPSec (IP Security).
Dopo questa breve spolverata riguardante le VPNs possiamo passare al nocciolo della questione ed al motivo per cui stiamo scrivendo questo articolo:
OpenVpn

Stiamo parlando di un software, ovviamente free, che permette la creazione di una VPN ossia un canale di comunicazione privato tra due Hosts.La necessita` di adoperare questo software e` nata dal fatto che abbiamo sperimentato di far “runnare” un servizio ad un client abbonato Fastweb del quale sappiamo tutti i problemi legati al Nat che si presentano per tali abbonati, per i quali possedere un servizio in locale, quale Http, Ftp, ssh, diventa un’ardua impresa.
Il Software in questione e` rintracciabile con semplicita` al seguente url: http://openvpn.secureforge.net e viene descritto come “secure IP tunnel daemon”.
Questo demone gira, di default, sulla porta 5000 UDP ma tramite i flags:

--port port : TCP/UDP port # for both local and remote.
--lport port : TCP/UDP port # for local (default=5000).
--rport port : TCP/UDP port # for remote (default=5000).

Tale porta puo` venir modificata, come ogni qualsiasi servizio.
e tramite il flag: –proto puo` essere selezionato il tipo di protocollo da utilizzare.

Openvpn suopporta una crittazione convenzionale di una chiave statica condivisa oppure una chiave pubblica (SSL/TSL mode), ma va detto che supporta anche connessioni senza crittazione., se possiedi kernel Linux 2.4.7 oppure superiore molto probabilmente i drivers TUN/TAP, necessari per la creazione dell’interfacce virtuali, sono installati. Se cosi` hai bisogno di creare il device e caricare il modulo

# mknod /dev/net/tun c 10 200
# modprobe tun

Se sul tuo Pc e` presente un eventuale firewall bisogna che imposti alcune regole per attivare l’inoltro dei pacchetti sulla TUN:
iptables -A INPUT -i tun+ -j ACCEPT
Questo software e` dotato di un lato client ed un lato server, nel caso in questione un pc fungera` da client mentre l’altro fungera` da server.
Come prima cosa generiamo una chiave statica ed uguale per entrambi gli host che vogliono stabilire la sessione con il seguente comando:

openvpn –genkey –secret key

Ora scegliamo una classe di indirizzi privati che verranno utilizzati per crare la VPN, nel nostro caso abbiamo preso in considerazione la rete privata di classe C 172.17.142.0/24.
L’host che funge da client adopererà l’ip 172.17.142.22 mentre l’host che fungerà da server utilizzerà l’ip 172.17.142.23. Ora analizziamo la sintassi del comando che viene eseguito “lato client”.

openvpn –remote 80.80.80.x –dev tun1 –ifconfig 172.17.142.22 172.17.142.23 –verb 5 –secret key

Andiamo subito a chiarire il comando raffigurato.

–remote 80.80.80.x e` il comando che imposta come server l’interfaccia pubblica dell’host che fungera` da server con indirizzo privato 172.17.142.22

–dev tun1 indica l’intefaccia da utilizzare

–ifconfig 172.17.142.22 172.17.142.23 imposta per primo l’ip che avra` il client locale e per secondo l’ip dell’interfaccia tun dell’host remoto.

–verb 5 Apriamo una piccola parentesi riguardo il verbose, esistono 6 livelli ed ognuno e` caratterizzato da una funzione specifica, quella che utilizzeremo noi e` il 5 che mostra i caratteri R e W in console per ogni pacchetto che viene letto e scritto. Le lettere maiuscole indicano i pacchetti TCP/UDP, mentre le minuscole indicano i pacchetti TUN/TAP.

–secret key indica il file che contiene la chiave per permettere la sessione crittata.

p.s: e` ovvio che entrambi i client debbano avere lo stesso file contente la chiave.

Appena avviato openvpn verra` creata un interfaccia virtuale denominata tun1 che avra` nel caso del client avremo 172.17.142.22, nel caso del Server avremo 172.17.142.23.
Dopo aver avviato openvpn conviene fare un po’ troubleshooting con i comandi route e ping, semplici ma efficaci. Lato server il comando sopra descritto subisce lievi modifiche:

openvpn –dev tun1 –ifconfig 172.17.142.23 172.17.142.22 –verb 5 –secret key

1) Ovviamente viene invertito la sequenza degli IP.
2) Il comando non comprende il flag “– remote x.x.x.x”, perche` ho anlizzato che
per un utente “fastweb”(io), il pc non puo` fungere da serve per problemi di NAT, dato che tutti gli utenti di un POP di fastweb stanno dietro proxy residenzialo ergo non puo` ricevere richieste ma solo effettuarle.
Fornire un servizio tramite una macchina interna alla VPN

Mostrare un servizio caricato sulla mia macchina e` praticamente impossibile dato il problema che ho segnalato pocanzi, di conseguenza ho utilizzato openvpn come strada alternativa per mostrare un servizio al pubblico.
Entriamo nel dettaglio:
Dopo aver stabilito una connessione con le stringe mostrate precedentemente, facciamo in modo che il pc che ci funge da server funga anche da NAT per il Forwarding di pacchetti specifici di un determinato servizio. Per tale motivo abbiamo sviluppato uno script contenente tutte le regole necessarie per forwardare il servizio ssh che di default gira sulla porta 22.
In questo script il server della VPN effettua il Forward dei pacchetti destinati alla sua porta 22 verso il client della VPN.
Ecco riportato un piccolo ascii art che aiutera` alla comprensione

Internet(request_ssh_session.22) to –> Host_Pubblico(serverVPN)[Forward to 172.17.142.22:22] –> 172.17.142.22

########### SCRIPT PER IL FORWARD DELLE PORTE DI UN SERVIZIO ###########
#! /bin/bash
/sbin/iptables -t nat -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 22 -j DNAT --to 172.17.142.22:22
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 30000:65325 -j DNAT --to 172.17.142.22
iptables -t nat -A POSTROUTING -o ppp0 -s 172.17.142.22 -j MASQUERADE
iptables -t nat -A POSTROUTING -o tun1 -p tcp -s 172.17.142.22 -j SNAT --to Host_Pubblico
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
iptables -A FORWARD -i tun1 -p tcp -j ACCEPT
iptables -A FORWARD -i tun1 -p udp -j ACCEPT
iptables -A INPUT -i tun1 -p tcp -j ACCEPT
iptables -A INPUT -i tun1 -p udp -j ACCEPT
/sbin/iptables -L
/sbin/iptables -t nat -L
echo "1" > /proc/sys/net/ipv4/ip_forward

Con la collaborazione di Nazgul abbiamo creato un’interfaccia grafica per l’utilizzo di openvpn, compilata tramite Gtk 2.0 e testata su Slackware 9.x. e Debian.

E` semplice ed intuitiva comprende tutti campi che sono stati indicati precedentemente ed e` integrato nell’avvio del programma il comando

#modprobe tun

non vi resta che generare la key, che ripeto dev’essere comune.

E` stata anche realizzata una versione in bash che vi alleghiamo sempre per cercare di rendere semplice ed intuitivo questo software che se ben utilizzato porta molti vantaggi. Ricordo che tutti i software compilati, ed elencati, es: iptables, openvpn sono stati eseguiti su Slackware 9.0 la versione delle gtk era la 2.2 per la compilazione di onpenvpnGUI.c lato server e client.
Per compilare bisogna utilizzare questa stringa di esempio:

gcc -o openvpnGUI openvpn.c `pkg-confg –libs –cflags gtk+-2.0`

Di iptables abbiamo usato la versione iptables v1.2.7a.
Possibili bug presenti nei software allegati ? si .. e forse anche molti.

OpenVpn Bash Client (tar.gz)

OpenVpn Bash Server (tar.gz)

OpenVpn GUI Client (tar.gz)

Cogito ergo sum
Non c’e` nulla interamente in nostro potere, se non i nostri pensieri.
Digital Souls Research Group

[cartesio zast signal]: date

Sun Jun 6 12:15:58 UTC 2004

NOTA: Questo articolo è stato importato dal vecchio sito su cui era hostato prima…

Un ringraziamento particolare a petabyte (aka bejelith ) per il sito e l’hosting, a cartesio per la parte teorica e il test su rete nattata Fastweb, e a Nazgul per l’intefaccia grafica.

Ecco, da una migrazione all’altra ho scoperto -almeno- quello che mancava…. Tra tutto ciò sopprattutto la pagina su GnuPg….
Bene, ri-iniziamo…..

Allora…. A cosa serve il PGP… ma sopprattuto… COS’E?!?!

Allora, una cosa per volta… partiamo dal problema che ha fatto nascere il pgp.

Ammettiamo che mi arrivi una lettera, che, pur non avendo comprato alcun biglietto, sono stato estratto come vincitore di un viaggio attorno al mondo per 2 persone….. E’ uno scherzo…. ma…non si sa mai.
Come posso, con una prima analisi, vedere se è una lettera vera o una burla?
Bhe, posso vedere la busta, il francobollo, il timbro con la data e il luogo della spedizione, la carta della busta (uno stampato che non reca ne il mio nome ne il mio cognome difficilmente è vero), il testo della lettera, la firma (fotocopiata)….
Da tutto ciò posso capire se è una bufala o no…
Ma nel caso di una mail ?!?!?
Eh, qui le cose diventano molto difficili (se non dire impossibile)….
Il testo della mail…. bhe, non fa molta fede, dato che posso scrivere e firmarmi come voglio.
Lo stesso vale per il mittente (falsificarlo è un lavoro di 5 minuti), per la data di spedizione etc…
Quindi.. una mail che proviene da sono_il_capo_supremo@microsoft.com che mi chiede di rinnovare la licenza del mio pc e che, tramite loro la pago solo metà, sarebbe una cosa credibile/possibile (se non fosse per il fatto che NON ho Windows sul pc :D ).

Questo è un esempio MOLTO stupido, me ne rendo conto…. ma il principio è quello.
Se mi arriva una mail dalla mia banca che mi chiede di accedere al mio conto e controllare movimenti sospetti sul mio conto, che faccio? Ci credo col rischio che mi rubino utente e password -e che poi mi sparisca il conto-, oppure non controllo e corro il rischio che il mio conto sparisca sul serio ?!?!
Bhe, se avessi la possibilità di autenticare il mittente in modo sicuro sarei a posto e so se quella mail è vera o falsa, avrei risolto il problema.

Ecco per cosa nasce il PGP.
PGP (o meglio, GnuPG [la sua versione libera] ) è un sistema che permette tramite un sistema di chiave pubblica/privata di autenticare il mittente della mail. Come “opzione” aggiunta, permette anche di crittare la mail.

La stessa cosa si può applicare ai file o agli archivi (i cosiddetti “zip“) e tenerli crittati sul disco.

Per chi è interessato ad approfondire è disponibile il pdf di una mia vecchia presentazione su GnuPG.

GnuPg+Enigmail.pdf

Bene, ho appena scoperto che Venerdì 25 Gennaio ho un intervento a Vicenza, bello saperlo così :) Locandine gia in stampa e…. NON SO IL TITOLO :D

Bhe, appena ho comunicazioni sul titolo aggiorno anche il Post….

Se siete interessati:

http://www.odeonline.it/

http://www.sgms.it/

Il posto si trova qui

Se serve un passaggio contattatemi…. tanto devo comunque andare in giu :D

Ecco, sono riuscito almeno a sapere il titolo…

La serata trattera’ di :

“Software libero: licenze libere e libere pratiche ”

Essendo in “coppia” con Francesco Tapparo, sicuramente della parte di licenze se ne occupera’ lui, io mi occupero’ della seconda parte, quindi di Installazione di un sistema GNU/Linux, spiegazione varia del sistema, di cosa come quando etc….

Pieghevole_Odeon_2008

Locandina Odeon 2008

Siete tutti caldamente invitati, se serve un passaggio basta chiedere

____________________________________________________________________

Ennesimo Update…. il talk trattera’ sulle funzionalita’ di Linux, spiegazione basilare di Linux con riferimenti specifici a Gento, breve guida all’installazione di Gentoo, configurazioni ed utilizzo di Portage.

Stefano

N.B. Essendo senza connettivita’ (ora sono dall’uni) e’ meglio se mandate un sms al posto di una mail…..

E’ appena stato messo on-line il servizio che ha fatto TVA Vicenza sul LinuxDay .

http://it.youtube.com/watch?v=idSMAz9D_iU

httpv://www.youtube.com/watch?v=idSMAz9D_iU

Stefano

Salve, sono Stefano Zattara, studente a Padova, ed (a tempo perso) appassionato di Informatica, in particolare di Linux, audio, registrazioni e chi più ne ha più ne metta..... Se servono altre info sono qui
Se vuoi offrirmi un trancio di pizza, un tramezzino, o un caffè....