GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configura il tuo server VPN WireGuard su Ubuntu 20.04/18.04

Questo tutorial ti mostrerà come configurare il tuo server VPN WireGuard su Ubuntu. WireGuard è realizzato appositamente per il kernel Linux. Funziona all'interno del kernel Linux e ti consente di creare tunnel VPN veloci, moderni e sicuri.

Funzionalità VPN WireGuard

  • Leggero e velocità super veloce, che soffia OpenVPN fuori dall'acqua.
  • Multipiattaforma. WireGuard può essere eseguito su Linux, BSD, macOS, Windows, Android, iOS e OpenWRT.
  • L'autenticazione dell'utente avviene tramite lo scambio di chiavi pubbliche, in modo simile alle chiavi SSH.
  • Assegna indirizzi IP tunnel statici ai client VPN. Ad alcune persone potrebbe non piacere, ma in alcuni casi può essere molto utile.
  • I dispositivi mobili possono passare dalla rete Wi-Fi a quella mobile senza interruzioni senza interrompere la connettività.
  • Mira a sostituire OpenVPN e IPSec nella maggior parte dei casi d'uso.

WireGuard è il mio protocollo VPN preferito per eliminare la necessità di impostare la crittografia TLS per le mie reti private.

Requisiti

Per seguire questo tutorial, avrai bisogno di un VPS (Virtual Private Server) che possa accedere liberamente ai siti web bloccati (fuori dal tuo paese o sistema di filtraggio Internet). Raccomando Kamatera VPS, che include:

  • 30 giorni di prova gratuita.
  • A partire da $ 4 al mese (1 GB di RAM)
  • VPS basato su KVM ad alte prestazioni
  • 9 data center in tutto il mondo, inclusi Stati Uniti, Canada, Regno Unito, Germania, Paesi Bassi, Hong Kong e Israele.

Segui il tutorial collegato di seguito per creare il tuo server VPS Linux su Kamatera.

  • Come creare un server VPS Linux su Kamatera

Una volta che hai un VPS che esegue Ubuntu, segui le istruzioni seguenti.

Questo tutorial presuppone che il server VPN e il client VPN eseguano entrambi Ubuntu sistema operativo.

Passaggio 1:installa WireGuard su Ubuntu Server e Desktop

Accedi al tuo server Ubuntu, quindi esegui i seguenti comandi per installare WireGuard.

Ubuntu 20.04

Ubuntu 20.04 viene fornito con il kernel Linux 5.4, che ha un modulo wireguard integrato.

sudo apt updateudo apt install wireguard wireguard-tools

Ubuntu 18.04

Ubuntu 18.04 viene fornito con il kernel Linux 4.15, quindi gli utenti devono installare prima il kernel di abilitazione hardware (HWE), che installerà il kernel 5.4 sul tuo sistema.

sudo apt aggiornamentiudo apt install linux-generic-hwe-18.04-edge

Riavvia il tuo server Ubuntu 18.04 e installa WireGuard.

sudo shutdown -r nowsudo apt install wireguard wireguard-tools wireguard-dkms

Quindi usa gli stessi comandi per installare WireGuard sul tuo computer Ubuntu locale (il client VPN). Nota che devi anche installare openresolv pacchetto sul client per configurare il server DNS.

sudo apt install openresolv

Fase 2:genera una coppia di chiavi pubblica/privata

Server

Esegui il seguente comando sul server Ubuntu per creare una coppia di chiavi pubblica/privata, che verrà salvata in /etc/wireguard/ directory.

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

Cliente

Esegui il comando seguente per creare una coppia di chiavi pubblica/privata sul computer Ubuntu locale (il client VPN).

wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key

Fase 3:crea il file di configurazione WireGuard

Server

Usa un editor di testo da riga di comando come Nano per creare un file di configurazione WireGuard sul server Ubuntu. wg0 sarà il nome dell'interfaccia di rete.

sudo nano /etc/wireguard/wg0.conf

Copia il testo seguente e incollalo nel tuo file di configurazione. Devi utilizzare la tua chiave privata del server e la chiave pubblica del client.

