venerdì 15 giugno 2012

Play Diablo 3 through proxy

Il titolo e' volutamente in inglese per richiamare anche le schiere di nerd internazionali che cercano online una soluzione. Purtroppo per loro questo post sara' solo in italiano quindi.. go translate fellas
Lo scopo dell'articolo (?) e' di spiegare come fare per collegarsi a Diablo 3 anche quando ci si trova in aziende particolarmente bastarde dove solo le porte 80 e 443 sono aperte e i pacchetti vengono "sniffati" per impedire che programmi non autorizzati facciano cose sporche sulle suddette porte. Se ci son riuscito io nella mia ci sono buone possibilita' che funzioni anche nella vostra.
Ecco gli ingredienti necessari:


- un server esterno a cui appoggiarsi con ip pubblico
- openssh da installare sul suddetto server
- Teamviewer da installare sia sul server che sul pc del lavoro (client)
- PuTTY da installare sul client (il solo PuTTY.exe)
- Sockscap da installare sul client


Il sistema e' stato testato su Windows xp 32bit, non ho la garanzia che funzioni anche sotto Windows 7 32&64bit
La scelta di Teamviewer e' data dal fatto che molte ditte consentono l'installazione e l'uso dell'applicativo perche' viene utilizzato sovente come programma di assistenza remota. Nel mio caso un programma come openvpn viene filtrato e bloccato dal proxy aziendale anche se lo faccio passare per porta 443 mentre Teamviewer funziona senza problemi di sorta e permette comunque una degna vpn.


Passiamo alla preparazione.
Sul server esterno scaricate il pacchetto di openssh e installatelo lasciando tutto cosi' come gia' appare in fase di installazione, cambiate solo la cartella di destinazione se volete.
Una volta completata, aprite la finestrella dos (classica start->run: "cmd") e andate dove avete installato openssh (tipicamente c:\program files\openssh) e digitate (in ordine):

mkgroup -l >> etc\group
mkpasswd -l -u %username% >> etc/passwd
net start opensshd 

Se tutto e' andato per il verso giusto dovreste vedere questa schermata:


altrimenti se dovesse darvi "error 1067" e' probabile che il cygwin installato nel sistema non e' corretto. In questo caso andate Qui e installate il pacchetto completo, lasciate che faccia tutto automaticamente e, alla fine, rilanciate il comando "net start opensshd" per startare il servizio.

Installate anche Teamviewer, l'installazione classica credo vada bene. Scegliete una pass da richiedere alla connessione del client e aggiungete al firewall di sistema (se l'usate) la regola per consentire a Teamviewer la ricezione delle connessioni in Entrata e create una regola per la porta "22" di permettere connessioni sempre in Entrata. Per testare sul server la correttezza delle impostazioni di rete potete usare questo sito e testare la porta 22. Se il firewall e' stato settato correttamente e nel router e' stata settata la giusta regola di inoltro, dovreste vedere la bandierina verde con lo status open.

Passiamo ora al client, ovvero al vostro pc che si trova nella rete aziendale del vostro lavoro.
Installate anche qui Teamviewer con l'opzione di installare anche la VPN. Una volta terminata l'installazione, lanciate il programma, inserite sotto "ID interlocutore" il numero di ID che appare nel teamviewer del server, selezionate "vpn" e premete "collegamento con l'interlocutore". Assicuratevi pero' che il semaforo in basso a sinistra sia verde e pronto alla connessione (occorre aspettare qualche istante dopo che teamviewer si e' aperto)

Stabilita la connessione apparira' questa maschera:
Il programma ha collegato correttamente tramite vpn il mio pc di lavoro col server che ho a casa, assegnando un ip virtuale di 7.7.7.1 per il client e 7.7.7.7 per il server (numeri inventati).
A questo punto sono pronto per configurare PuTTY, il programma che useremo per creare un tunnel ssh su socks5.
PuTTY non richiede installazione, e' un semplice exe dalle meravigliose proprieta'. Nella maschera principale, alla voce "Tunnels", configurate come da foto:

inserendo 9999, Dynamic e premendo "Add"
Sotto "Session" configurate come segue:
inserendo dentro Host Name l'ip del server (in questo caso 7.7.7.7), porta 22 e SSH selezionato. Potete salvare la configurazione in modo da non dover inserire tutte le volte i parametri.
Ora premendo su "Open", se tutto funziona correttamente, vi apparira' questa maschera con la richiesta di Login:
Siete collegati in ssh al vostro server di casa. Username e Password sono le stesse credenziali dell'account di Windows.
In questo modo avete attivato il tunnel ssh su socks5 tramite la vpn, non resta che indirizzare tutti i pacchetti di comunicazione di Diablo 3 attraverso il socks5 e per farlo (dato che Diablo non ci lascia configurare le modalita' di connessione) dobbiamo usare un programma proxifier.
Installate Sockscap, anche qui lasciate tutto a default tranne la cartella di destinazione se non v'aggrada.
Una volta avviato, dentro "Settings" impostate come da immagine

mettendo l'indirizzo 127.0.0.1 dentro SOCKS Server e 9999 come porta. Selezionate la versione 5 e lasciate che il dns sia risolto prima localmente e poi da remoto. Successivamente addate l'exe di diablo in questo modo
premendo su New, Browse e andando a piccare "Diablo III.exe"
Il programma aggiunto apparira' nell'elenco, bastera' selezionarlo e premere su "Run!" per startare Diablo attraverso socks
Aspettate che tutto parta, puo' darsi che il collegamento coi server di Bnet richieda vari tentativi, dipende da quanto e' stronza la rete della vostra azienda. Dopotutto quello che avete messo in piedi non e' minimamente previsto dal contratto di assunzione e nemmeno dagli amministratori di rete....
A testimonianza del fatto che tutto il giro creato funzioni riporto questa sudata maschera di login:

"Agent.exe" e' il servizio di proxifier in funzione

Nota a margine:
Se all'avvio di Diablo dovesse apparirvi l'avviso che la vostra scheda video non soddisfa i requisiti minimi per giocare e il gioco vi quitta in faccia seguite questi passaggi:

Step 1: Start the game and wait for the pop-up telling you your computer doesn’t meet the "Diablo 3" system requirements. Press “Esc” and the screen will go to grey with another note telling you to update your graphics card drivers.
Step 2: Don't press anything and leave the message on screen. Go to “Documents\Diablo III”.
Find “d3prefs.txt” and open it. 
Step 3: Inside of the text document, locate “DisableTrilinearFiltering”. Change the 0 to 1. 
Step 4: Locate “HardwareClass” and change the 0 to 1. 
Step 5: Exit and save.
Al prossimo riavvio riapparira' il solito avviso da skippare con ESC ma il gioco non vi quittera' piu' in faccia e vi permettera' di loggare.
owned

4 commenti:

Spix ha detto...

Sei troppo pro... :-P

pakko ha detto...

GG!!

c4os ha detto...

asd, sono solo un nerd curiosololol

c4os ha detto...

eh ma e' come teamview solo che non fa vpn e qua serve un software di vpn o ciccia