PDA

View Full Version : Videosorveglianza su rete mobile nattata


wrad3n
17-07-2021, 23:05
Per aggirare il problema ho creato un server Motioneye (e relativa CAM USB) su un Raspberry Pi, collegato ad un router LTE (con SIM con traffico nattato) e creato una VPN verso casa. Grazie alla bidirezionalità del tunnel (e una route statica) riesco ad accedere da casa al sistema di videosorveglianza remoto.

Ora vorrei eliminare il Raspberry Pi spostando il client VPN sul router LTE (che monta Openwrt), e qui iniziano i casini, nel senso che funziona solo in un senso: Router LTE -> Router di casa (anch'esso con Openwrt). Da casa non riesco in nessun modo ad aprire la pagina di config del router LTE (funzionamento OK nel verso opposto). Ho già dato il consenso per le connessioni in entrata a uhttpd e rapidamente ho provato ad aprire totalmente il firewall della VPN alle connessioni in entrata ma senza successo, qualche altra idea?

OUTATIME
18-07-2021, 07:07
Notizia buona: ho una configurazione molto simile alla tua.
Notizia cattiva: non ho capito nulla di come sono collegati tra di loro i vari router.

Adesso le cose funzionano perchè il tunnel VPN termina dove hai motioneye, e di conseguenza il raspberry riesce a "rispondere" alla richiesta che arriva dalla VPN perchè ne conosce la route. Ora bisogna cercare di capire come sarà strutturata la tua rete dopo. Riesci a fare uno schema della rete con relative subnet? E soprattutto, indicando dove sarà motioneye...

wrad3n
18-07-2021, 09:00
Riesci a fare uno schema della rete con relative subnet? E soprattutto, indicando dove sarà motioneye...

Via anche motioneye, deve poter rimanere il router LTE con collegata una IPCAM e possibilità di accesso dall'esterno.

In questo momento il Router di casa (con OpenWrt) gestisce semplicemente la connessione client con NordVPN (via Wireguard), e il DDNS. Al router è collegato un Raspberry Pi 4 con installato Pi-hole, server unbound per i DNS e PiVPN (Server VPN con Wireguard) per accedere da fuori casa (Più avanti proverò a migrare Pi-hole etc. sul Router tramite Docker). Con questa configurazione funziona tutto, da fuori casa mi connetto via VPN e risulto a sua volta sotto VPN (NordVPN) protetto da Pi-hole e con unbound per i DNS.
IP: router 192.168.1.1, raspberry 192.168.1.10 (10.6.0.1 gateway per Wireguard).

Il Router LTE (con SIM con traffico nattato) monta anch'esso OpenWrt con installato wireguard, IP: 192.168.10.1 (10.6.0.3 per Wireguard)
Se attivo il client VPN tutti i dipositivi che ho nella rete del Router LTE possono accedere ai dispositivi che ho a casa, risultano sotto NordVPN, protetti da Pi-hole e con unbound per i DNS (quindi funziona tutto perfettamente).
Il raspberry con motioneye e cam USB è collegato via cavo al router LTE e monta anch'esso wireguard (IP: 10.6.0.18). Con la route statica impostata sul router di casa riesco a pingare e ad accedere al raspberry con motioneye nel verso opposto al collegamento VPN: inserisco nel browser "10.6.0.18:<porta di motioneye>" e vedo il video dalla CAM remota. (Durante le prove avevo Raspberry con MotionEye per i fatti suoi, settato fuori dal client VPN del Router LTE o comunque con il client VPN del Router LTE spento completamente).

Ora vorrei eliminare il raspberry con motioneye (e client wireguard dedicato) usando semplicemente il client wireguard del router LTE (per accedere ad un eventuale IPCAM collegata). Solo che l'IP del router LTE è irraggiungibile, da errore se inserisco 10.6.0.3 nel browser di casa, funziona invece aprendolo in loco, se inserisco 10.6.0.3 da un PC collegato al router LTE si apre la pagina di config (come se aprissi 192.168.10.1, qui ho impostato 10.6.0.3 in uhttpd). dev'esserci qualcos'altro che ne blocca l'accesso...

OUTATIME
18-07-2021, 09:33
Ora vorrei eliminare il raspberry con motioneye (e client wireguard dedicato) usando semplicemente il client wireguard del router LTE (per accedere ad un eventuale IPCAM collegata). Solo che l'IP del router LTE è irraggiungibile, da errore se inserisco 10.6.0.3 nel browser di casa, funziona invece aprendolo in loco, se inserisco 10.6.0.3 da un PC collegato al router LTE si apre la pagina di config (come se aprissi 192.168.10.1, qui ho impostato 10.6.0.3 in uhttpd). dev'esserci qualcos'altro che ne blocca l'accesso...
Mmmmm... se non ricordo male questo è proprio il motivo per cui ho abbandonato wireguard: il traffico tra peer...

Comunque.

Tu stai provando ad accedere a 10.6.0.3 via 192.168.1.1 corretto?
Ok, dando per scontato che la connessione wireguard sia correttamente configurata e il router di casa abbia un IP 10.6.0.X assegnato e le route 192.168.1.1 > 10.6.0.X funzionanti, sei sicuro che NordVPN preveda questo servizio, cioè l'instradamento del traffico tra IP di VPN? Perchè se ho capito bene, tu stai provando a fare:
192.168.1.1 > [IP router NordVPN] > 10.6.0.3
E secondo me ci sono 2 punti da chiarire:
- Se NordVPN di consente di fare ciò, cioè il forward del traffico tra 2 IP di VPN
- Se anche wireshard ti consente la cosa di cui sopra, perchè dalle prove che ho fatto, i nodi wireshark sono dei peer, non esiste la configurazione client-server, di conseguenza se i nodi non hanno visibilità tra di loro non si parlano.
Io ho la configurazione che vorresti fare funzionante, ma io ho un VPS con OpenVPN che mi instrada il traffico tra un client VPN e l'altro. Quando ho provato a farlo con wireshark, ho ricevuto una sonora pernacchia.

wrad3n
18-07-2021, 20:23
Tu stai provando ad accedere a 10.6.0.3 via 192.168.1.1 corretto?
Ok, dando per scontato che la connessione wireguard sia correttamente configurata e il router di casa abbia un IP 10.6.0.X assegnato e le route 192.168.1.1 > 10.6.0.X funzionanti, sei sicuro che NordVPN preveda questo servizio, cioè l'instradamento del traffico tra IP di VPN?

Si, ma su questo non c'è problema, per il raspberry che uso come server wireguard ho settato il routing esterno a NordVPN per la porta richiesta per il collegamento tra client/server (traffico che passa per la WAN). In questo modo i dispositivi che si collegano dall'esterno sono invisibili a NordVPN, nel senso che si ritrovano "sotto" NordVPN solo perché lo è il raspberry a cui sono collegati.

Io ho la configurazione che vorresti fare funzionante, ma io ho un VPS con OpenVPN che mi instrada il traffico tra un client VPN e l'altro. Quando ho provato a farlo con wireshark, ho ricevuto una sonora pernacchia.

Il fatto della bidirezionalità del tunnel funziona senza ulteriori sbattimenti per tutti i dispositivi su cui ho provato tranne quelli più "avanzati" come i router.

es. se mi connetto verso casa con tablet/smartphone/laptop/raspberry (che possiedono i loro client wireguard) riesco a pingare e vedere il conenuto di server http/ftp/ssh o motioneye etc. etc. anche in senso opposto, aprendo nel browser del PC di casa (o altro programma) semplicemente l'IP che wireguard ha assegnato al singolo peer.

OUTATIME
19-07-2021, 06:32
Si, ma su questo non c'è problema, per il raspberry che uso come server wireguard ho settato il routing esterno a NordVPN per la porta richiesta per il collegamento tra client/server (traffico che passa per la WAN). In questo modo i dispositivi che si collegano dall'esterno sono invisibili a NordVPN, nel senso che si ritrovano "sotto" NordVPN solo perché lo è il raspberry a cui sono collegati.



Il fatto della bidirezionalità del tunnel funziona senza ulteriori sbattimenti per tutti i dispositivi su cui ho provato tranne quelli più "avanzati" come i router.

es. se mi connetto verso casa con tablet/smartphone/laptop/raspberry (che possiedono i loro client wireguard) riesco a pingare e vedere il conenuto di server http/ftp/ssh o motioneye etc. etc. anche in senso opposto, aprendo nel browser del PC di casa (o altro programma) semplicemente l'IP che wireguard ha assegnato al singolo peer.
Ok, allora se è questo il passaggio a non funzionare, non c'è la regola di routing sul router (scusa il gioco di parole) 192.168.1.X > 10.6.0.X
Chiaramente il tuo router sta provando a girare il traffico 10.6.0.X verso l'intefaccia WAN e non verso l'interfaccia wireshark.
Fai queste prove: da rete LAN prova a pingare l'interfaccia wireshark del router e l'IP wireshark a cui ti vuoi collegare.

wrad3n
19-07-2021, 10:41
Ok, allora se è questo il passaggio a non funzionare, non c'è la regola di routing sul router (scusa il gioco di parole) 192.168.1.X > 10.6.0.X
Chiaramente il tuo router sta provando a girare il traffico 10.6.0.X verso l'intefaccia WAN e non verso l'interfaccia wireshark.

Però la route statica c'è, sul router di casa ho impostato 10.6.0.0/24 con gateway 192.168.1.10 (l'ip del raspberry).
Con questa riesco a pingare ed accedere a motioneye (10.6.0.18), o se attivo ad es. un server FTP, ad un tablet (10.6.0.8), smartphone (10.6.0.15) o laptop (10.6.0.4), tutti dispositivi con client wireguard dedicato (che risultano comunque tutti pingabili). L'unico irraggiungibile rimane 10.6.0.3, il router LTE (anch'esso con client wireguard dedicato).

