Di recente ho re-installato Windows perché volevo usare
Falcon4AF, una (l'unica) applicazione che non ha un
equivalente
migliore su
Linux, e l'emulazione di Wine non è perfetta con le DX9. La ragione di
creare una
VPN su Win32 viene dalla necessità di consentire a tutti i
giocatori della nostra associazione
PVI di potersi connettere insieme in rete
per giocare con il simulatore di volo militare di F-16
Lead-Pursuit Falcon4 Allied Force.
Qui in Italia molti utenti hanno sottoscritto un contratto con Fastweb,
che offre una connessione LAN bidirezionale in fibra ottica con una
velocità di 10 Mbps. Il problema
è che la connessione è una connessione LAN, e quindi vi
danno un indirizzo IP
privato, e l'apparato per il NAT/Firewall sta nell'edificio del
provider. Gli
utenti non hanno accesso alla configurazione del port forwarding. Ogni
client Falcon4AF (anche se non usato per ospitare una sessione),
funziona come un
server in ascolto sulle porte UDP 2934 e 2935 per lo scambio di
pacchetti con gli altri giocatori.
Utilizzando una VPN, si crea una LAN geografica, quindi:
1 - usiamo tutti indirizzi privati, all'interno della VPN il port forwarding non è richiesto.
2 - due o più computer possono condividere lo stesso
indirizzo IP pubblico, come un server dedicato per Falcon e un altro computer
usato per il volo con un pilota nella stessa casa.
3 -
come un effetto collaterale VPN crittografa tutto il traffico
all'interno di un tubo, e così nessuno può vedere,
copiare o tracciare il
nostro traffico. Così siamo in grado di condividere file,
utilizzando
il semplice e insicuro protocollo di condivisione file di Windows, ma
protetti nel tubo della VPN. Il protocollo Condivisione File di Win32
normalmente è uno protocollo solo per LAN, e non è
possibile utilizzarlo su Internet. Usato
all'interno di una VPN, può essere utilizzato come protocollo
geografico. Con questo metodo ci scambiano Briefing, file ACMI,
utilities, profili di joystick e Mumble/Teamspeak, immagini catturate,
filmati, scenari grandi gigabytes, e così via ...
Falcon4AF è una vecchia applicazione che è scritta
con una tecnologia
che funziona bene solo su Windows, e Win32 non è dotato di una
implementazione VPN sicura. Così abbiamo dovuto scegliere una
soluzione disponibili sulla rete.
Non abbiamo scelto Hamachi perché non è open source, e quindi:
1 -
Quando ci si connette tramite il client Hamachi, ci si connette al
server di Hamachi. Tutto il traffico passa attraverso il server di
Hamachi. Non sappiamo che cosa facciano con i nostri pacchetti, li
possono sniffare, copiare, salvare, loggare, ... è una
violazione della privacy. Sicuramente hanno una back-door,
perché non rilasciano i sorgenti del loro programma.
2 - I server di Hamachi sono spesso molto
sovraccarichi. Sperimenteremmo ritardi, un sacco di latenza, blocchi e
così via. Il problema è che migliaia di clienti provenienti da
tutto il mondo si connettono a pochi server di Hamachi.
3 - Abbiamo
sempre almeno una connessione di rete che è un ADSL, in questo
modo possiamo
gestire la configurazione del NAT / PortForwarding. Utilizziamo il PC
che sta dietro questa connessione per ospitare la connessione VPN, noi
tutti ci connettiamo al server VPN, e poi chiunque di noi può
ospitare la campagna/TE di Falcon4AF.
Abbiamo scelto
OpenVPN perché:
1 - è opensource (quindi non ci sono back-door)
2 - è cross-platform (lavora anche su Linux)
3 - è molto ben documentato e supportato
4 - permette di scegliere dove mettere il server della VPN.
Noi utilizziamo un apposito server VPN con IP fisso e una banda di
4Mbps bidirezionale, che è sempre libero per noi e quindi molto
rapido, ma non è obbligatorio, alcune volte qualcuno che ha il
router ADSL configurabile hosta la VPN.
Solamente sul NAT/Firewall del server VPN, è necessario
inoltrare la porta UDP 1194 di OpenVPN, come standardizzato nella
IETF RFC.
OpenVPN è molto generico, lavora in diversi sistemi operativi,
può
emulare una VPN di livello 2 o L3, punto-punto o multi-punto, supporta
il routing e ha molte opzioni avanzate di rete. La configurazione
può
essere un po' difficile se non si sa molto di protocolli IP e LAN
Ethernet. Io mi sono letto l'
HowTo sul sito Web, ho provato la
procedura con due amici,
e ho scritto questa semplice guida passo-passo per Falcon4AF solo
su Win32. Ora usiamo OpenVPN due giorni a settimana per il nostro volo
in rete. Dalla documentazione di OpenVPN, non sembra esserci un limite
al
numero di client che possono connettersi contemporaneamente. Nel file
di
configurazione si può limitare a 100 o quello che volete. In
realtà noi abbiamo sperimentato un massimo di 15 giocatori da
tutta Italia.
Installazione del programma OpenVPN (valido sia per il Server che per i Clients)
01 - Apri il browser, digita l'indirizzo:
http://openvpn.net/
02 - clicca sul menu in alto "Community Project" e poi nel menù a discesa "Download". Punta a:
http://openvpn.net/index.php/open-source/downloads.html
03 - scarica dal link: "openvpn-2.1.4-install.exe"
che punta a:
http://swupdate.openvpn.net/community/releases/openvpn-2.1.4-install.exe
04
- Installa OpenVPN. Se compare l'avviso "this program is not
Microsoft certified", continua.
Ricorda che le applicazioni opensource non
possono permettersi di pagare il processo di certificazione presso
Microsoft, perché sono software libero.
06 - (opzionale) se vuoi la GUI in italiano, all'indirizzo:
http://openvpn.se/
07 - (opzionale) clicca sul menù a sinistra: "Download, Stable" che punta a:
http://openvpn.se/download.html
08 - (opzionale) clicca su: "Localized Versions",
scegli la tua lingua per l'applicazione GUI. Io ho scelto:
Italian openvpn-gui-1.0.3-it.exe
che punta a:
http://openvpn.se/files/localized/binary/1.0.3/openvpn-gui-1.0.3-it.exe
09 - (opzionale) Copia il file "openvpn-gui-1.0.3-it.exe" nella cartella "\Programmi\OpenVPN\bin"
10 - (opzionale) Crea un collegamento all'eseguibile "openvpn-gui-1.0.3-it.exe" e mettilo sul desktop.
Non dimenticare di disattivare il firewall sulla nuova scheda di rete virtuale "TAP-Win32 Adapter V9":
Menù Start, Impostazioni, Pannello di Controllo, Firewall, tab
Avanzate, nella lista in alto, selezionate la nuova interfaccia
virtuale, e togliete la spunta, premete OK.
Questa è utilizzata solo all'interno della rete VPN autenticata a chiave pubblica, per cui non ha bisogno di un altro metodo di protezione.
Istruzioni passo passo per OpenVPN sul server
Sorgente originale della guida:
http://openvpn.net/index.php/open-source/documentation/howto.html
A - Configurazione del Server, da fare solo la prima volta
11 - creare una directory: \Programmi\OpenVPN\easy-rsa\keys
12 - dal prompt dei comandi, andare nel direttorio: \Programmi\OpenVPN\easy-rsa\
13 - lanciare: init-config
14 - editare il file vars.bat impostando queste variabili:
set KEY_COUNTRY=IT
set KEY_PROVINCE=RM
set KEY_CITY=Roma
set KEY_ORG=PVI
set KEY_EMAIL=mail@pvi.it
15 - lanciare: vars.bat
16 - lanciare: clean-all
17 - lanciare: build-ca
alle domande lasciare il default (premere invio) tranne:
Common Name (eg, your name or your server's hostname) []:
a cui rispondere con "PVI-CA" (senza le virgolette)
18 - lanciare: build-key-server server
alle domande lasciare il default (premere invio) tranne:
Common Name (eg, your name or your server's hostname) []:
a cui rispondere con "PVIserver" (senza le virgolette)
Alle ultime due domande (sign e commit) rispondere "y"
B - Creare i certificati per i clients, da fare solo la prima volta
19 - nella directory: \Programmi\OpenVPN\easy-rsa\keys
dovrebbero esserci i file:
01.pem (configurazione criptazione del server)
ca.crt (certificato della CA)
ca.key (chiave segreta della CA)
index.txt (contenente solo una riga, quella del server)
serial (contenente 01)
20 - lanciare \Programmi\OpenVPN\easy-rsa\vars.bat
21 - lanciare: build-key XXclient (per XX conta in esadecimale su 2 cifre, partendo da 02)
22 - lasciare il default a tutto tranne:
Common Name (eg, your name or your server's hostname) []:
e inserire "02client" (senza le virgolette)
Alle ultime due domande (sign e commit) rispondere "y"
23 - ripeti i passi 21-22 per ogni client necessario, aumentando XX.
Ricorda che in esadecimale dopo 09 c'è 0A. Quindi, la sequenza è:
02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,...
24 - esegui: build-dh (che impiega molti secondi per creare: dh1024.pem)
C - Creare i file di configurazione, da fare solo la prima volta
25 - vai alla directory \Programmi\OpenVPN\sample-config
26 - copia "server.ovpn" e "client.ovpn" in:
\Program Files\OpenVPN\easy-rsa\keys
torna alla directory \Programmi\OpenVPN\easy-rsa\keys
26 - modifica il file "server.ovpn" e modifica queste linee:
+ Scommentare la linea:
"; a.b.c.d locale"
togliendo il ";"
+ Cambia: "abcd" con l'indirizzo IP privato locale del server.
Per scoprire qual'é, aprire un prompt dei comandi e digitare "ipconfig"
Esempio: "locale 192.168.1.1"
Se il server usa un IP pubblico senza NAT, utilizzare qui questo indirizzo.
+ Scommentare: "; dev tap" e commentare: "dev tun"
+ Scommentare: "client-to-client"
27 - rinominare il file "client.ovpn" in "02client.ovpn" e modificare:
+ Scommentare: "; dev tap" e commenta: "dev tun"
+ Cambiare la linea: "remote my-server-1 1194"
con il vero indirizzo IP publico del server OpenVPN.
Esempio: "remote 98.79.203.178 1194"
+ Cambiare la linea: "cert client.crt"
in: "cert 02client.crt"
+ Cambiare la linea: "key client.key"
in: "key 02client.key"
28 - copiare il file "02client.ovpn" in "XXclient.ovpn" e modificare:
+ Cambiare la linea: "cert 02client.crt"
in: "cert XXclient.crt"
+ Cambiare la linea: "key 02client.key"
in: "key XXclient.key"
29 - ripetere il passaggio 28 per ciascun client di cui avete bisogno.
D - Preparazione pacchetti con le chiavi, da fare solo la prima volta
30
- copiare i file:
01.pem (opzionale)
ca.crt
ca.key
dh1024.pem
index.txt
index.txt.attr
serial
server.crt
server.csr
server.key
nella cartella \Programmi\OpenVPN\config del server
31 - copiare i file:
ca.crt
dh1024.pem
nella cartella \Programmi\OpenVPN\config di tutti i client
32 - copiare i file:
NNclient.crt
NNclient.csr
NNclient.key
NN.pem
nella cartella \Programmi\OpenVPN\config del client NN
Crea un archivio "XXclient.7zip", uno per ogni client.
E - Attivare il server OpenVPN, da fare tutte le volte
33 - eseguire l'applicazione GUI "openvpn-gui-1.0.3-it.exe".
Compare una nuova icona vicino orologio, con due monitor rossi
34 - fare clic con il tasto destro sull'icona
35 - selezionare "server" > connect
I due monitor diventano prima gialli durante
la negoziazione, e poi verdi quando è creata la VPN.
36 - eseguire Falcon4AF, scegliere Multiplayer, e creare il server di missione.
Istruzioni passo passo per OpenVPN sui clients
A - Installazione del Programma, da fare solo la prima volta
01-10 Prima segui le istruzioni dei punti 01-10 sopra riportate
B - Configurazione del Programma, da fare solo la prima volta
11 - copiare il file "common.zip" nella cartella \Programmi\OpenVPN\config
12 - scompattarlo sempre in \Programmi\OpenVPN\config
13 - copiare il file "NNclient.zip" nella cartella \Programmi\OpenVPN\config
14 - scompattarlo sempre in \Programmi\OpenVPN\config
C - Connessione, da fare tutte le volte
15 - lanciare il programma "openvpn-gui-1.0.3-it.exe".
Compare un'icona vicino all'orologio con due monitor rossi
16 - cliccare con il tasto destro sull'icona
17 - selezionare "NNclient" > connetti
OPTIONAL
Per disabilitare la cifratura del traffico e tenere solo l'autenticazione a chiave pubblica
Imposta "cipher none". Va messo sia sul server che su tutti i clients.Disabiliterà
la criptazione del traffico e creerà un tunnel IP non cifrato,
ma mantenere attiva l'autenticazione con chiave pubblica per il
collegamento. Questo può accelerare e rendere più leggera
la connessione per qualche vecchio PC, al prezzo che tutto il traffico
non è criptato, quindi un hacker in ascolto teoricamente
potrebbeo intercettare il traffico. In ogni caso solo un provider o con
accesso ai router o un amministratore, o la polizia. Con classe
Pentium4 computer non si sente differenza con la crittografia on o off,
quindi tenetela attiva se possibile.
Per condividere files
come i documenti delle missioni, degli armamenti,
le pillole, i file ACMI a fine missione, gli scenari grandi anche
centinaia di Megabyte, ecc...).
Sul server create un nuovo utente con nome utente: "utente" e la password: "pass" (scegliete quello che volete).
Create due nuove cartelle sotto C:\ chiamate "FalconUpload" e "FalconDownload".
Alla directory "FalconUpload" date i permessi di scrittura a tutti.
Sui computer client:
- collegatevi ad un server con OpenVPN (necessario anche per chi non ha Fastweb)
- Aprite Esplora Risorse: Menu Start, Programmi, Accessori, Esplora Risorse
- Menu Strumenti, Connetti unità di rete...
- nella finestra che vi si apre, a fianco di "Cartella:" digitate:
\\10.3.0.1\FalconUpload
- cliccate su "nome utente diverso"
- a fianco di "Nome utente:" digitate: "10.3.0.1\utente"
- a fianco di "Password:" digitate: "pass"
- OK, Fine.
Nel vostro computer vi comparirà una nuova lettera di
unità su cui potrete mettere i file da condividere con gli altri.
Tenete presente che in quella cartella tutti possono leggere, scrivere e cancellare.
Sta agli amministratori (Luca e Roberto) spostare con VNC, i file da tenere archiviati nella cartella:
\FalconDownload
A quel punto da li possono essere scaricati da tutti usando il link:
\\10.3.0.1\FalconDownload
come nome di cartella. In questa cartella tutti hanno il diritto di
leggere, ma nessuno di scrivere e cancellare. Insomma fa da archivio
permanente dei file utili e grandi al gruppo Falchi.
Consiglio di dividere la cartella in sottocartelle per argomenti come facevamo fin'ora su Yahoo Gruppi.
Links
OpenVPN homepage:
http://openvpn.net/
OpenVPN Documentation HowTo:
http://openvpn.net/index.php/open-source/documentation/howto.html
OpenVPN download page:http://openvpn.net/index.php/open-source/downloads.html
OpenVPN download file:http://swupdate.openvpn.net/community/releases/openvpn-2.1.4-install.exe
OpenVPN Win32 GUI homepage:
http://openvpn.se/
OpenVPN Win32 GUI download page:
http://openvpn.se/download.html
OpenVPN Italian Win32 GUI download file:
http://openvpn.se/files/localized/binary/1.0.3/openvpn-gui-1.0.3-it.exe
Go to EFA programming page
Back to main page:
EFA home page