[Interfaccia]Indirizzo =10.10.10.1/24ListenPort =51820PrivateKey =cD+ZjXiVIX+0iSX1PNijl4a+88lCbDgw7kO78oXXLEc=[Peer]PublicKey =AYQJf6HbkQ0X0Xyt+cTMTuJe3RFwbuCMF46LKgTwzz4 =10.2=Consentito> 

Dove:

  • Indirizzo :Specificare l'indirizzo IP privato del server VPN. Qui sto usando l'intervallo di rete 10.10.10.0/24, quindi non entrerà in conflitto con l'intervallo di rete domestica. (La maggior parte dei router domestici utilizza 192.168.0.0/24 o 192.168.1.0/24). 10.10.10.1 è l'indirizzo IP privato per il server VPN.
  • Chiave privata :La chiave privata del server VPN, che può essere trovata in /etc/wireguard/server_private.key file sul server.
  • ListenPort :il server VPN WireGuard sarà in ascolto sulla porta UDP 51820, che è l'impostazione predefinita.
  • Chiave pubblica :la chiave pubblica del client VPN, che può essere trovata in /etc/wireguard/client_public.key file sul computer client.
  • IP consentiti :indirizzi IP che il client VPN può utilizzare. In questo esempio, il client può utilizzare solo l'indirizzo IP 10.10.10.2 all'interno del tunnel VPN.

Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premere Invio per confermare. Premi Ctrl+X per uscire.)

Modifica la modalità di autorizzazione dei file in modo che solo l'utente root possa leggere i file.

sudo chmod 600 /etc/wireguard/ -R

Cliente

Usa un editor di testo da riga di comando come Nano per creare un file di configurazione WireGuard sul tuo computer Ubuntu locale. wg-client0 sarà il nome dell'interfaccia di rete.

sudo nano /etc/wireguard/wg-client0.conf

Copia il testo seguente e incollalo nel tuo file di configurazione. È necessario utilizzare la chiave privata del client e la chiave pubblica del server.

 [interfaccia] Indirizzo =10.10.10.2/24dns =10.10.10.1PrivateKey =cofA+x5uvhf+a3xj6enlatg+doe3i5phmgkrmkkuyxi =[peer] publickey =raoadsieiiwgv9dhnsubxwvg+nz1gp/c3ou6a/efbj. 56.78:51820PersistentKeepalive =25

Dove:

  • Indirizzo :Specifica l'indirizzo IP privato del client VPN.
  • DNS :specificare 10.10.10.1 (server VPN) come server DNS. Sarà configurato tramite resolvconf comando. Puoi anche specificare più server DNS per la ridondanza in questo modo:DNS = 10.10.10.1 8.8.8.8
  • Chiave privata :La chiave privata del client, che può essere trovata in /etc/wireguard/client_private.key file sul computer client.
  • Chiave pubblica :la chiave pubblica del server, che può essere trovata in /etc/wireguard/server_public.key file sul server.
  • IP consentiti :0.0.0.0/0 rappresenta l'intera Internet, il che significa che tutto il traffico verso Internet deve essere instradato tramite la VPN.
  • Endpoint :l'indirizzo IP pubblico e il numero di porta del server VPN. Sostituisci 12.34.56.78 con il vero indirizzo IP pubblico del tuo server.
  • PersistentKeepalive :invia un pacchetto vuoto autenticato al peer ogni 25 secondi per mantenere attiva la connessione. Se PersistentKeepalive non è abilitato, il server VPN potrebbe non essere in grado di eseguire il ping del client VPN.

Salva e chiudi il file.

Modifica la modalità file in modo che solo l'utente root possa leggere i file.

sudo chmod 600 /etc/wireguard/ -R

Fase 4:abilita l'inoltro IP sul server

Affinché il server VPN instrada i pacchetti tra i client VPN e Internet, è necessario abilitare l'inoltro IP. Modifica sysctl.conf file.

sudo nano /etc/sysctl.conf

Aggiungi la seguente riga alla fine di questo file.

net.ipv4.ip_forward =1

Salva e chiudi il file. Quindi applica le modifiche con il comando seguente. Il -p l'opzione caricherà le impostazioni di sysctl da /etc/sysctl.conf file. Questo comando conserverà le nostre modifiche durante i riavvii del sistema.

