IlPuntoTecnico
Hardware e Software => Connessioni ADSL/VDSL/FTTC => Topic aperto da: lorenzocanalelc - 22 Agosto 2019, 12:51
-
Buongiorno ragazzi, sono riuscito ad installare e ad instaurare una connessione tra il mio iPhone e il TG789vac con firmware UNO tramite Strongswan-full suggerito da @LuKePicci. Ho seguito la guida di openwrt (https://openwrt.org/docs/guide-user/services/vpn/ipsec/strongswan/roadwarrior) , purtroppo il Tg789vac non digerisce i certificati infatti non riesce a crearli tramite lo script suggerito nella guida di OpenWrt (Il log riporta opening AF_ALG socket failed: Address family not supported by protocol) e neanche a leggerli (il log riporta loaded ca certificate "bla bla bla" from '/etc/ipsec.d/cacerts/caCert.pem' file coded in unknown format, discarded), quindi ho usato giusto per provare l'autenticazione eap-mschapv2 e sono riuscito a connettermi con successo. Però non riesco ne a navigare su internet ne ad accedere alla lan (compreso il router), suppongo ci sia qualcos'altro da configurare nel firewall, chi mi può dare una mano? Inoltre c'è qualche modo per creare certificati che il tg789 digerisce?
-
https://lists.strongswan.org/pipermail/users/2013-September/005282.html
https://wiki.strongswan.org/projects/strongswan/wiki/IpsecPkiGen
-
Ottimo, nuovo problema, con openSSL ricevo questo output openssl: can't resolve symbol 'COMP_zlib_cleanup'. Funziona comunque o devo risolverlo?
-
Prova a vedere se ti funziona altrimenti devi sovrascrivere il pacchetto libopenssl
https://github.com/FrancYescO/789vacv2_opkg/blob/master/base/libopenssl_1.0.2g-1_brcm63xx-tch.ipk
Con questo non da errore.
-
Ok perfetto, correggimi se sbaglio, questo comando
openssl genrsa -out nome.pem 2048 è equivalente a questo ipsec pki --gen --outform pem > nome.pem (Anche se meno sicuro mi pare di aver capito) mentre per questi due comandi quali sono gli "equivalenti" in openssl?
ipsec pki --self --in caKey.pem --dn "C=US, O=yyy, CN=xxxx" --ca --outform pem > caCert.pem
ipsec pki --pub --in serverKey.pem | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "C=US, O=yyy, CN=myvpnserver.dyndns.org" --san="myvpnserver.dyndns.org" --flag serverAuth --flag ikeIntermediate --outform pem > serverCert.pem
-
(qualcuno utilizza davvero quel CN :P )
-
L'esperto di strongswan è Luke.
Io al massimo, please click over
(https://i.ibb.co/KsNgNfm/larsensearch.png) (https://www.google.it/)
https://wiki.strongswan.org/projects/strongswan/wiki/SimpleCA
-
Allora, eccomi di nuovo qua, forse c'è qualcosa che non va sul mio iPhone, perché i certificati li ho generati, sono nelle giuste posizioni, ma non riesco ad autentificarmi, invece con eap-mschapv2 nessun problema, adesso riesco anche a navigare. Quando mi connetto con il certificato ricevo un errore di autenticazione, questo è il log
Thu Aug 22 22:31:14 2019 daemon.info syslog: 14[NET] received packet: from ipdelmioiphone[61940] to mioippublico[500] (604 bytes)
Thu Aug 22 22:31:14 2019 daemon.info syslog: 14[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
Thu Aug 22 22:31:14 2019 daemon.info syslog: 14[IKE] ipdelmioiphone is initiating an IKE_SA
Thu Aug 22 22:31:14 2019 authpriv.info syslog: 14[IKE] ipdelmioiphone is initiating an IKE_SA
Thu Aug 22 22:31:15 2019 daemon.info syslog: 14[IKE] remote host is behind NAT
Thu Aug 22 22:31:15 2019 daemon.info syslog: 14[IKE] sending cert request for "C=bla, O=bla, CN=bla"
Thu Aug 22 22:31:15 2019 daemon.info syslog: 14[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(MULT_AUTH) ]
Thu Aug 22 22:31:15 2019 daemon.info syslog: 14[NET] sending packet: from mioippublico[500] to ipdelmioiphone[61940] (465 bytes)
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[NET] received packet: from ipdelmioiphone[61825] to mioippublico[4500] (1584 bytes)
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[ENC] unknown attribute type (25)
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) N(MOBIKE_SUP) IDr AUTH CERT CPRQ(ADDR DHCP DNS MASK ADDR6 DHCP6 DNS6 (25)) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[IKE] received end entity cert "C=bla, O=bla, CN=bla"
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[CFG] looking for peer configs matching mioippublico[miodns]...ipdelmioiphone[bla]
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[CFG] no matching peer config found
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[IKE] peer supports MOBIKE
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[ENC] generating IKE_AUTH response 1 [ N(AUTH_FAILED) ]
Thu Aug 22 22:31:16 2019 daemon.info syslog: 12[NET] sending packet: from mioippublico[4500] to ipdelmioiphone[61825] (80 bytes)
edit
Ok, è questa impostazione nel file config
rightcert=clientCert.pemSe la elimino tutto funziona, perché?
PS:
Risolto!! Mi è bastato inserire questa opzione rightid=(nome dns che avevo dato al mio client nel certificato) in poche parole non associava il mio iPhone al certificato che aveva registrato! Grazie a tutti!
-
OK, bene bravo ed oserei dire ... bis.
Poi alla fine quale crittografia hai usato?
Visto che l'installazione di strongswan si tira giù una vagonata di dipendenze, quanto spazio occupa?
Per i poveretti del tg789, 2 righe caritatevoli sulle diversità tra il metodo da te usato e la guida di openwrt sarebbe di aiuto.
Scusa per le troppe richieste.
-
Accidenti, non avevo completamente guardato lo spazio occupato :-X, diciamo che attualmente ho installato, oltre che strongswan, la GUI Ansuel, Luci GUI e adesso ho solo 20MB di spazio libero... consigli di rimuovere qualcosa per evitare problemi? Per quanto riguarda la crittografia in realtà ho creato i certificati su un DGA4130 e poi li ho trapiantati :rotfl:, ma credo che al di là dell'errore i certificati vengano generati anche dal TG789vac con quello script, infatti il problema era probabilmente legato alla configurazione del rightid e non del certificato in se
PS:
Scusate per il doppio post di ieri, neanche me ne ero reso conto.
-
Quindi non pesa nulla. Io sono come te -strongswan + bank_2(uno) + altri 2/3 pacchetti e sono a 18 MB free.
-
Ah bene :D Comunque giusto poco fa ho provato e il VoIP Vodafone va senza problemi con la VPN!
-
Comunque, se qualcuno fosse interessato a farlo, un bello script sh che si occupa di tutta la config/installazione tra le estensioni della gui ci sta proprio bene un server VPN :D
-
Verissimo @FrancYescO si potrebbe in questo caso usare un client SIP sul telefono cellulare e registrare il numero di casa lì x ricevere le chiamate quando uno nn è in casa e non ha attivato il trasferimento di chiamata giusto???
-
@FrancYescO Però per renderlo completamente integrato nella GUI ci vorrebbe anche una tab da cui scaricare i certificati per i vari client, come anche gestire la subnet dedicata, uno switch per permettere l'accesso all'intera lan o al solo router, insomma non soltanto la semplice installazione (per fare una cosa "Pulita")
-
Sì vabbhe si potrebbe fare un po' tutto ma già che faccia un semplice install del pacchetto e si preoccupa di piazzare un certificato da qualche parte come prima release potrebbe bastare :)
Per il VoIP sì si potrebbe usare ma io resto sempre per lasciare semplicemente asterisk a rispondere su Wan..
-
Ah certo per iniziare non sarebbe male, comunque se qualcuno vuole cimentarsi alla fine basta seguire questa guida https://openwrt.org/docs/guide-user/services/vpn/ipsec/strongswan/roadwarrior quindi un ipotetico script non dovrebbe fare altro che:
1-Installare il pacchetto strongswan (full o default che sia)
2-Scrivere nei vari file config come da guida (Sostituendo le varie subnet con quella corretta e inserendo il ddns in uso)
3-Creare le keys usando lo script già presente (Ovviamente modificando i vari parametri con quelli in uso dal router) e aggiungendo magari la copia del file clientCert.p12 e caCert.pem in un posto "sicuro" da cui fare il download alla fine
4-Abilitare e avviare il servizio
Credo che già facendo questo il servizio sia bello che pronto, magari rimandando alla guida per configurare i client
-
Ho configurato su un 4130 fw2.2.0 ma con i feed/pacchetti a monte giusti dovrebbe essere universale come soluzione
https://github.com/FrancYescO/sharing_tg789/blob/strongswan/setup.sh
il risultato da client android in wifi da una FTTC 50/20 (4130 tiscali) verso una FTTC 150/20 (4130 2.2.0 server dietro un paio di ppp relay)
https://www.speedtest.net/result/a/5282572228
-
Ottimo!! Non resta che inserirlo tra le Estensioni della GUI
-
@FrancYescO ovviamente prestazioni mediocri (anche se negli scenari tipici di quella VPN non serve banda esagerata) comunque ottimo lavoro!
ps. it requireS :P
-
Bhe contando che nelle stesse condizioni di banda e con un fritz 7490 come server (che si fa 2 relay ppp in meno) i risultati son questi
(https://www.speedtest.net/result/8570300273.png)
direi che quello e' oro.. almeno uno stream FullHD lo si riesce a fare :D
-
A parte i risultati imbarazzanti del router AVM, chiarisco che il mio punto di riferimento sono le prestazioni in crittazione del mio serverino domestico :mlt:
-
Scopiazzando a destra e a manca questa dovrebbe essere la traduzione da ipsec a openssl per la creazione delle chiavi, con possibilità di variare la grandezza delle chiavi stesse, utile per sistemi poco potenti o per non sovraccaricare i sistemi stessi. (Un sistema sovraccarico è insicuro per natura)
bit_rsa="4096" ## 1024 / 2048 / 4096
## authority cert
openssl req -new -x509 -days 3650 \
-newkey rsa:$bit_rsa -nodes \
-subj "/C=US/O=$orgName/CN=$caName" \
-keyout caKey.pem -out caCert.pem
## vpn server cert
openssl req -new -newkey rsa:$bit_rsa -nodes \
-subj "/C=US/O=$orgName/CN=$ddns_domain" \
-keyout serverKey.pem -out serverCert.pem
cat << EOF >> confile
[req_ext]
subjectAltName = DNS:$ddns_domain
extendedKeyUsage = 1.3.6.1.5.5.7.3.1, 1.3.6.1.5.5.8.2.2
EOF
openssl x509 -req -in serverCert.pem -days 1095 \
-CA caCert.pem -CAkey caKey.pem -CAcreateserial \
-out serverCert.pem \
-extensions req_ext -extfile confile
## user cert
openssl req -new -newkey rsa:$bit_rsa -nodes \
-subj "/C=US/O=$orgName/CN=$vpnclientName" \
-keyout clientKey.pem -out clientCert.pem
openssl x509 -req -in clientCert.pem -days 1095 \
-CA caCert.pem -CAkey caKey.pem -CAcreateserial \
-out clientCert.pem
Se qualcuno ha voglia di provare...
-
Ciao ragazzi, chiedo qua perché si tratta sempre della stessa cosa, mi sono reso conto che una volta connesso alla VPN non riesco a comunicare con gli altri dispositivi della LAN, quale impostazione/regola firewall devo inserire/modificare??
-
Ciao, a me ha aiutato LuKe con i settaggi, le regole sono quelle della wiki su openwrt:
impostare le regole firewall.user:
iptables -I INPUT -m policy --dir in --pol ipsec --proto esp -j ACCEPT
iptables -I FORWARD -m policy --dir in --pol ipsec --proto esp -j ACCEPT
iptables -I FORWARD -m policy --dir out --pol ipsec --proto esp -j ACCEPT
iptables -I OUTPUT -m policy --dir out --pol ipsec --proto esp -j ACCEPT
iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT
aggiungere al firewall
config rule 'ipsec_esp'
option src 'wan'
option name 'IPSec ESP'
option proto 'esp'
option target 'ACCEPT'
config rule 'ipsec_ike'
option src 'wan'
option name 'IPSec IKE'
option proto 'udp'
option dest_port '500'
option target 'ACCEPT'
config rule 'ipsec_nat_traversal'
option src 'wan'
option name 'IPSec NAT-T'
option proto 'udp'
option dest_port '4500'
option target 'ACCEPT'
config rule 'ipsec_auth_header'
option src 'wan'
option name 'Auth Header'
option proto 'ah'
option target 'ACCEPT'
Poi dipende dalla classe di indirizzi, io uso gli stessi del dhcp.
-
Avevo già tutte le regole configurate in questo modo, ho risolto impostando queste regole qua suggerite da @lucash78 :
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o br-lan -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o br-lan -j MASQUERADE
-
@lorenzocanalelc
Tu utilizzi una classe di indirizzi differente da quelle assegnate dal dhcp?
se si riuscivi ad andare su internet, prima di queste modifiche?
Te lo chiedo perche' potrebbe servirmi in futuro.
-
No stessi indirizzi del DHCP, riuscivo a navigare senza problemi, ma non ad accedere alla rete interna.
PS. ho appena scoperto che avevo problemi a connettermi da determinate connessioni perché mi mancava l'opzione "fragmentation = yes" nel file IPSEC.conf. Adesso non ho più problemi a connettermi