[GUIDA] xl2tpd/strongSwan per VPN L2TP/IPsec su DGA413x/TG78x

  • 264 Risposte
  • 125318 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #75 il: 03 Dicembre 2019, 01:22 »
Bhè intanto congratulazioni per la prima parte del risultato.
Ora devi capire cosa impedisce al traffico di transitare. Inizia col fare qualche ping dal client al router e viceversa. Poi prova col ping gi un altro host in lan e dall'host in lan al client vpn.
La navigazione probabilmente ti è preclusa perchè quando hai deciso di non usare il dhcp non hai assegnato anche un gateway.

Comunque quella di mettere l'ip nei certificati non è una grandissima idea, non sia mai cambia devi rifare e reinstallare tutti i certificati. Io uso un dominio gratuito in CNAME col ddns, tu potresti usare il dominio gratuito e basta.
« Ultima modifica: 03 Dicembre 2019, 01:33 da LuKePicci »

Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #76 il: 03 Dicembre 2019, 19:49 »
@LuKePicci
Comunque quella di mettere l'ip nei certificati non è una grandissima idea.
Hai ragione, io ho un servizio ddns, che ha problemi con la gui, non appena riusciamo a mettere a posto tutto, riprovero' i certificati con il ddns.

10[IKE] assigning virtual IP 10.0.1.1

Questi i ping:

Indirizzo IP router 192.168.1.1
root@OpenWrt:~# ping 10.0.1.1
PING 10.0.1.1 (10.0.1.1): 56 data bytes
64 bytes from 10.0.1.1: seq=0 ttl=64 time=363.016 ms
64 bytes from 10.0.1.1: seq=1 ttl=64 time=309.882 ms
64 bytes from 10.0.1.1: seq=2 ttl=64 time=349.169 ms

indirizzo ip pcportatile 192.168.1.10
ping 10.0.1.1
Esecuzione di Ping 10.0.1.1 con 32 byte di dati:
Risposta da 10.0.1.1: byte=32 durata=199ms TTL=63
Risposta da 10.0.1.1: byte=32 durata=293ms TTL=63
Risposta da 10.0.1.1: byte=32 durata=255ms TTL=63
Risposta da 10.0.1.1: byte=32 durata=288ms TTL=63

indirizzo ip td-w8970 192.168.1.2
 ping 10.0.1.1
PING 10.0.1.1 (10.0.1.1): 56 data bytes
64 bytes from 10.0.1.1: seq=0 ttl=63 time=482.158 ms
64 bytes from 10.0.1.1: seq=1 ttl=63 time=218.169 ms
64 bytes from 10.0.1.1: seq=2 ttl=63 time=222.758 ms

dallo smartphone:

:/ $ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=197 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=196 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=202 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=180 ms

dallo smartphone al pcportatile nulla

127|:/ $ ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=205 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=63 time=221 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=63 time=240 ms

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #77 il: 03 Dicembre 2019, 22:19 »
Ok quindi i ping vanno tutti, quello dallo smartphone al pc portatile è normale che non vada perchè di base windows non risponde a ping provenienti da subnet esterne alla lan, amen, si può impostare in modo che risponda anche agli ip della intranet ma chissene frega onestamente.

