Vuoi imparare o fare subito?
Configurare Raspberry Pi 4 Model B come gateway (vpn)
- Modificato
guniens Collegarti dal Raspberry è semplice. Supponendo una distribuzione Debian, installi WireGuard con sudo apt install wireguard-tools
, quindi copi la configurazione client nel file /etc/wireguard/wg.conf
, quindi attivi e abiliti il servizio con sudo systemctl enable —now wg0.service
. now
è preceduto da due trattini
Marco25 Supponendo una distribuzione Debian
Si, pensavo o DietPi o Raspberry Pi OS. Ero indeciso tra headless e GUI e pensavo che DietPi fosse un buon compromesso mantenendo comunque la GUI. Cosa consigli?
Marco25 quindi copi la configurazione client
Questa sarebbe la conf che uso sul mio cellulare? La esporto dall'app di WireGuard o devo chiederla al mio amico che ha creato la VPN? Mi aveva girato un QR-Code da scansionare con il cellulare.
Marco25 sudo systemctl enable —now wg0.service
Così attivo il servizio di WireGuard. Per attivarlo on boot come faccio?
guniens Cosa consigli?
Ho provato solo occasionalmente DietPi ma ne ho sentito parlare bene. Io comunque utilizzo Raspberry solo via CLI.
guniens Questa sarebbe la conf che uso sul mio cellulare?
Sì ma non puoi avere la stessa configurazione in uso nello stesso momento su più dispositivi, quindi fattene inviare un'altra.
guniens Così attivo il servizio di WireGuard. Per attivarlo on boot come faccio?
È un comando combinato che abilita il servizio al boot e lo attiva subito.
Marco25 Ho provato solo occasionalmente DietPi ma ne ho sentito parlare bene. Io comunque utilizzo Raspberry solo via CLI.
Capito!
Marco25 Sì ma non puoi avere la stessa configurazione in uso nello stesso momento su più dispositivi, quindi fattene inviare un'altra.
Capito!
Marco25 È un comando combinato che abilita il servizio al boot e lo attiva subito.
Capito!
Capito quasi tutto.
Non mi torna il comando che mi hai dato per installare wireguard, guardando sul sito non c'è un comando per dietpi/raspberry pi os o simili e non capisco se l'applicativo da installare è wireguard o wireguard-tools.
guniens Come imposto le regole di routing sulla Raspberry? Al momento svolgerà solo questo compito ma pensavo che in futuro potrei creare un mini server per condividere file nella mia rete e vorrei consentire solo ai dispositivi che usano la Raspberry come gateway di passare per la vpn.
Sapresti aiutarmi anche per questo punto?
guniens Non mi torna il comando che mi hai dato per installare wireguard
DietPi su Raspberry e Raspberry Pi OS sono entrambi basati su Debian quindi può essere usato APT per installare i pacchetti, DietPi include anche un sistema semplificato con simil GUI https://dietpi.com/docs/software/#dietpi-software-options. Se utilizzi APT, wireguard
è un metapacchetto che installa il modulo del kernel e wireguard-tools
. Ormai da anni i kernel recenti includono già il modulo del kernel quindi è sufficiente installare wireguard-tools
.
guniens Come imposto le regole di routing sulla Raspberry?
Devi impostarle sul dispositivo nella rete in modo da utilizzare come default gateway il raspberry pi e non il router.
guniens potrei creare un mini server per condividere file nella mia rete
Questa è una richiesta totalmente diversa.
vorrei consentire solo ai dispositivi che usano la Raspberry come gateway di passare per la vpn
Sul Raspberry abiliti l'inoltro dei pacchetti (IP forwarding) e imposti il firewall (nftables) per inoltrare solamente i pacchetti da e verso specifici indirizzi nella LAN. Qui sorge il problema che nella LAN è abbastanza semplice assegnarsi un IP particolare e quindi bypassare i vincoli.
- Modificato
Marco25 Devi impostarle sul dispositivo nella rete in modo da utilizzare come default gateway il raspberry pi e non il router.
Si questo mi era chiaro ma leggendo le varie guide, c'era da impostare le regole di forwarding in entrata e uscita sulle interfacce eth0 e wg0 con iptables. Mi riferivo a questo, non mi sembra troppo complicato ma ti chiedo aiuto lo stesso
Questa è una richiesta totalmente diversa.
Sul Raspberry abiliti l'inoltro dei pacchetti (IP forwarding) e imposti il firewall (nftables) per inoltrare solamente i pacchetti da e verso specifici indirizzi nella LAN. Qui sorge il problema che nella LAN è abbastanza semplice assegnarsi un IP particolare e quindi bypassare i vincoli.
Mi riferivo proprio a questo, l'idea era di utilizzare la Raspberry inizialmente per la VPN e basta ed eventualmente aggiungere la condivisione dei file nella rete, in questo caso vorrei evitare che il traffico passasse per la VPN.
guniens Ti direi di provarci e chiedere qui in corso d'opera. Per quanto riguarda il firewall, solo per farlo funzionare al più hai bisogno di una regola di NAT e se vuoi consentire solo alcuni client allora aggiungi una regola di filtro, che potrebbe essere la seguente in un firewall nftables:
#!/usr/bin/nft -f
flush ruleset
table inet filter {
chain forward {
type filter hook forward priority filter
policy drop
ct state vmap { invalid : drop, established : accept, related : accept }
ip saddr { 192.168.1.5, 192.168.1.34 } iifname eth0 oifname wg0 accept
}
}
Dove 192.168.1.5 sono 192.168.1.34 gli IP della LAN da autorizzare (ma tieni a mente quanto sopra circa l'efficacia).
- Modificato
Marco25 Hai ragione, meglio chiederti aiuto in corso d'opera eventualmente.
Aspetto che arrivi la Raspberry, installo tutto e provo la VPN poi penserò alle regole di routing e firewall.
Marco25 Dove 192.168.1.5 sono 192.168.1.34 gli IP della LAN da autorizzare (ma tieni a mente quanto sopra circa l'efficacia).
Potrebbe aiutare impostare IP statici per i dispositivi che useranno la Raspberry come gateway a livello di router in questo caso?
La Raspberry non sarebbe comunque esposta ad internet per connessioni esterne alla mia rete.
Scusate ma OpenWrt no? https://openwrt.org/toh/raspberry_pi_foundation/raspberry_pi
Ciao @Marco25
Ho la Raspberry pronta e configurata (DietPi headless), Wireguard installato.
Questo è il file di conf estratto dal QR che mi ha girato il mio amico:
[Interface]
PrivateKey = ***
Address = 10.59.244.2/24
DNS = DNS1, DNS2
[Peer]
PublicKey = ***
PresharedKey = ***
Endpoint = IPPUBBLICO:PORTA
AllowedIPs = 0.0.0.0/0, ::0/0
é corretto che il QR sia lo stesso per tutti? Ha mandato questo QR nel nostro gruppo.
Immagino che usiamo tutti questo e tutto funziona. Sbaglio qualcosa?
Ho provato a copiare tutto nel file di conf della mia Raspberry (wg0) ma la Raspberry non raggiunge la rete, riesco però a collegarmi in SSH.
Grazie in anticipo!