sudo sysctl -p

Fase 5:Configura IP Masquerading sul server

Abbiamo bisogno di impostare il mascheramento IP nel firewall del server, in modo che il server diventi un router virtuale per i client VPN. Userò UFW, che è un front-end per il firewall iptables. Installa UFW su Ubuntu con:

sudo apt install ufw

Innanzitutto, devi consentire il traffico SSH.

sudo ufw allow 22/tcp

Quindi, trova il nome dell'interfaccia di rete principale del tuo server.

ip -c a

Come puoi vedere, si chiama enp3s0 sul mio server Ubuntu.

Per configurare il mascheramento IP, dobbiamo aggiungere il comando iptables in un file di configurazione UFW.

sudo nano /etc/ufw/before.rules

Per impostazione predefinita, ci sono alcune regole per il filter tavolo. Aggiungi le seguenti righe alla fine di questo file. Sostituisci enp3s0 con il tuo nome di interfaccia di rete.

# regole tabella NAT*nat:POSTROUTING ACCEPT [0:0]-A POSTROUTING -s 10.10.10.0/24 -o enp3s0 -j ​​MASQUERADE# Termina ogni tabella con la riga 'COMMIT' o queste regole non saranno elaboratoCOMMIT

Nell'editor di testo Nano, puoi andare alla fine del file premendo Ctrl+W , quindi premendo Ctrl+V .

Le righe precedenti verranno aggiunte (-A ) una regola fino alla fine di POSTROUTING catena del nat tavolo. Collegherà la tua rete privata virtuale con Internet. E nascondi anche la tua rete dal mondo esterno. Quindi Internet può vedere solo l'IP del tuo server VPN, ma non può vedere l'IP del tuo client VPN, proprio come il tuo router domestico nasconde la tua rete domestica privata.

Assicurati che non ci siano spazi all'inizio di ogni riga.

Per impostazione predefinita, UFW vieta l'inoltro dei pacchetti. Possiamo consentire l'inoltro per la nostra rete privata. Trova il ufw-before-forward catena in questo file e aggiungi le 3 righe seguenti, che accetteranno l'inoltro di pacchetti se l'IP di origine o di destinazione è nel 10.10.10.0/24 intervallo.

# consente l'inoltro per la rete attendibile-A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT-A ufw-before-forward -d 10.10.10.0/24 -j ACCEPT

Salva e chiudi il file. Quindi abilita UFW.

sudo ufw abilita

Se hai abilitato UFW in precedenza, puoi utilizzare systemctl per riavviare UFW.

sudo systemctl riavvia ufw

Ora se elenchi le regole nella catena POSTROUTING della tabella NAT usando il seguente comando:

sudo iptables -t nat -L POSTROUTING

Puoi vedere la regola della Masquerade.

Potrebbe volerci del tempo prima che UFW elabori le regole del firewall. Se la regola della mascherata non viene visualizzata, riavvia nuovamente UFW (sudo systemctl restart ufw ).

Fase 6:installa un risolutore DNS sul server

Poiché specifichiamo il server VPN come server DNS per il client, è necessario eseguire un risolutore DNS sul server VPN. Possiamo installare il server DNS bind9.

sudo apt install bind9

Una volta installato, BIND si avvierà automaticamente. Puoi verificarne lo stato con:

stato systemctl bind9

Esempio di output:

● named.service - BIND Domain Name Server Caricato:caricato (/lib/systemd/system/named.service; abilitato; preimpostazione del fornitore:abilitato) Attivo:attivo (in esecuzione) da Sun 2020-05-17 08:11 :26 UTC; 37 secondi fa Docs:man:named(8) PID principale:13820 (named) Task:5 (limite:1074) Memoria:14.3M CGroup:/system.slice/named.service └─13820 /usr/sbin/named -f -u vincolare

Se non è in esecuzione, avvialo con:

sudo systemctl avvia bind9

Modifica il file di configurazione del server BIND DNS.

sudo nano /etc/bind/named.conf.options

Aggiungi la riga seguente per consentire ai client VPN di inviare query DNS ricorsive.

