Buonasera a tutti.
Premetto che non ho mai fatto nulla del genere ed inoltre (non so se è necessario) però ho a disposizione un indirizzo ipv4 statico.
Oggi mi è venuta la malsana idea, di farmi una VPN sul mio PC di casa, da usare per tutti gli altri dispositivi e PC anche in mobilità.

Pensavo di eseguire il tutto su Windows, il PC starà h24 acceso per consentire il corretto funzionamento della VPN.
Consigli su come procedere?

    matteocontrini ha cambiato il titolo in Come creare una VPN self-hosted? .
    • [cancellato]

    • Modificato

    Prima cosa devi scegliere il tipo/software di VPN che vuoi usare, es. Wireguard, OpenVPN, IPSec.... quindi devi installarla e configurare il server - cosa che dipende dal server scelto - quindi forwardare/aprire le porte necessario sul router/firewall.

    Valuta i consumi e i rischi (non solo informatici, ma anche fisici) di un PC Windows, o meno, sempre acceso, specialmente quando non sei a casa, dipende molto da che hardware hai intenzione di usare. Se non ci sono particolari esigenze di prestazioni spesso è comodo averla direttamente sul router anche per questi motivi.

    L'IP statico è ovviamente molto comodo ma si può volendo fare con IP dinamico + DNS dinamico (se tutto funziona correttamente).

    • giuse56 ha risposto a questo messaggio

      Ciao,
      direi che l'IPv4 statico aiuta molto, ma anche senza puoi registrare un dominio e usare l'API di Cloudflare per crearti un tuo DDNS gratuito (a parte il costo del dominio) e funzionamente in maniera seria, non come molti servizi terzi.
      Allora passo numero uno: abbandona l'idea di usare windows per fare questa cosa.
      Una volta completato lo step uno il mio consiglio è:
      Se la macchina fisica che intendi usare come server ha Windows 10 Pro abilita l'Hyper-V di Microsoft sulla maccchina e crea una macchina virtuale linux solo CLI con magari mezzo processore (su 4 core gli dai 2 vCore alla macchina Linux) e 2GB di ram. Io mi trovo molto bene con Ubuntu Server LTS 20.04, la 22.04, recentissima, mi da alcuni problemi.
      Consiglio: se non sei molto esperto di linux crea una snapshot (punto di ripristino su Hyper-V) ogni volta che fai qualcosa e ti riesce sicuro sulla macchina linux, così da potere sempre tornare indietro di uno step se incasini le cose.
      Una volta tirata su la macchina linux configura la macchina in connessione Bridge con IPv4 interno stsatico e configura SSH e UFW. Insomma la normale configurazione inziale di una nuova macchina ubuntu. Usa strongswan o OpenVPN o Wireguard per confiugrare la tua VPN lato server (personalmente mi trovo molto bene con una semplicissima IKEv2 con certificato root autofirmato), imposta il NAT e i vari reindirizzamenti lato firewall sulla macchina linux e apri le porte sul router con il Port Forward o direttamente con le regole firewall a seconda del router.
      Ovviamente questo va bene per una Remote Access VPN, per una site-to-site LAN-LAN tipo DM-VPN o DS-VPN o ancora SD-WAN le cose cambiano e non poco.

      Personalmente eviterei VPN lato router per via della pensantezza computazionale della VPN che andrebbe a pesare molto sul router, a meno che non parliamo di alcuni Mikrotik o di Cisco o Huawei seri.

      Spero di avere reso l'idea di quello che ti serve e di non averti confuso ulteriormente.

      • giuse56 ha risposto a questo messaggio

        [cancellato] Prima cosa devi scegliere il tipo/software di VPN che vuoi usare, es. Wireguard, OpenVPN, IPSec.... quindi devi installarla e configurare il server - cosa che dipende dal server scelto - quindi forwardare/aprire le porte necessario sul router/firewall.

        Che differenza c'è tra le varie VPN? Tipo wireguard vs open dns vs ipSec?

        [cancellato] Valuta i consumi e i rischi (non solo informatici, ma anche fisici) di un PC Windows, o meno, sempre acceso, specialmente quando non sei a casa, dipende molto da che hardware hai intenzione di usare.

        Il PC lo lascio acceso ormai h24 da alcuni mesi, non è questo il problema, problemi di consumi non c'è ne sono.
        Problemi di sicurezza informatica invece non saprei?🙈
        Proprio 2-3 giorni fa mi hanno hackerato telegram nonostante avessi il 2FA attivo, e non capisco ancora come hanno fatto. Secondo alcuni amici mi hanno copiato la sessione dal PC tramite Chrome, ma sul PC eseguendo una scansione antivirus con McAfee total Security, malwarebytes sull'intero disco C, Hitman pro e Kaspersky non hanno trovato alcun virus. Quindi a meno che non mi abbiano fatto un attacco 0 day, non rilevabile dai sw antivirus, non saprei.

        [cancellato] Se non ci sono particolari esigenze di prestazioni spesso è comodo averla direttamente sul router anche per questi motivi

        Ho il Tp-link vx220g, però in questo non vado ad "ammazzare" di brutto la CPU del router? Oltre che compromettere la velocità generale dei vari dispositivi connessi alla LAN?

        [cancellato] L'IP statico è ovviamente molto comodo ma si può volendo fare con IP dinamico + DNS dinamico (se tutto funziona correttamente).

        Oltre la VPN dovrei usare un ddns dinamico?

        Volevo anche includere un dns personale (per quanto atipico) con Pihole per avere un ad-blocker personale, e non più estensioni che ronzano e appesantiscono i browser.

        P1R4NH4 Allora passo numero uno: abbandona l'idea di usare windows per fare questa cosa.

        È davvero così poco sicuro windows?😅
        O è una questione di formalità per far girare meglio la VPN?

        P1R4NH4 Una volta completato lo step uno il mio consiglio è:
        Se la macchina fisica che intendi usare come server ha Windows 10 Pro abilita l'Hyper-V di Microsoft sulla maccchina e crea una macchina virtuale linux solo CLI con magari mezzo processore (su 4 core gli dai 2 vCore alla macchina Linux) e 2GB di ram. Io mi trovo molto bene con Ubuntu Server LTS 20.04, la 22.04, recentissima, mi da alcuni problemi.

        Purtroppo ha windows 10 home, non la versione pro. Quindi niente hyper-v.

        P1R4NH4 Consiglio: se non sei molto esperto di linux crea una snapshot (punto di ripristino su Hyper-V) ogni volta che fai qualcosa e ti riesce sicuro sulla macchina linux, così da potere sempre tornare indietro di uno step se incasini le cose.

        Ok grazie, vedo cosa riesco a fare.

        P1R4NH4 Una volta tirata su la macchina linux configura la macchina in connessione Bridge con IPv4 interno stsatico e configura SSH e UFW.

        Ssh ed UFW cosa sarebbero?😅

        P1R4NH4 Ovviamente questo va bene per una Remote Access VPN, per una site-to-site LAN-LAN tipo DM-VPN o DS-VPN o ancora SD-WAN le cose cambiano e non poco.

        La VPN mi servirebbe appunto da usare sia in mobilità qualche volta(quando andrò in vacanza e mi connetterò ai WiFi pubblici/hotel), ma principalmente in casa.

        P1R4NH4 Personalmente eviterei VPN lato router per via della pensantezza computazionale della VPN che andrebbe a pesare molto sul router, a meno che non parliamo di alcuni Mikrotik o di Cisco o Huawei seri.

        Anche io pensavo questo... Eh no, non un router serio, ho un Tp-link vx220g decente.

        Grazie ad entrambi e scusatemi per le domande stupide 😅.

          giuse56 Non ti preoccupare, non sono affatto domande stupide. Hai ragione la VPN su router va ad impattare sulla capacità di routing in Gbps o Mbps dello stesso apparato, quindi, specialmente se hai connessioni veloci o usi molto la lan Gigabit, la eviterei assolutamente.
          Allora fare una cosa del genere su Linux è più pulito, più semplice da gestire, molto ma molto più stabile ed indiscutibilmente più sicuro.
          Personalmente cercherei un modo di crearmi la macchina virtuale, anche se non con Hyper-V, ci sono tanti modi opensource.

          giuse56 Ssh ed UFW cosa sarebbero?😅

          SSH serve per connettersi alla macchina linux da remoto per gestirla da linea di comando. UFW è il firewall di ubuntu, davvero semplice ma efficace.

          giuse56 La VPN mi servirebbe appunto da usare sia in mobilità qualche volta(quando andrò in vacanza e mi connetterò ai WiFi pubblici/hotel), ma principalmente in casa.

          Quindi una IKEv2 ti permetterebbe una tecnologia moderna e buone perfomance ad esempio, ma anche OpenVPN o Wireguard sono ottime soluzioni.

          Dai un occhio qua, se segui le istruzioni con calma ed attenzione il risultato dovrebbe essere ottimo per quello che devi farci tu.
          https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-20-04

          Edit: scusa ho riletto e mi sfugge una cosa: che senso ha usare una VPN per connettersi ad un host che è già sulla LAN? oppure ho capito male io? cosa intendi per "principalmente in casa"?

          giuse56 Oltre la VPN dovrei usare un ddns dinamico?

          Se hai IPv4 statico non hai bisogno di DDNS o simili, al massimo puoi registrarti un dominio e crearti un terzo livello del tipo: vpn.example.com , ma è una cosa puramete estetica.

          • giuse56 ha risposto a questo messaggio
            • [cancellato]

            giuse56 Che differenza c'è tra le varie VPN? Tipo wireguard vs open dns vs ipSec?

            Diversi livelli di complessità e funzionalità. Per usi semplici al momento Wireguard è probabilmente la migliore, semplice da utilizzare e configurare, e anche leggera. IPSec è la più complessa, OpenVPN è nel mezzo, e usando TLS un po' più pesante.

            giuse56 Problemi di sicurezza informatica invece non saprei?

            A seconda dell'hardware che usi ci sono i rischi fisici dovuti a problemi/guasti dell'hardware, specialmente se non è progettato per usi 24x7, Assicurati ad esempio che ci siano attivi i controlli su ventole e temperature e in caso di problemi la macchina si spenga prima di creare danni maggiori. Sarebbe bene anche proteggerlo da sbalzi di tensione che possono creare danni.

            Poi i rischi informatici. Linux non è automaticamente più sicuro di Windows (di macchine Linux compromesse ce ne sono a bizzeffe....) - se c'è un problema di sicurezza in Wireguard o OpenVPN se fregato sia che giri su Linux che su Windows, e questo sarebbe l'unico accesso da remoto. Come sempre i sistemi vanno tenuti aggiornati e devono essere ben configurati. Poi se altri dispositivi della rete vengono compromessi perché non sicuri e non usati in maniera sicura c'è poco da fare.

            giuse56 Ho il Tp-link vx220g, però in questo non vado ad "ammazzare" di brutto la CPU del router?

            Una VPN cifra il traffico e questo richiede cicli di CPU. A seconda del tipo di cifratura usato e da quanto è possibile fare in hardware (es. CPU con AES-NI o QAT) il carico è più o meno elevato. Cifrare a 1Gb/s richiede CPU adatte. Dipende che prestazioni desideri da una VPN.

            giuse56 Oltre che compromettere la velocità generale dei vari dispositivi connessi alla LAN?

            Dipende dal router, Il traffico che non passa dalla CPU non ne viene granché impattato.

            giuse56 Oltre la VPN dovrei usare un ddns dinamico?

            Se hai un IP statico no. Serve solo se l'IP è dinamico.

            giuse56 ho un Tp-link vx220g decente.

            Supporta OpenVPN e IPSec. Io proverei a cominciare a usare il router, e vedi come ti trovi. Se il livello di prestazioni ti soddisfa, usa quello. Altrimenti passa ad un server VPN separato. Ovviamente se vuoi imparare a configurare un server VPN tutto è valido.

            giuse56 ma principalmente in casa.

            Cosa te ne fai di una VPN locale quando sei già nella stessa rete? Attenzione che le VPN hanno due usi separati. Il primo, quello per cui sono nate, è collegare un dispositivo o una rete con un'altra rete in modo sicuro attraverso un link ritenuto non sicuro. Questo è il caso ad esempio quando ti connetti alla tua rete di casa dalla rete di un albergo. In questo caso il server VPN è nella rete di casa.

            L'altro è quello di tentare di "anonimizzare" il traffico al proprio ISP o comunque farlo apparire originato da un IP che non è quello del proprio dispositivo o rete. In questo caso il server VPN deve essere esterno alla propria rete, altrimenti non cambia nulla e cifri solo localmente sprecando cicli di CPU per nulla.

            • giuse56 ha risposto a questo messaggio
            • cdman ha messo mi piace.

              giuse56 La VPN mi servirebbe appunto da usare sia in mobilità qualche volta(quando andrò in vacanza e mi connetterò ai WiFi pubblici/hotel), ma principalmente in casa.

              Una VPN self-hosted non ti permette di "mascherare" il tuo indirizzo IP, se la usi da casa avresti su internet lo stesso identico indirizzo IP di quando ti colleghi senza VPN.

              Vista la confusione di fondo e la (mi sembra) totale inesperienza nell'amministrazione di server Linux e non (dici non aver mai sentito parlare di ssh, ad esempio) mi sento di consigliare per il tuo use-case una VPN commerciale. ProtonVPN ad esempio ha una buona reputazione e anche un piano gratuito.

              • giuse56 ha risposto a questo messaggio

                [cancellato] L'altro è quello di tentare di "anonimizzare" il traffico al proprio ISP o comunque farlo apparire originato da un IP che non è quello del proprio dispositivo o rete. In questo caso il server VPN deve essere esterno alla propria rete, altrimenti non cambia nulla e cifri solo localmente sprecando cicli di CPU per nulla.

                Io volevo proprio questo, nascondere il mio indirizzo ip originale della rete e anonimizzare il traffico. Allora nel mio caso non mi serve una VPN, anche perché che servizi dovrei controllare da remoto con la VPN?
                Telecamere di videosorveglianza?
                Non ne vedo altri usi.
                Grazie per le risposte. Allora rimane valido invece il dns con Pihole. Pensavo di implementarlo su un Raspberry Pi 4. Che ne pensate? È troppo scarso per reggere un server dns?

                fl4co Vista la confusione di fondo e la (mi sembra) totale inesperienza nell'amministrazione di server Linux e non (dici non aver mai sentito parlare di ssh, ad esempio) mi sento di consigliare per il tuo use-case una VPN commerciale. ProtonVPN ad esempio ha una buona reputazione e anche un piano gratuito.

                Già usavo proton VPN, ma i server gratis sono troppo lenti. Poi leggevo il parere di alcuni, che dicevano che le vpn commerciali sono solo un modo per rintracciare tutto il traffico in un unico tunnel e semplificare la vita agli altri. Ecco anche perché le sponsorizzano molto. Che ne pensi tu?

                P1R4NH4 Quindi una IKEv2 ti permetterebbe una tecnologia moderna e buone perfomance ad esempio, ma anche OpenVPN o Wireguard sono ottime soluzioni.

                Dai un occhio qua, se segui le istruzioni con calma ed attenzione il risultato dovrebbe essere ottimo per quello che devi farci tu.
                https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-20-04

                Ci proverò lo stesso a farlo appena mi arriva il nuovo PC, però sono sicuro che andrà tutto male 😅.

                  giuse56 che servizi dovrei controllare da remoto con la VPN?
                  Telecamere di videosorveglianza?
                  Non ne vedo altri usi.

                  Una VPN serve per mettere in comunicazione due LAN isolate tramite un tunnel attraverso una rete pubblica (ad esempio internet). Server ad accedere a un'altra rete locale e a fare ciò che faresti se fosse una rete privata (VPN sta proprio per Virtual Private Network).

                  Grazie per le risposte. Allora rimane valido invece il dns con Pihole. Pensavo di implementarlo su un Raspberry Pi 4. Che ne pensate? È troppo scarso per reggere un server dns?
                  Anche un Pi Zero è sufficiente per Pi-hole, anzi direi che il 4 è proprio sprecato se non lo usi anche per altro.

                  Già usavo proton VPN, ma i server gratis sono troppo lenti. Poi leggevo il parere di alcuni, che dicevano che le vpn commerciali sono solo un modo per rintracciare tutto il traffico in un unico tunnel e semplificare la vita agli altri. Ecco anche perché le sponsorizzano molto. Che ne pensi tu?

                  Una VPN commerciale altro non fa che sostituirsi al tuo ISP tradizionale nel farti "uscire" su internet; Quando non usi una VPN il tuo ISP vede la tua attività di navigazione, quando attivi la VPN per i gestori di quest'ultima è possibile monitorarti. Sta a te decidere da chi vuoi farti monitorare (sempre che qualcuno abbia incentivo a farlo), dal tuo ISP o da un venditore di servizi VPN. Nel secondo caso devi valutare se fidarti delle eventuali promesse di non loggare il traffico e/o di renderlo disponibile a terzi, come farebbe invece normalmente il tuo ISP.
                  Per quanto riguarda la lentezza, è praticamente impossibile raggiungere le velocità della tua connessione "liscia", ma Proton adesso utilizza anche il protocollo wireguard che è più veloce e leggero delle alternative storicamente disponibili, quindi prova a controllare se stai utilizzando wg. Poi fa' conto che i server del piano gratuito sono comprensibilmente più saturi di quelli a pagamento.

                  EDIT: dimenticavo di scrivere che se l'obiettivo è rendere anonimo il traffico che generi probabilmente la migliore scelta nel tuo caso è utilizzare la rete Tor.

                  • [cancellato]

                  giuse56 Io volevo proprio questo, nascondere il mio indirizzo ip originale della rete e anonimizzare il traffico.

                  Devi mettere quindi un server VPN su un indirizzo che non è quello della tua rete. Come un server VPS in cloud o qualcosa del genere. Se è sulla tua rete "esce" comunque con l'IP della tua rete.

                  giuse56 Allora nel mio caso non mi serve una VPN, anche perché che servizi dovrei controllare da remoto con la VPN?

                  Quando sono in viaggio io uso la VPN sulla mia rete per sia accedere da remoto se necessario, sia per navigare "uscendo" sempre dalla mia rete - così sono sicuro che niente è accessibile da reti non fidate (alberghi, ristoranti, areoporti, ecc). Ma la uso anche dall'ufficio - così nemmeno gli amministratori possono farsi i fatti miei 😎 Poi anche dall'estero posso usufruire di servizi come Sky Go.

                  giuse56 È troppo scarso per reggere un server dns?

                  Ma no, basta e avanza - quante query DNS al secondo deve reggere?

                  giuse56 le vpn commerciali sono solo un modo per rintracciare tutto il traffico in un unico tunnel e semplificare la vita agli altri.

                  Se il servizio è gratis, chiediti come in realtà lo paghi 🤔 Comunque chi offre i servizi VPN è inevitabilmente in grado di vedere tutto il traffico che passa, diventa poi una questione di fiducia in un dato operatore.

                  Usare una VPN per bypassare il geoblocking all'occorrenza può anche tornar comodo, cercare di "anonimizzare" l'IP a meno di non avere esigenze specifiche (ma bisogna poi evitare anche tutti gli altri ID univoci nel traffico...) non la trovo una pratica normalmente utile. Può anche essere controproducente nell'accedere a certi siti che fanno controlli antitruffa.

                  giuse56 Ma allora la butto lì, perché non provi una VPS su cloud, magari proprio di digital ocean, per le quali trovi molti tutorial? Una cosa con risorse non troppo spinte, ma sopratutto un piano che magari non ti faccia pagare il traffico a volume. E poi segui la guida che ti avevo linkato per configurare la VPN. In questo modo usciresti su internet con l'IP di digital Ocean e non il tuo e sicuramente possono monitorarti meno rispetto ad un provider VPN ready made. L'unico down side è che usciresti da un IP appartenente ad una subnet taggata come Cloud Computing e non come residenziale, ergo scordati di vederci netflix quasi di sicuro perché verresti bloccato. Occhio anche a farti dare un IP italiano quando crei la VPS (se è dall'Italia che vuoi uscire ovviamente, sennò scegli il paese che preferisci). E in ultima istanza occhio che le VPS quasi sempre sono esposte direttamente ad internet e quindi devi proteggerti tu mettendo su UFW (il firewall di ubuntu) configurato bene. Inoltre se fossi in te imposterei il login SSH senza password, ma con chiave. La configurazione di UFW è spiegata in modo esaustivo per quello che devi fare tu su quel link che ti avevo mandato, mentre per cambiare il login di SSH da password a chiave devi:

                  sulla VPS
                  mkdir ~/.ssh && chmod 700 ~/.ssh
                  se questo comando ti da che la dir esiste già puoi passare avanti comunque

                  Sulla macchina, ipotizziamo windows visto che l'avevi citata

                  ssh-keygen -b 4096
                  ti dirà che sta generando la chiava e poi ti chiderà dove salvarla, tu dai enter per confermare la directory di default che ti viene proposta, poi un altro enter per non mettere nessuna password, ancora enter per confermare. Puoi controllare che la chiave è stata creata correttamente facendo un cd nella cartella che ti ha scritto prima. molto probabilmente sarà /Users/TUOUTENTE/.ssh

                  A questo punto devi copiare la tua chiave pubblica sulla VPS con questo comando (su Windows)
                  scp $env:USERPROFILE/.ssh/id_rsa.pub TUOUTENTE@IPVPS:~/.ssh/authorized_keys
                  Enter, dovrebbe darti conferma della copia avvenuta. Se nulla è andato storto puoi fare il login con ssh sulla VPS senza inserire password.

                  A questo punto se funziona il login su ssh senza password puoi disabilitare il login via password editando questo file sulla VPS.
                  sudo nano /etc/ssh/sshd_config

                  modificando questa riga del file DA:
                  PasswordAuthentication yes
                  A:
                  PasswordAuthentication no

                  "Control X" e poi una "Y" per salvare il file e hai finito.

                  Scusate per il leggero off-topic, ma è sempre nell'ambito VPN su VPS.

                  Edit: e in teoria potresti anche, router permettendo, avere il PC windows a casa che ti fa da client-gateway VPN, connesso al server VPN sulla VPS in cloud e creare una rotta statica sul router che ti instrada tutto il traffico verso l'esterno tramite il client-gateway VPN, che a sua volta lo instrada dentro il tunnel VPN.
                  Così facendo in pratica avresti il PC windows a casa che è l'unico configurato con la VPN della VPS e tutti i dispositivi che sono connessi alla tua rete locale via lan o wifi automaticamente, senza quindi configurare alcuna vpn, verrebbero instradati attraverso la vpn stessa per uscire su internet, garantendoti, quindi l'anonimato richiesto (ovviamente con i limiti del caso, ma sempre meglio di altre soluzione).

                  Una VPN è pressoché inefficace per l'anonimato, app e siti web permettono il tracciamento dell'utente tramite fingerprinting del dispositivo nonché la quantità di metadati che spargono sulla rete come le spore in un cesto di funghi, anche se l'indirizzo IP è nascosto. Una VPN self-hosted è ancora peggio, perché ti legheresti a un singolo IP a assegnato solo a te piuttosto che uno o più IP condivisi tra migliaia di utenti in una VPN commerciale.

                  Informativa privacy - Informativa cookie - Termini e condizioni - Regolamento - Disclaimer - 🏳️‍🌈
                  P.I. IT16712091004 - info@fibraclick.it

                  ♻️ Il server di questo sito è alimentato al 100% con energia rinnovabile