Newsgroup: it.comp.os.linux.sys
Titolo: openvpn: macchina che faccia da gateway per una lan verso server openvpn (come?)

Ciao a tutti. Vorrei chiedere a qualcuno che ha gia` avuto occasione di
fare una cosa simile, in che modo si e` mosso.
La situazione e` questa: ho varie sedi, attualmente collegate in vpn
tramite i router (chiusi) del nostro fornitore di accesso alla rete.
Stiamo cercando di renderci indipendenti da esso e quindi,
parallelamente, vorrei sviluppare una struttura basa su openvpn.
Attialmente abbiamo un server (ubuntu), ospitato nel datacenter del
nostro fornitore di accesso. Esso fa da proxy web, e firewall per tutte
le sedi, che hanno tutte classi di indirizzi diversi (192.168.100.0,
192.168.101.0, ecc).
Su questo server e` stato installato di recente openvpn e tramite esso,
riesco a connettermi tramite vari client. Il server openvpn e`
configurato per utilizzre l'interfaccia tun, non e` stato impostato
alcun bridge. Le route per i vari uffici, vengono passate all'accesso
del client. Il client può quindi raggiungere ogni altra macchina e
server dei vari uffici, come se fosse collegato alla vpn "principale".
Quello che vorrei fare, e` di allestire una macchina che faccia da
gateway per una sede nuova. Questa macchina, andrebbe posizionata fra il
router e lo switch al quale si collegano tutti i client e dovrebbe
permettere ad essi di accedere a tutta la vpn.
Come la devo configurare per fare cio`?
Al momento e` stata configurata con due schede di rete. Una lato wan,
che avra` un ip della stessa sottorete del router, ed una lato lan che
ha un ip a mia discrezione (diciamo 192.168.202.10).
Sulla macchina e` stato installato openvpn, ed e` stata configurata come
client. Riesce a connettersi al server openvpn ed ottenere un indirizzo.
Inoltre, e` stato installato dhcpd, perche` possa assegnare gli
indirizzi ai pc degli utenti (da 192.168.202.100 a 192.168.202.254).
Un primo problema mi nasce quando stabilisco la connessione con il
server openvpn. La macchina puo` raggiungere tutto, ma non la si riesce
a far raggiungere da nessun'altro, ne` sugli indirizzi ip assegnati
manualmente alle schede, ne` su quello della sua tun0. Neppure dal
server openvpn verso essa, mentre viceversa funziona (E sta cosa mi
puzza un po'.). In realtà, nessuna macchina client, collegata a openvpn,
puo` venire raggiunta da altre, ma essa puo` invece raggiungerle.
Il che mi fa pensare che mi manca qualcosa, visto che l'integrazione non
e` trasparente come avrei voluto.
Idee? Consigli?
Nel caso servisse, posso riportare i file di configurazione.
-- 
@}-,---',-'----,-'-,-'--,-',---,'--'-,-',- Masque
`, 
http://neurone.altervista.org
'  

 Idee? Consigli?
Consiglio di mettere un istanza di openvpn in modalitą peer-to-peer per ogni 
sede remota.
Poi devi ruotare le varie classi in modo corretto e accertati anche che i 
firewall siano configurati correttamente.
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 i firewall siano configurati correttamente.
le route sul server con openvpn le crea openvpn stesso e, sempre lui, 
passa ai client quelle per le altre sottoreti che ho impostato.

 passa ai client quelle per le altre sottoreti che ho impostato.
Anche qui, ciò avviene solo con degli adeguati push.

 Anche qui, ciò avviene solo con degli adeguati push.
esatto. con una serie di push fornisco ai client openvpn le rotte per le
mie varie sottoreti.
da un singolo client openvpn, con l'opportuno certificato personale,
riesco a collegarmi senza problemi ed accedere a tutta la rete. l'unica
cosa strana e` che se dal server openvpn tento di pingare l'indirizzo ip
assegnato da openvpn al client, non ottengo riposta.
nelle policy del firewall (per impostarle utilizzo shorewall), e`
consentito, per ora, tutto il traffico dal firewall (stessa macchina che
fa da server openvpn) all'interfaccia tun0 e viceversa.
allo stesso modo, e` consentito il traffico da e per la rete interna,
mentre vengono droppate tutte le richieste dal lato wan ad eccezione
della oprta openvpn e ci sono regole specifiche per il il traffico da
rete interna a wan.
ad di la` di questo, il mio problema e` come riuscire a far si che
questa macchina gateway possa far passare sulla sua connessione openvpn,
il traffico dei pc che stanno dietro ad essa, in modo trasparente.
esattamente come fanno i router del nostro fornitore d'accesso per le
sedi servite da esso.


 dopo aver fatto partire il demonicino openvpn, se lancio "route", le