Fai queste prove: da rete LAN prova a pingare l'interfaccia wireshark del router e l'IP wireshark a cui ti vuoi collegare.

Piccolo passo avanti su questo, pingando 10.6.0.3 dal router di casa non si ottiene nulla: "100% packet loss" senza motivazione, pingandolo da un pc windows si ottiene qualche info in più:
"Risposta da 10.6.0.3: Porta di destinazione non raggiungibile." che è diverso da:
"Host di destinazione non raggiungibile" che ottengo pingando un Peer spento.
Quindi c'è qualcosa che ne blocca il traffico...

Stessa cosa pingando 10.6.0.3 dal Raspberry che fa da server Wireguard:
"From 10.6.0.3 icmp_seq=1 Destination Port Unreachable",
invece pingando un Peer spento a caso ottengo:
"From 10.6.0.1 icmp_seq=1 Destination Host Unreachable".

OUTATIME
19-07-2021, 11:27
Si, ma dalla rete lan hai provato a pingare l'IP wireshark del router?

Però la route statica c'è, sul router di casa ho impostato 10.6.0.0/24 con gateway 192.168.1.10 (l'ip del raspberry).
Dubito che si possa fare una route tra il gateway con instradamento la LAN, quantomeno dubito che funzioni.
Quindi non hai ancora impostato wireshark sul router...