consenti ricorsione { 127.0.0.1; 10.10.10.0/24; };

Salva e chiudi il file. Riavvia BIND9 per rendere effettive le modifiche.

sudo systemctl restart bind9

Quindi devi eseguire il comando seguente per consentire ai client VPN di connettersi alla porta 53.

sudo ufw insert 1 consenti l'ingresso da 10.10.10.0/24

Passaggio 7:apri la porta WireGuard nel firewall

Esegui il comando seguente per aprire la porta UDP 51820 sul server.

sudo ufw allow 51820/udp

Fase 8:avvia WireGuard

server

Esegui il seguente comando sul server per avviare WireGuard.

sudo systemctl start [email protetta]

Abilita l'avvio automatico all'avvio del sistema.

sudo systemctl enable [email protected]

Controlla il suo stato con il seguente comando. Il suo stato dovrebbe essere active (exited) .

stato systemctl [email protetta]

Ora il server WireGuard è pronto per accettare connessioni client.

Cliente

Avvia WireGuard.

sudo systemctl start [email protetta]

Abilita l'avvio automatico all'avvio del sistema.

sudo systemctl enable [email protected]

Controlla il suo stato:

stato systemctl [email protetta]

Ora vai su questo sito Web:https://icanchazip.com/ per controllare il tuo indirizzo IP pubblico. Se tutto è andato bene, dovrebbe visualizzare l'indirizzo IP pubblico del tuo server VPN invece dell'indirizzo IP pubblico del tuo computer client.

Puoi anche eseguire il comando seguente per ottenere l'indirizzo IP pubblico corrente.

curl https://icanchazip.com

Suggerimenti per la risoluzione dei problemi

Impossibile eseguire il ping

Puoi eseguire il ping dal server VPN al client VPN (ping 10.10.10.2 ) per vedere se il tunnel funziona. Se vedi il seguente messaggio di errore nel ping,

ping:sendmsg:chiave richiesta non disponibile

potrebbe essere che il AllowedIPs parametro è sbagliato, come un errore di battitura. Dopo aver corretto l'errore di battitura, riavvia sia il server VPN che il client VPN.

Un altro motivo potrebbe essere che hai dimenticato di aggiungere ListenPort = 51820 nel file di configurazione del server.

L'IP pubblico non cambia

Se il tunnel VPN viene stabilito correttamente, ma l'indirizzo IP pubblico del client non cambia, è perché la regola di mascheramento o inoltro nel file di configurazione UFW non funziona. Una volta ho avuto un errore di battitura in /etc/ufw/before.rules file, che ha impedito al mio computer di navigare in Internet.

Tieni presente che non consiglio di utilizzare SaveConfig=true nel [Interface] sezione del file di configurazione di WireGuard. SaveConfig dice a WireGuard di salvare la configurazione di runtime allo spegnimento. Quindi, se aggiungi ulteriori [Peer] nel file di configurazione e quindi riavvia WireGuard, le tue configurazioni appena aggiunte verranno sovrascritte.

Abilita l'accesso al debug nel kernel Linux

Se utilizzi il kernel Linux 5.6+, puoi abilitare la registrazione del debug per WireGuard con il comando seguente.

sudo su -echo module wireguard +p>
 /sys/kernel/debug/dynamic_debug/control

Quindi puoi visualizzare i log di debug con

sudo dmesg -wH

o

sudo journalctl -kf

Riavvia

Se la tua VPN continua a non funzionare, prova a riavviare il server VPN.

sudo systemctl restart [email protetta]

Quindi arresta il client VPN.

sudo systemctl stop [email protetta]

E aggiorna i pacchetti software sul client VPN.

sudo apt update; sudo apt aggiornamento

Quindi, riavvia il client VPN.

sudo shutdown -r nowsudo systemctl start [email protected]

Se la tua VPN WireGuard può funzionare solo dopo un riavvio, considera l'aggiunta di un processo cron per riavviare automaticamente il servizio.

sudo crontab -e

Aggiungi la seguente riga in questo file.

@daily systemctl restart [email protetta]

Confronto di velocità tra WireGuard e OpenConnect

