# OpenVpn e Clients

## Pancu

Salve ragazzi.

Ho questo problema.

Ho una VPN da casa al mio server in ufficio e funziona tutto bene.

Volevo far in modo che anche dai PC client dell'ufficio (collegati al server che hanno la connessione VPN con casa mia) possa utilizzare la VPN del Server per collegarmi a casa.

Come posso fare???

Potete gentilmente aiutarmi??

Grazie.

----------

## oRDeX

Se ho ben capito vuoi utilizzare il server dell'azienda come gateway per casa..quindi dovresti far si che questo si comporti come tale..Abiliti il forwarding per l'interfaccia della VPN e sui client imposti questo serrver come GW per la subnet della VPN stessa.

Chissà se capirai qualcosa di quello che ho provato a dirti   :Rolling Eyes:   :Rolling Eyes: 

----------

## fbcyborg

Ma scusa, tu hai un client openvpn a casa, e ti colleghi al server openvpn in ufficio.

Per far sì che tu ti possa collegare ai client dell'ufficio da casa, basta semplicemente connettere questi client al server openvpn come hai fatto per il pc di casa.

A quel punto tutti i PC saranno nella stessa openvpn e potrei collegarti a ciascuno di loro!

Poi se il problema è tecnico, ovvero come si fa a collegare un client al server openvpn allora il discorso cambia. Ma anche qui si risolve facilmente.

----------

## Pancu

Come dice ORDex, da qualunque PC dell'ufficio voglio utilizzare il server dell'ufficio per potermi collegare a Casa tramite VPN.

Il server della VPN è però quello di casa, il server dell'ufficio fà da client VPN.

Più in dettaglio cosa dovrei fare??

Utilizzo Shorewall sul server dell'ufficio e tutti i PC dell'ufficio hanno windows.

Naturalmente già tutti i PC dell'ufficio hanno come default gw il server su cui è installato il client VPN.

Potete gentilmente aiutarmi??

----------

## Pancu

Sono arrivato a questa situazione:

```
# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

andreasv        *               255.255.255.255 UH    0      0        0 tun0

10.0.0.0        *               255.255.255.0   U     0      0        0 eth0

192.168.2.0     *               255.255.255.0   U     0      0        0 eth2

192.168.1.0     *               255.255.255.0   U     0      0        0 eth1

192.168.0.0     10.8.0.1   255.255.255.0   UG    0      0        0 tun0

loopback        *               255.0.0.0       U     0      0        0 lo

default         tiscali         0.0.0.0         UG    0      0        0 eth1

```

Questa è la tabella route del Server in ufficio che è collegato a casa mia tramite Openvpn.

10.0.0.0 eth0 è la rete locale in ufficio

192.168.1.0 eth1 è la scheda di rete collegata a internet

Vi posto anche la configurazione di shorewall.

Interfaces:

```
net             eth1    192.168.1.255

loc             eth0    10.0.0.255

vpn             tun0    detect

```

Zones:

```

fw              firewall

net             ipv4

loc             ipv4

vpn             ipv4

```

Masq

```

eth1 eth0

```

Policy

```

loc     net     ACCEPT

loc     $FW     ACCEPT info

loc     vpn     ACCEPT info

$FW     loc     ACCEPT

$FW     net     ACCEPT

$FW     vpn     ACCEPT

vpn     $FW     ACCEPT

vpn     loc     ACCEPT

vpn     net     ACCEPT

$FW     dmz     ACCEPT

loc     dmz     ACCEPT

net     all     DROP   info

all     all     REJECT info

```

OpenVpn

```
client

dev tun0

proto udp

remote ******* 1194

resolv-retry infinite

nobind

route 192.168.0.0 255.255.255.0 10.8.0.1 #192.168.0.0 è la rete lan di casa mia

persist-key

persist-tun

ca privnet/ca.crt

cert privnet/******* .crt

key privnet/******* .key

comp-lzo

verb 1

route-method exe

route-delay 2

```

Invece il server Openvpn che sta a casa:

```
port 1194

proto udp

dev tun

ca privnet/ca.crt

cert privnet/server.crt

key privnet/server.key

dh privnet/dh1024.pem

server 10.8.0.0 255.255.255.0

route 10.0.0.0 255.255.255.0 10.8.0.15

push "route 192.168.0.0 255.255.255.0"

ifconfig-pool-persist ipp.txt 180

client-config-dir ccd

mssfix 1450

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status openvpn-status.log

verb 3

```

Se ancora non mi fossi spiegato, ciò che devo fare è poter raggiungere dai miei PC in ufficio collegati al server citato sopra, la rete LAN di casa mia.

----------

## fbcyborg

 *Pancu wrote:*   

> Se ancora non mi fossi spiegato, ciò che devo fare è poter raggiungere dai miei PC in ufficio collegati al server citato sopra, la rete LAN di casa mia.

 

Ok, in base a questa cosa: cosa ti impedisce di creare le chiavi sul server di casa tua, esportarle sui client e usarle per connetterti al server di casa?

Allora, io ho una situazione simile alla tua in una rete di un ufficio che gestisco.

Server centrale (stessa configurazione IP/interfacce che hai tu), con IP interno 10.0.0.1.

Questo mi fa da gateway per tutti i PC in LAN del tipo 10.0.0.X.

Ora, ho un PC con Linux in LAN, con indirizzo 10.0.0.10. 

A casa ho il VPN Server come te.

Sul PC 10.0.0.10 ho impostato il client OpenVpn in modo che si connetta al mio server OpenVpn di casa (Ovviamente passa dal gateway 10.0.0.1), così in questo modo se volessi entrare via ssh dal PC dell'ufficio 10.0.0.10 al server di casa mia (come serve a te), basterebbe usare l'IP del server openvpn.