Prima di andare a controllare cose più complicate, controlliamo che col dns sia tutto a posto, fai un ping da cellulare (o altro client vpn) verso 1.1.1.1, se funziona prova anche un nslookup su dominio qualsiasi e dimmi cosa hai impostato come dns server in strongswan.conf

Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #78 il: 03 Dicembre 2019, 22:49 »
@LuKePicci
charon {
        load_modular=yes
        dns1 = 10.0.1.1
        nbns1 = 10.0.1.1
        plugins {
                include strongswan.d/charon/*.conf
        }
}
include strongswan.d/charon/*.conf

non funziona

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #79 il: 03 Dicembre 2019, 23:32 »
Ok, le cose sono due, o vediamo come definire una zona del firewall per questa subnet 10.0.1.x che hai scelto o mettiamo i client vpn sulla stessa subnet della zona lan (con dhcp o senza). Scegli.

Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #80 il: 04 Dicembre 2019, 04:51 »
@LuKePicci, se non ti porta via troppo tempo, potresti spiegarmi bene tutte due le soluzioni? quali delle due e' la meno problematica?















Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #81 il: 04 Dicembre 2019, 12:25 »
Non c'è molto da spiegare, se tu hai un'esigenza tecnica per cui i client vpn siano su subnet separata dobbiamo procedere così anche se è più rognosa (anche se per aiutarti dovrei fare prima io delle prove). altrimenti possiamo procedere nell'altro modo e in quel caos mi serve sapere se vuoi usare e dove hai (su che ip) un server DHCP e come è configurato (quali ip assegna).

Intanto che decidi, inizia col risolvere un altro problema in cui ti saresti imbattuto dopo. In strongswan.conf hai messo come ip del server dns quello del client stesso. Ovviamente è errato. Lì ci devi mettere un ip di un server dns esistente, inizia con 1.1.1.1 (che comunque non sarà raggiungibile come abbiamo già verificato), poi alla fine quando controlliamo come hai configurato dnsmasq al limte torniamo a metterci l'ip del fastgate. La guida su questo punto era era fuorviante, in principio c'era suggerito per rightsourceip il client singolo su 10.0.1.100/32, poi quando ho cambiato in 10.0.1.0/24 non mi sono accorto che così facendo assegnava anche l'ip che compariva come dns server.

Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #82 il: 04 Dicembre 2019, 17:08 »
Ciao @LuKePicci, io non ho esigenze particolari quindi la mia scelta e' la seconda, avevo scelto la subnet 10.0.1.0, perche' il sito strongswan spesso le mette negli esempi delle connessioni anche tra diversi host, non mette mai esempi con la subnet della propria lan,perche'? ho pensato che questo passaggio lo facesse per ulteriori ragioni di sicurezza,dopotutto se lo fanno le aziende che hanno host e client sparsi un po' dappertutto una qualche ragione ci sara'?

Aggiungendo i dns 1.1.1.1 non cambia nulla.
Con il messaggio di prima mi hai fornito anche la soluzione alla seconda scelta:

ip router 192.168.1.1  dhcp 192.168.1.2/150 dns 1.1.1.1

strongswan.conf:
charon {
        load_modular=yes
        dns1 = 192.168.1.1
        nbns1 = 192.168.1.151
        plugins {
                include strongswan.d/charon/*.conf
        }
}

ipsec.conf

config setup

conn %default
 keyexchange=ikev2

conn roadwarriorPUBKEY
 left=%any
 leftauth=pubkey
 leftcert=serverCert.pem
 leftid=io qui ho messo il mio ip, potrei mettere il mio dominio ddns(pero' bisogna metterlo nei certificati come da guida)
 leftsubnet=0.0.0.0/0,::/0
 #leftsendcert=always
 right=%any
 rightsourceip=192.168.1.151/24
 rightauth=pubkey
 rightcert=clientCert.pem
 #rightauth2=eap-mschapv2
 eap_identity=%identity
 auto=add

Cosi funziona, navigo dal telefono attraverso il router, ho provato anche con dnsleaktest e mi restituisce quelli di cloudflare.
Pero,' pensavo che il firewall bloccasse gli indirizzi lan che vanno oltre quelli forniti dal dhcp.
Per settare altri due smartphone, devo importare sempre gli stessi due certificati?

Download Mbps 3.18 upload Mbps3.18 Linea fttc 160/21


« Ultima modifica: 04 Dicembre 2019, 17:31 da a1pollo »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #83 il: 04 Dicembre 2019, 17:52 »
Il perchè negli esemi li vedi semrpe usati con subnet separate è da imputarsi a delle best practice in termini di flessibilità e gestibilità su reti più grosse, dove appunto hai esigenza di distinguere le due classi di client. Se ad esempio tu volessi isolare i due gruppi sarebbe necessario o preferibile. D'altro canto però questi device sono configurati per fare nat tra zona lan e wan della subnet locale, nel momento in cui tu crei un'altra subnet 10.0.1.0/24 devi anche preoccuparti di includere questa subnet nella zona lan affinché sia soggetta alle stesse policy o dedicarle una zona tutta sua e definire delle policy custom di relazione con le altre. In ambito enterprise non è nemmeno detto ci sia l'esigenza di far uscire i client su internet attraverso la VPN che di base serve a dare accesso alle risorse della rete privata, il fatto di usare come router verso internet un gateway al suo interno è una cosa in più. Lasciamo perdere questo scenario che hai deciso di abbandonare.

Primo punto, ora che funziona mettendo 1.1.1.1 come dns dovrebbe funzionare ugualmente ma non farlo, è giusto lasciare 192.168.1.1, se però già che ci siamo controlliamo anche la config di dnsmasq è meglio, ricordamelo più avanti.

Secondo, hai davvero un server nbns per nomi NetBIOS su 192.168.1.151 o hai riempito quel campo a caso?

Terzo, se ho ben capito il dhcp è configurato per assegnare ip da 2 a 150. Questo intervallo non deve sovrapporsi a quello selezionato in righsourceip. Tu in rightsourceip hai selezionato l'intervallo 192.168.1.151/24, cioè che va da 192.168.1.1 a 192.168.1.254 e che chiaramente si sovrappone in pieno. Invece che spiegarti cosa vuol dire /24 (wikipedia in questo è più brava di me) ti suggerisco direttamente di usare 192.168.1.192/29 in rightsourceip che include un totale di 6 indirizzi assegnabili tutti fuori dall'intervallo gestito dal dhcp (scopri tu quali sono, e scopri tu come fare per averne di più).

Quarto, la velocità è in Megabyte/s? Se sì, ok direi che ci siamo, se invece è in megabit/s allora fa un po' pena e dobbiamo tornare sul discorso delle ciphersuite per ESP e vedere di ottenere qualcosa di meglio (l'ho visto fare almeno 20-40 megabit/s).

Quinto, per impostazione di default ogni client deve avere un suo certificato distinto. Ti sconsiglio di modificare questo comportamento. Per far si che ciò funzioni, uno dei possibili modi (quello che uso io e che sta scritto anche nella guida) è commentare la riga relativa a rightcert e inserire quella relativa a rightca, in modo che vengano autenticati tutti i client che espongono un certificato valido rilasciato dalla CA selezionata e non solo quelli che vai esplicitamente a selezionare in clientcert. I certificati per gli altri client si generano ripetendo i passi relativi a clientKey e clientCert tutte le volte che ti pare. Alla fine della fiera non dimenticare di conservare al sicuro tutte le chiavi private con relativi certificati (possibilmente tutti in p12 e nulla in chiaro dentro i .pem) e di rimuovere dal router tutto eccetto il certificato della CA, il certificato del server e il pem con la chiave privata del server. I certificati dei client e le chiavi private di client e CA vanno tolte dal router

Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #84 il: 04 Dicembre 2019, 19:56 »
Citazione
Secondo, hai davvero un server nbns per nomi NetBIOS su 192.168.1.151 o hai riempito quel campo a caso?

Non l'ho riempito a caso, pensavo che charon fosse una specie di dhcp e quello il suo indirizzo.

192.168.1.192/29 ok sostituita, questo e' un argomento che devo approffondire, ho troppo  poche conoscenze.

Mbps megabits MBps megabyte/s, quindi si hai ragione, che forse diviso in tre smartphone comincia a diventare pochino se riusciamo ad avere di piu'..., quindi qui' centra la potenza della cpu,da quello che ho capito io, credi che i vari pacchetti siano ottimizzati per smp?

Quinto, esatto ti chiedevo questo per sicurezza, infatti se qualcuno smarrisse lo smartphone,con quello potrebbero entrare all'interno della mia lan.
I certificati li ho ancora tutti li' per evitare di confonderli con tutti quelli che ho generato per le varie prove.
Il file .p12 contiene al suo interno 3 certificati clientKey.pem clientCert.pem caCert.pem, quando lo installo sullo smartphone l'app strongswan lo ritrova subito non appena seleziono user certificate, invece quando metto ca certificate non lo ritrova e sono costretto ad installarlo,e' un bug dell' app?

Controlliamo anche la config di dnsmasq, mi devi dire tu come fare.


« Ultima modifica: 05 Dicembre 2019, 08:42 da MisterFTTH »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #85 il: 04 Dicembre 2019, 23:09 »
La riga di nbns o la commenti o ci metti l'ip del router.

La velocità dipende dalla cpu solo finchè cripti il traffico via cpu, altre volte hai un acceleratore crittografico che se ne occupa al suo posto (in realtà c'è anche in questo nostro device ma non abbiamo i driver). La cpu è comunque sufficientemente potente da gestire una quarantina di megabit(s a patto di scegliere un algoritmo più blando, quindi torna nell'app, e metti aes128-sha1 come ciphersuite ESP.

I file p12 contengono un certificato con chiave pubblica e la relativa chiave privata protetta da password. Al loro interno ci vanno pure tutti i certificati della catena di attendibilità, che nel tuo caso è piuttosto corta visto che hai direttamente la radice. E' giusto usare quel formato per installarle sui device ed è in quel modo che devi conservarli. Se pensi che una delle chiavi client sia compromessa o rifirmi da capo tutti i certificati con una nuova CA o metti il certificato del client compromesso nella lista delle revoche.

Per dnsmasq mandami il contenuto di /etc/config/dhcp


Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #86 il: 05 Dicembre 2019, 05:12 »
@LuKePicci

Codice: [Seleziona]
config dnsmasq 'dnsmasq'
option domainneeded '1'
option boguspriv '1'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option cachelocal '0'
option cachesize '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'
option strictorder '1'
option dhcpscript '/lib/dnsmasq/dhcp-event.sh'
list hostname 'myfastgate'
option logqueries '1'
option logfacility '/var/log/dnsmasq'

config odhcpd 'odhcpd'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'

config dhcp 'lan'
option interface 'lan'
option dhcpv6 'server'
option ra 'server'
option ra_management '0'
option ra_mininterval '200'
option ra_maxinterval '600'
option ra_lifetime '1800'
option ra_hoplimit '64'
option ra_max_mtu '1480'
option force '1'
list dhcp_option 'tag:cpewan-id,vi-encap:3561,6,"Technicolor DGA4131FWB"'
list dhcp_option 'tag:cpewan-id,vi-encap:3561,5,"CP1923JCC41"'
list dhcp_option 'tag:cpewan-id,vi-encap:3561,4,"A491B1"'
option start '2'
option leasetime '86400'
option ignore '0'
option limit '149'

config dhcp 'Guest'
option interface 'Guest'
option start '50'
option limit '201'
option leasetime '1h'
option dhcpv6 'server'
option ra 'server'
option ra_management '0'
option ra_mininterval '200'
option ra_maxinterval '600'
option ra_lifetime '1800'
option ra_hoplimit '64'
option ra_max_mtu '1480'
option force '1'

config dhcp 'wan'
option interface 'wan'
option ignore '1'

config dhcp 'wan6'
option interface 'wan'
option ignore '1'

config dhcp 'wwan'
option interface 'wwan'
option ignore '1'

config opassthrud 'opassthrud'
option passthruscript '/lib/dhcpopassthrud/dnsmasq.sh'
option options_needed '0'

config host
option mac '54:8C:A0:A8:EA:AB'
option duid '0001000122d0bb6b54ab3ab5da54'
option ip '192.168.1.10'
option name 'portatile'
option dns '1'
option _key '501FB54E8703CBC997E2F6E8FF226508'

config host
ho tolto tutti gli altri host, ognuno ha un suo indirizzo

config relay 'relay'


Cypher suite encription
Questi sono i formati supportati:
-vIKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048, IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1536, IKE:AES_CBC_128/AES_CBC_192/AES_CBC_256/3DES_CBC/AES_CTR_128/AES_CTR_192/AES_CTR_256/CAMELLIA_CTR_128/CAMELLIA_CTR_192/CAMELLIA_CTR_256/CAMELLIA_CBC_128/CAMELLIA_CBC_192/CAMELLIA_CBC_256/HMAC_MD5_96/HMAC_SHA1_96/HMAC_SHA2_256_128/HMAC_SHA2_384_192/HMAC_SHA2_512_256/AES_XCBC_96/AES_CMAC_96/PRF_HMAC_MD5/PRF_HMAC_SHA1/
quale e' il formato da dare al telefono: AES_CBC_128
Li provavo cosi' : aescbc128-sha1 non me li dava :headbang:

vpn 17,7 Mbps  4,55Mbps
smartphone rete iliad 39,8 Mbps  4,97Mbps
« Ultima modifica: 05 Dicembre 2019, 08:40 da MisterFTTH »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #87 il: 05 Dicembre 2019, 10:48 »
Non mi torna,strongswan le chipersuite le vuole specificate così come sta scritto nella documentazione, sono più che sicuro che nell'app su ESP (ripeto, non IKE) tu ci debba mettere aes128-sha1 senza nemmeno specificare la mode of operation cbc.

https://wiki.strongswan.org/projects/strongswan/wiki/IKEv2CipherSuites#Encryption-Algorithms

su dnsmasq, metti cachelocal su 1 e aumenta cachesize da 0 a qualche centinaia.
« Ultima modifica: 05 Dicembre 2019, 10:52 da LuKePicci »

Offline a1pollo

  • Membro Anziano
  • ***
  • 172
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #88 il: 05 Dicembre 2019, 13:11 »
Si ho messo aes128-sha1,funziona, e che provavo a metterne altri, ma non sapevo la sintassi in cui scriverlo sulla riga ipsec esp/algoritms, oltre a quelli che avevo gia' messo.

Ad esempio se volessi mettere per test "3DES_CBC/HMAC_SHA1_96", dovrei usare la sintassi? perche' spesso l'app non li prende.

Su dnsmasq, metti cachelocal su 1 e aumenta cachesize da 0 a qualche centinaia.
cachelocal 1 cache size 150
vpn 16,9 Mbps  2,28 Mbps

cachelocal 1 cache size 100
vpn 15,2 Mbps  4,52 Mbps
10 minuti dopo
vpn 17,3 Mbps  5,81 Mbps

Località diversa
No vpn 4g 15,3 Mbps  1,43 Mbps
vpn 7,3 Mbps  1,47 Mbps
« Ultima modifica: 05 Dicembre 2019, 13:46 da a1pollo »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Re:[Testing] VPN L2TP/IPSec DGA413x/TG78x
« Risposta #89 il: 05 Dicembre 2019, 17:35 »
La cache dns non c'entra nulla con la banda, era una cosa a parte, tienila pure su 300-350.

Per la sintassi devi seguire quanto detto nel link che to ho indicato, ma non scendere sotto aes128-sha1 (che sarebbe AES_CBC_128/HMAC_SHA1_96)

La banda ora è buona, quelle oscillazioni che vedi dipendono dalla connessione, se vedi valori intorno ai 20 Mbps sei a posto. Se credi che 20 mbps in vpn siano pochi fatti un giro in posti tipo questo. Se poi qualcuno si prende la briga di fare qualche benchmark anche sul dga4130/4132 con firmware 18.x e driver dell'acceleratore hw disponibile magari in futuro pensi ad un upgrade.