Su uno dei miei server VPS, ho installato sia WireGuard che il server VPN OpenConnect. Il test di velocità è il seguente. Potrebbe non sembrare veloce per te, perché la connessione tra il mio computer e il server VPN è molto scarsa. La velocità che puoi ottenere dipende dalla latenza e dal tasso di perdita di pacchetti tra il client VPN e il server VPN.

  • WireGuard è il vincitore. È quasi 3 volte più veloce di OpenConnect.
  • OpenConnect su TCP è più veloce di OpenConnect su UDP. Sorpresa?

WireGuard è in grado di raggiungere 52296 Kbps (circa 51 Mbit/s) durante la riproduzione di video di YouTube.

OpenConnect (TLS con algoritmo TCP BBR) è in grado di raggiungere 16504 Kbps (circa 16 Mbit/s) durante la riproduzione di video di YouTube.

OpenConnect (TLS su UDP) è in grado di raggiungere 12997 Kbps (circa 12,7 Mbit/s) durante la riproduzione di video di YouTube.

Aggiunta di client VPN aggiuntivi

WireGuard è progettato per associare un indirizzo IP a un client VPN. Per aggiungere più client VPN, devi creare una coppia di chiavi privata/pubblica univoca per ciascun client, quindi aggiungere la chiave pubblica di ciascun client VPN nel file di configurazione del server (/etc/wireguard/wg0.conf ) in questo modo:

 [Interface] Indirizzo =10.10.10.1/24PrivateKey =UIFH + XXjJ0g0uAZJ6vPqsbb / o68SYVQdmYJpy / FlGFA =ListenPort =51820 [Peer] =PublicKey 75VNV7HqFh + 3QIT5OHZkcjWfbjx8tc6Ck62gZJT / KRA =AllowedIPs =10.10.10.2/32[Peer]PublicKey =YYh4 / 1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8=IP consentiti =10.10.10.3/32[Peer]PublicKey =EVstHZc6QamzPgefDGPLFEjGyedJk6SZbCJttpzcvC8=IP consentiti =10.10.10.4/32

Ogni client VPN avrà un indirizzo IP privato statico (10.10.10.2, 10.10.10.3, 10.10.10.4, ecc.). Riavvia il server WireGuard per rendere effettive le modifiche.

sudo systemctl restart [email protetta]

Quindi aggiungi la configurazione WireGuard su ciascun client VPN come al solito.

Riavvio automatico quando la connessione VPN si interrompe

A volte la connessione VPN si interrompeva per vari motivi. È possibile eseguire il comando seguente per verificare se il client VPN può eseguire il ping dell'indirizzo IP privato del server VPN (10.10.10.1). Se il ping non riesce, il comando a destra verrà eseguito per riavviare il client VPN. || è l'operatore OR in Bash. Esegue il comando a destra solo se il comando a sinistra ha restituito un errore.

ping -c9 10.10.10.1> /dev/null || systemctl restart [email protetta]

Il ping verrà eseguito 9 volte, ovvero 9 secondi. Puoi utilizzare un ciclo for nella shell Bash per eseguire l'intero comando 6 volte, ovvero 54 secondi.

per ((i=1; i<=6; i++)) fai (ping -c9 10.10.10.1> /dev/null || systemctl restart [protetto tramite posta elettronica]) fatto 

Ora possiamo creare un lavoro Cron per automatizzare questa attività. Modifica il file crontab dell'utente root sul client VPN.

sudo crontab -e

Ben non è la shell predefinita in Cron. Puoi aggiungere la seguente riga all'inizio del file Crontab per renderlo predefinito.

SHELL=/bin/bash

Quindi aggiungi la seguente riga alla fine di questo file.

* * * * * per ((i=1; i<=6; i++)) fai (ping -c9 10.10.10.1> /dev/null || systemctl restart [protetto tramite posta elettronica]) fatto 

Questo processo Cron verrà eseguito ogni minuto e ci saranno 6 controlli ogni minuto. Salva e chiudi il file.

Utilizzo avanzato