[cose varie]
ho fatto alcune prove, cambiando anche una route che pareva essere un
po' ambigua.
sono in questa situazione:
router adsl lan: indirizzo 10.0.0.1
macchina che deve fare da gateway openvpn per la lan (chiamiamola
"rivast") con due interfacce di rete.
eth0: 10.0.0.20 / 255.255.255.0 gw 10.0.0.1 (lato wan)
eth1: 192.168.202.1 / 255.255.255.0 (lato lan)
l'interfaccia tun0 viene creata all'avvio del client openvpn ed ottiene
questi indirizzi
tun0: 10.8.0.14 P-t-P: 10.8.0.13
/proc/sys/net/ip_forwarding e` 1
le route su rivast (una volta che openvpn e` attivo) sono queste:
stefanos@rivast:~$ route
Kernel IP routing table
Destination   Gateway       Genmask       Flags Metric Ref    Use Iface
10.8.0.1      10.8.0.13     255.255.255.255 UGH   0      0        0 tun0
[questa destinazione e` l'indirizzo che openvpn ha assegnato al server]
10.8.0.13     *             255.255.255.255 UH    0      0        0 tun0
192.168.116.0 10.8.0.13     255.255.255.0   UG    0      0        0 tun0
[...elenco delle altre route delle sottoreti. simili alla riga sopra]
192.168.202.0 *            255.255.255.0   U     0      0        0 eth1
[la sottorete dal lato di eth1]
10.0.0.0      *            255.0.0.0       U     0      0        0 eth0
[quella dal lato di eth0... solo il router adsl, praticamente]
default       10.0.0.1     0.0.0.0         UG    0      0        0 eth0
dalla macchina rivast, una volta attivato openvpn, riesco ad accedere a
tutta la rete.
se invece mi collego alla eth1 di rivast con una macchina con:
ip: 192.168.202.150 / 255.255.255.0
gw: 192.168.202.1
riesco a raggiungere la eth1 di rivast (192.168.202.1), la eth0
(10.0.0.20) ed anche l'indirizzo della tun0 (10.8.0.14).
quindi, il forward sembra stia facendo il suo dovere...
pero` non il 10.8.0.13 e quindi nemmeno il server openvpn (10.8.0.1) e
tutto cio` che vi sta dietro.
/etc/openvpn/client.conf su rivast
---
client
dev tun
proto udp
remote IP-SERVER 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/gw_rivast.crt
key /etc/openvpn/private/gw_rivast.key
comp-lzo
verb 3
come firewall uso shorewall, quindi i file di configurazione sono i
seguenti
/etc/shorewall/interfaces
---
#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth0            detect
dhcp,tcpflags,routefilter,nosmurfs,logmartians
loc     eth1            detect          tcpflags,detectnets,nosmurfs
ovpn    tun0            -
/etc/shorewall/zones
---
#ZONE  TYPE  OPTIONS  IN  OUT  OPTIONS  OPTIONS
fw  firewall
net  ipv4
loc  ipv4
ovpn
/etc/shorewall/masq
---
#INTERFACE      SUBNET      ADDRESS     PROTO   PORT(S) IPSEC
eth0            eth1
/etc/shorewall/policy
---
#SOURCE     DEST        POLICY      LOG LEVEL   LIMIT:BURST
loc         net         DROP        info
fw          net         DROP        warn
loc         fw          ACCEPT
fw          loc         ACCEPT
loc             ovpn             ACCEPT
ovpn            loc              ACCEPT
ovpn            fw               ACCEPT
fw              ovpn             ACCEPT
net         all         DROP       warn
# THE FOLLOWING POLICY MUST BE LAST
all         all         REJECT     info
/etc/shorewall/rules
---
#ACTION  SOURCE  DEST  PROTO  DEST  SOURCE  ORIGINAL  RATE USER/
ACCEPT  fw      net:IP-SERVER   udp     openvpn


 po' ambigua.
risolto tutto. in effetti era colpa di una route di ritorno.