wrad3n
19-07-2021, 15:57
Si, ma dalla rete lan hai provato a pingare l'IP wireshark del router?


Dubito che si possa fare una route tra il gateway con instradamento la LAN, quantomeno dubito che funzioni.
Quindi non hai ancora impostato wireshark sul router...

Non ho ancora messo mano a wireshark comunque ho fatto un po' di prove ed ora funziona:
All'interfaccia LAN del Router LTE (IP 192.168.10.1) ho aggiunto l'IP 10.6.0.3 (oltre alla modifica in uhttpd a cui facevo riferimento sopra). Sempre sul Router LTE ho ricreato il firewall per il collegamento VPN, questa volta abilitando il traffico per Input/Output/Forward. (ad occhio dovrebbe essere comunque in sicurezza, l'eventuale traffico internet tra i due Router è comunque "protetto" dal firewall del router di casa).

Ora dal router di casa riesco a pingare ed aprire la pagina di configurazione del router LTE 10.6.0.3.

Prossimo passo capire come accedere ai dispositivi che ha collegati (per ora MotionEYE con CAM USB con IP 192.168.10.X).

OUTATIME
19-07-2021, 20:42
Prossimo passo capire come accedere ai dispositivi che ha collegati (per ora MotionEYE con CAM USB con IP 192.168.10.X).
E qui iniziano i problemi.
Dalle prove che ho fatto io con openvpn e un router teltonika il router si presenta al dispositivo con l'ip della vpn e non con quello della lan. Ne consegue che il dispositivo in lan deve avere come gateway il router lte.

wrad3n
22-07-2021, 09:24
E qui iniziano i problemi.
Dalle prove che ho fatto io con openvpn e un router teltonika il router si presenta al dispositivo con l'ip della vpn e non con quello della lan. Ne consegue che il dispositivo in lan deve avere come gateway il router lte.

Vero, pare sia più difficile del previsto :D, tra l'altro il router LTE deve tornare dov'era quindi diventa complicato continuare con le prove. Quindi per ora metto in pausa il problema, lascio MotionEye con il proprio client wireguard collegato al Router LTE e collegherò lì anche una IPCAM, gestita a sua volta da MotionEye.