Ora ti mostrerò come utilizzare il instradamento delle norme , tunnel diviso e kill switch VPN con WireGuard VPN. Nota che non è consigliabile usarli insieme. Se utilizzi il routing dei criteri, non dovresti abilitare lo split tunneling o il kill switch VPN e viceversa. Questa sezione è per utenti avanzati. Se sei un principiante di WireGuard e non sai a cosa servono, non applicare le istruzioni in questa sezione.

Indirizzamento delle politiche

Per impostazione predefinita, tutto il traffico sul client VPN verrà instradato attraverso il server VPN. A volte potresti voler instradare solo un tipo specifico di traffico, in base al protocollo del livello di trasporto e alla porta di destinazione. Questo è noto come policy routing.

Il routing dei criteri è configurato sul computer client e prima è necessario interrompere la connessione VPN.

sudo systemctl stop [email protetta]

Quindi modifica il file di configurazione del client.

sudo nano /etc/wireguard/wg-client0.conf

Ad esempio, se aggiungi le seguenti 3 righe in [interface] sezione, quindi WireGuard creerà una tabella di routing denominata "1234" e aggiungerà la regola IP nella tabella di routing. In questo esempio, il traffico verrà instradato attraverso il server VPN solo quando TCP viene utilizzato come protocollo del livello di trasporto e la porta di destinazione è 25, ovvero quando il computer client invia e-mail.

Table =1234PostUp =regola ip aggiungi ipproto tcp dport 25 table 1234PreDown =regola ip elimina ipproto tcp dport 25 table 1234

Nota :il client deve eseguire Ubuntu 20.04 o versioni successive per configurare il routing dei criteri. Il ip l'utilità su Ubuntu 18.04 non supporta ipproto e dport argomento.

Salva e chiudi il file. Quindi avvia il client WireGuard.

sudo systemctl start [email protetta]

Se desideri instradare il traffico per le porte TCP 80 e 443, utilizza la seguente sintassi.

Tabella =1234PostUp =regola ip add ipproto tcp dport 80 tabella 1234; regola ip aggiungi ipproto tcp dport 443 tabella 1234PreDown =regola ip elimina ipproto tcp dport 80 tabella 1234; regola ip elimina ipproto tcp dport 443 tabella 1234

Ricorda che dovresti interrompere la connessione VPN WireGuard prima di modificare le regole di routing dei criteri.

Puoi anche specificare un intervallo di porte come di seguito (dalla porta TCP 26 alla porta TCP 10240).

Tabella =1234PostUp =regola ip aggiungi ipproto tcp dport 26-10240 tabella 1234PreDown =regola ip elimina ipproto tcp dport 26-10240 tabella 1234

Se vuoi specificare entrambe le porte TCP e UDP, rimuovi ipproto tcp .

Tabella =1234PostUp =regola ip aggiungi dport 26-10240 tabella 1234PreDown =regola ip elimina dport 26-10240 tabella 1234

Potresti voler configurare il client VPN per utilizzare il tunnel VPN solo quando il traffico è destinato a determinati indirizzi IP. Puoi farlo con il to opzione.

Tabella =1234PostUp =regola IP aggiunta a 10.0.0.0/24 tabella 1234PreDown =regola IP elimina a 10.0.0.0/24 tabella 1234

Traforo diviso

Per impostazione predefinita, tutto il traffico sul client VPN verrà instradato attraverso il server VPN. Ecco come abilitare lo split tunneling, quindi solo il traffico verso il 10.10.10.0/24 L'intervallo IP sarà incanalato tramite WireGuard VPN. Ciò è utile quando desideri creare una rete privata per diversi server cloud, perché i client VPN verranno eseguiti su server cloud e se utilizzi un tunnel VPN completo, probabilmente perderai la connessione ai server cloud.

Modifica il file di configurazione del client.

sudo nano /etc/wireguard/wg-client0.conf

Cambia

IP consentiti =0.0.0.0/0

A

IP consentiti =10.10.10.0/24

Quindi il traffico verrà instradato tramite VPN solo quando l'indirizzo di destinazione è nell'intervallo IP 10.10.10.0/24. Salva e chiudi il file. Quindi riavvia il client WireGuard.

sudo systemctl restart [email protetta]

