Newsgroup: it.comp.os.linux.sys
Titolo: Problemi con RDP via OpenVPN

Ciao a tutti,
ho messo su un server VPN con OpenVPN a cui mi connetto con client sia
linux che windows. Il server risiede sulla LAN e faccio port forwarding
dal firewall (2 macchine OpenBSD ridondate) al server interno della
porta openvpn (1194 udp). Ho verificato sul firewall che il traffico
relativo alla VPN non venga bloccato.
La VPN e' in modalita' tunnel layer3. Ho verificato che il routing
funziona correttamente. La connessione internet usata dal server e' una
SHDSL 4mbit. I client (linux e windows) si connettono via ADSL.
Riesco tranquillamente a connettermi e ad utilizzare connessioni SSH
attraverso la VPN, ma ho problemi con il terminal RDP. Sostanzialmente
riesco a connettermi e a fare il login sulla macchina windows remota, ma
subito dopo la sessione smette di rispondere all'input da mouse/tastiera
e dopo qualche secondo si pianta con un connection reset by peer.
Utilizzando una preesistente VPN PPTP questo non accade.
Ho provato ad impostare i parametri fragment e mssfix a 1300 e 1400 byte
come suggerito nella manpage, ma non credo che si tratti di un problema
di MTU a questo punto.
Qualcuno ha esperienze o idee al riguardo?
grazie
-- 
Luca Corti
PGP Key ID 1F38C091
BOFH excuse of the moment:
The POP server is out of Coke

 di MTU a questo punto.
Mmm...strano: io mi connetto tranquillamente in RDP via openvpn.
Non è che hai il problema è in un 'keep frags' mancante su OBSD?
-- 
Il 12 giugno scegli se vuoi uno stato liberale
od uno stato (pseudo)etico: vota sì ai referendum.

 Qualcuno ha esperienze o idee al riguardo?
Si`,esperienza simile.
Intanto controlla con --mtu-test e poi guarda sul man la parte relativa
a --mssfix
[..]              
Both  --fragment  and --mssfix are designed to work around cases
where Path MTU discovery is broken on the network  path  between
OpenVPN peers.
The  usual  symptom of such a breakdown is an OpenVPN connection
which successfully starts, but then stalls during active  usage.
[..]

 Non è che hai il problema è in un 'keep frags' mancante su OBSD?
Non trovo l'opzione "keep frags nella documentazione. Ho provato a
sostituire keep state con keep grags ma la sintassi non e' corretta. Hai
un pointer o un esempio?
ciao
-- 
Luca Corti
PGP Key ID 1F38C091
BOFH excuse of the moment:
Power Company having EMP problems with their reactor

 > Non è che hai il problema è in un 'keep frags' mancante su OBSD?
Ok, trovato. keep frags e' per ip filter, non pf. Su pf si chiama scrub.
Mi sembra che il problema sia relativo allo scrubbing appunto dei
pacchetti frammentati che pf riassembla.
Sfortunatamente no scrubbing = no NAT e stateful inspection...
Vedro' di capire come disabilitarlo solo per openvpn, ammesso che sia
fattibile e poi funzioni, dato che il mio server openvpn sta sulla LAN.
ciao
-- 
Luca Corti
PGP Key ID 1F38C091
BOFH excuse of the moment:
Fluorescent lights are generating negative ions. If turning them off
doesn't work, take them out and put tin foil on the ends.

 Sfortunatamente no scrubbing = no NAT e stateful inspection...
Ma perchè disabilitare lo scrubbing?
Io direi, piuttosto, di provare uno 'scrub fragment reassemble', in
maniera da riassemblare i pacchetti *prima* di sottoporli al filtering
(cosa che in netfilter avviene automaticamente, btw.)
Ti dispiacerebbe dirmi quali sono i risultati di uno scrubbing con
riassemblamento, se farai la prova?


 riassemblamento, se farai la prova?
Ho usato:
scrub in all no-df random-id
e dalla manpage di PF:
     fragment reassemble
           Using scrub rules, fragments can be reassembled by
normalization.
           In this case, fragments are buffered until they form a
complete
           packet, and only the completed packet is passed on to the
filter.
           The advantage is that filter rules have to deal only with
complete
           packets, and can ignore fragments.  The drawback of caching
frag-
           ments is the additional memory cost.  But the full reassembly
           method is the only method that currently works with NAT.
This is
           the default behavior of a scrub rule if no fragmentation
modifier
           is supplied.
Lo fa di default, dunque, non funiona. Comincio a pensare che ci sia
qualcosa che mi sfugge...


 [..]
Sembra esattamente quello che mi capita, ma anche settando
tun-mtu 1500
fragment 1300
mssfix 1300
sul server non vedo cambiamenti. Cosa potrebbe essere ?
ciao


 qualcosa che mi sfugge...
Ok, è una known issue, ed il punto non è che i pacchetti non vanno
riassemblati (anzi), ma che c'è qualcosa di estremamente bizzarro 
in ballo:
http://openvpn.net/install.html
==================================================================
* If run through a firewall using OpenBSDs packet filter PF and the
  filter rules include a "scrub" directive, you may get problems talking
  to Linux hosts over the tunnel, since the scrubbing will kill packets
  sent from Linux hosts if they are fragmented. This is usually seen as
  tunnels where small packets and pings get through but large packets
  and "regular traffic" don't. To circumvent this, add "no-df" to
  the scrub directive so that the packet filter will let fragments with
  the "dont fragment"-flag set through anyway.
==================================================================
Non capisco (e su due piedi non so neanche se sia tecnicamente corretto:
conto di andarmi a rivedere tcp/ip illustrated) perchè linux setti il bit
df ad uno su un pacchetto che è già un frammento.


 df ad uno su un pacchetto che è già un frammento.
Non credo sia questo il problema, a me sembra piu' un problema relativo
all'MTU e alle connessioni TCP. Ho provato a pingare attraverso la VPN
con pacchetti di dimensione fino a 25K senza problemi. Ma le sessioni
Terminal RDP non vogliono saperne.
Se spostassi OpenVPN sulla macchina che fa da firewall? 
ciao
-- 
Luca Corti
PGP Key ID 1F38C091
BOFH excuse of the moment:
Recursivity. Call back if it happens again.

 Se spostassi OpenVPN sulla macchina che fa da firewall? 
Non mi sembra una buona idea, se puoi farne a meno. In ogni caso, non
so se risolveresti il problema.
Fabio

Mandi! Luca Corti
  In chel dí si favelave...
LC> Sembra esattamente quello che mi capita, ma anche settando
LC> tun-mtu 1500
Uso cipe, ma devo passare anche io a openvpn. Ho una decina di sedi
conesse in VPN.
Recentemente negli ultimi due abbonamenti ADSL SMART telecom ho dovuto
abbassare l'MTU dell'intefaccia cipe, per lo stesso problema.
Non sono riuscito a capire esattamente il motivo di questa cosa, ma non
era relativa alla frammentazione... semplicemente con la MTU ``solita''
(1500-64 se non ricordo male) i pacchetti non passavano.
-- 
  Donna ti voglio cantare, donna sei luce, donna sei cenere
  donnai sei ansia, donnai sei danza
  e a volte nuvola sei...				(A. Branduardi)