STOP.

Non è complicato!!!

----------

## Pancu

Ok, hai capito perfettamente la mia situazione.

Ciò che mi blocca è il fatto che nell' ufficio ho 20 PC in LAN del tipo 10.0.0.X e non volendo creare 20 chiavi diverse per ogni PC, avevo pensato di poter utilizzare il server 10.0.0.1 come Gateway per accedere alla VPN di casa...

Ecco tutto...

Creare 20 key per ogni PC mi sembra una perdita di tempo...

Dimenticavo...

Grazie per l'aiuto.

----------

## fbcyborg

Figurati, è un piacere..

Dunque, allora qui bisogna trovare una specie di trucchetto.. ma al momento l'unica cosa che mi viene in mente è quella di "installare" putty sui PC winzozz della tua rete. A questo punto, accederesti via SSH al server, e da lì accederesti al server VPN di casa. In pratica accedi al server di casa, passando sempre dall'account OpenVPN del server dell'ufficio.

Altrimenti la vedo dura.

----------

## Pancu

Altre soluzioni non ci sono????  :Surprised:   :Surprised: 

----------

## fbcyborg

In realtà puoi sempre usare la stessa chiave su tutti i PC, l'unica cosa è che non devi collegarti da più di un PC alla VPN di casa.

Io ad esempio ho un paio di PC che hanno le stesse chiavi, ma non mi collego mai al server VPN con entrambi i PC.

----------

## Pancu

Ma non capisco...

Questa cosa non si riesce a fare per problemi legati a OpenVPN,  oppure xchè necessità di una configurazione più complicata???

Non cambia nulla se il server OpenVpn fosse dalla parte dell'ufficio, vero??

Scusami, ma vorrei chiarire questo dubbio..

----------

## fbcyborg

Credo che sia dovuto proprio a come funziona OpenVPN. Io dico questo in base al ragionamento che faccio, sul funzionamento di OpenVPN. Poi potrei anche sbagliarmi e non conoscere altre soluzioni, ma a ragion di logica quello che chiedi tu, a meno di non ricorrere a quanto detto in precedenza non si può fare.

Allora, se hai 10 computer in ufficio + 1 server sempre in ufficio + 1 PC a casa che fa da server OpenVPN, per forza di cose se dai 10 pc vuoi accedere al PC di casa devi creare 10 chiavi diverse e rispettivi files di configurazione. Questo per garantire un canale diretto (anche se poi passi dal server dell'ufficio) fra i 10 PC dell'ufficio e il PC di casa tua.

Se il server OpenVPN fosse installato sul server dell'ufficio, tu avresti che il tuo server sarebbe accessibile dai 10 PC sia tramite la rete vera (10.0.0.0), sia tramite quella virtuale (ad esempio 192.168.139.0). Ovviamente è sottinteso il fatto che i 10 pc abbiano le chiavi e tutto.

Ora, se il tuo PC di casa (che in questo caso fa da client) si connette al server OpenVPN dell'ufficio, entra nella rete virtuale 192.168.139.0 della quale fanno parte tutti e 10 i pc dell'ufficio + il server.

A questo punto dai 10 pc puoi accedere al PC di casa, ma come vedi non cambia nulla dal punto di vista delle chiavi create.

Una soluzione che mi è venuta in mente ora è la seguente.

Supponiamo che il server OpenVPN sia quello di casa tua (come è di fatto). Ora, connetto il server dell'ufficio al tuo PC di casa tramite la VPN.

Supponiamo ora di voler accedere via ssh da uno dei 10 pc (che non fanno parte della VPN) al tuo PC di casa. 

Quello a cui stavo pensando ora è la seguente cosa: tu fai 

```
ssh ip_del_server_ufficio -p porta_che_vuoi_diversa_dalla_22
```

Ora sul server c'è bisogno di fare redirect delle richieste sulla porta_che_vuoi_diversa_dalla_22 sull'interfaccia 10.0.0.0, verso l'ip_del_pc_di_casa_della_vpn:porta22. Chiaramente usando iptables.

Così forse potresti risolvere senza dover mettere in VPN anche i 10 client, ma dovresti provare.

----------

## X-Act!

Scusa se rispondo un po' al volo, ma ora non ho sotto mano le configurazioni di openvpn, comunque secondo me la cosa deve essere più semplice di come sembra: il server dell'ufficio deve instaurare una vpn site-to-site con la tua rete di casa e i pc devono poterla raggiungere senza avere a bordo nessun client (e quindi nessuna chiave) e senza neanche sapere che passano per un tunnel.

Controlla bene la configurazione di routing e di firewall del server dell'ufficio, deve essere lì il problema.

Oppure vedi se non hai un firewall sul pc di casa.

Ping e traceroute sono tuoi amici...

EDIT: guardando meglio c'è di sicuro qualcosa che non va in questa tabella di routing:

 *Pancu wrote:*   

> Sono arrivato a questa situazione:
> 
> ```
> # route
> 
> ...

 

Il server ha una rotta per la 192.168.0.x attraverso l'indirizzo 10.8.0.1, ma non ha una rotta verso 10.8.0.x perché non la vede connessa.

Inoltre anche se il server openvpn ha 10.8.0.1, dovresti usare come gateway il "dirimpettaio" della tua punto-punto quindi se il client ha 10.8.0.15 (che già è strano perché questo non è un ip /30 valido), il gateway dovrebbe essere 10.8.0.14 o 16.

----------