Puoi anche consentire più intervalli IP. Supponiamo che il server VPN gestisca anche il 10.10.20.0/24 rete, quindi puoi configurare AllowedIPs sul client VPN in questo modo:

IP consentiti =10.10.10.0/24, 10.10.20.0/24

Quindi il client VPN può raggiungere il 10.10.20.0/24 rete tramite il server VPN e viceversa.

Per aggiungere un singolo indirizzo IP, utilizza la seguente sintassi.

IP consentiti =10.10.10.0/24, 10.10.20.0/24, 8.8.8.8/32

Questo indica al client di utilizzare il server VPN durante la comunicazione con 8.8.8.8.

VPN Kill Switch

Per impostazione predefinita, il tuo computer può accedere a Internet tramite il normale gateway quando la connessione VPN viene interrotta. Potresti voler abilitare la funzione kill switch, che impedisce il flusso di pacchetti non crittografati attraverso interfacce non WireGuard.

Interrompi il processo del client WireGuard.

sudo systemctl stop [email protetta]

Modifica il file di configurazione del client.

sudo nano /etc/wireguard/wg-client0.conf

Aggiungi le seguenti due righe in [interface] sezione.

PostUp =iptables -I OUTPUT ! -o %i -m segno ! --mark $(wg mostra %i fwmark) -m addrtype ! --dst-type LOCALE -j REJECTPreDown =iptables -D OUTPUT ! -o %i -m segno ! --mark $(wg mostra %i fwmark) -m addrtype ! --dst-type LOCALE -j RIFIUTA

In questo modo:

[Interface]Address =10.10.10.2/24DNS =10.10.10.1PrivateKey =cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI=PostUp =iptables -I OUTPUT ! -o %i -m segno ! --mark $(wg mostra %i fwmark) -m addrtype ! --dst-type LOCALE -j REJECTPreDown =iptables -D OUTPUT ! -o %i -m segno ! --mark $(wg mostra %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT[Peer]PublicKey =RaoAdsIEIwgV9DHNSubxWVG+nZ1GP/c3OU6A/efBJ0I=AllowedIPs =0.0.0.0/0Endpoint =12.34.56.78:51820PersistentKeepalive =25

Salva e chiudi il file. Quindi avvia il client WireGuard.

sudo systemctl start [email protetta]

Indirizzi multipli nell'interfaccia WireGuard

Un'interfaccia WireGuard può avere più indirizzi IP. Ad esempio, puoi avere due indirizzi IP sul client VPN.

[Interfaccia]Indirizzo =10.10.10.2/24Indirizzo =10.10.10.3/24....

In questo caso, devi consentire più indirizzi IP sul server VPN per questo particolare client, altrimenti il ​​client VPN potrebbe non essere in grado di connettersi al server VPN.

[Peer]...IP consentiti =10.10.10.2/32, 10.10.10.3/32

È possibile utilizzare il comando seguente per verificare che gli indirizzi IP appartengano a un'interfaccia di rete.

ip -c a

Nota

  • Il ifconfig il comando può mostrare solo l'indirizzo IP per un'interfaccia di rete.
  • Se imposti un'altra interfaccia WireGuard in un nuovo .conf file, quindi deve essere associato a una porta diversa da 51820, altrimenti vedrai l'errore "Indirizzo già in uso".

Ubuntu
  1. Configura un server VPN sul tuo PC Linux

  2. Come configurare un server OpenVPN su Ubuntu 18.04

  3. Come configurare WireGuard VPN su Ubuntu 20.04

  4. Come configurare WireGuard VPN su Ubuntu (una guida passo passo)

  5. Come configurare WireGuard su Ubuntu 22.04

Installa OpenLiteSpeed, MariaDB, PHP8.0 su Ubuntu 20.04/18.04 Server

Come installare il desktop GNOME sul server Linux Ubuntu 20.04/18.04

Come installare FileZilla Server su Ubuntu 20.04/18.04 Linux

Come installare Plex Media Server su Ubuntu 20.04/18.04

Come creare il tuo server VPN IPsec in Linux

Come configurare un VPN Pptp sul proprio server Ubuntu?