Servizio VPN gratuito Wireguard su AWS

A cosa serve?

Con l'aumento della censura su Internet da parte dei regimi autoritari, sempre più risorse e siti web utili vengono bloccati. Questo include anche informazioni tecniche.
Di conseguenza, diventa impossibile usufruire appieno di Internet, violando il fondamentale diritto alla libertà di espressione, sancito nella Dichiarazione Universale dei Diritti Umani.

Articolo 19
Ogni persona ha diritto alla libertà di convinzioni e alla libera espressione delle stesse; questo diritto include la libertà di aderire alle proprie convinzioni senza ostacoli e la libertà di cercare, ricevere e diffondere informazioni e idee con qualsiasi mezzo e senza considerare i confini statali.

In questa guida, in 6 fasi, creeremo il nostro gratuito* servizio VPN basato sulla tecnologia Wireguard, nell'infrastruttura cloud Amazon Web Services (AWS), utilizzando un account gratuito (per 12 mesi), su un'istanza (macchina virtuale) che esegue Ubuntu Server 18.04 LTS.
Ho cercato di rendere questa guida passo passo il più amichevole possibile per chi è lontano dall'IT. L'unica cosa richiesta è la pazienza nel ripetere i passaggi descritti di seguito.

Nota

Fasi

  1. Registrazione di un account AWS gratuito
  2. Creazione di un'istanza AWS
  3. Connessione all'istanza AWS
  4. Configurazione di WireGuard
  5. Configurazione dei client VPN
  6. Verifica della corretta installazione della VPN

Link utili

1. Registrazione di un account AWS

Per registrare un account AWS gratuito è necessario un numero di telefono reale e una carta di credito Visa o Mastercard funzionante. Ti consiglio di utilizzare carte virtuali gratuite fornite da Yandex.Money o portafoglio Qiwi. Per verificare la validità della carta, al momento della registrazione verrà addebitato 1$, che verrà poi restituito.

1.1. Apertura della console di gestione AWS

Apri il browser e vai all'indirizzo: https://aws.amazon.com/ru/
Clicca sul pulsante «Registrazione»

Servizio VPN gratuito Wireguard su AWS

1.2. Compilazione dei dati personali

Compila i dati e clicca sul pulsante «Continua»

Servizio VPN gratuito Wireguard su AWS

1.3. Compilazione dei dati di contatto

Compila le informazioni di contatto.

Servizio VPN gratuito Wireguard su AWS

1.4. Inserimento delle informazioni di pagamento.

Numero della carta, data di scadenza e nome del titolare della carta.

Servizio VPN gratuito Wireguard su AWS

1.5. Conferma dell'account

In questa fase si procede alla conferma del numero di telefono e alla pertinente addebito di 1$ sulla carta di pagamento. Sullo schermo del computer appare un codice di 4 cifre, e sul telefonino indicato riceverai una chiamata da Amazon. Durante la chiamata dovrai inserire il codice visualizzato sullo schermo.

Servizio VPN gratuito Wireguard su AWS

1.6. Selezione del piano tariffario.

Selezioniamo — Piano Base (gratuito)

Servizio VPN gratuito Wireguard su AWS

1.7. Accesso alla console di gestione

Servizio VPN gratuito Wireguard su AWS

1.8. Selezione della posizione del data center

Servizio VPN gratuito Wireguard su AWS

1.8.1. Test della velocità

Prima di scegliere un data center, è consigliato testare la https://speedtest.net velocità di accesso ai data center più vicini; nella mia posizione i risultati sono i seguenti:

  • Singapore
    Servizio VPN gratuito Wireguard su AWS
  • Parigi
    Servizio VPN gratuito Wireguard su AWS
  • Francoforte
    Servizio VPN gratuito Wireguard su AWS
  • Stoccolma
    Servizio VPN gratuito Wireguard su AWS
  • Londra
    Servizio VPN gratuito Wireguard su AWS

Il data center a Londra mostra i migliori risultati di velocità. Pertanto, l'ho scelto per la configurazione successiva.

2. Creazione di un'istanza AWS

2.1 Creazione di una macchina virtuale

2.1.1. Selezione del tipo di istanza

Per impostazione predefinita è selezionata l'istanza t2.micro, che ci serve; premiamo semplicemente il pulsante Next: Configura i dettagli dell'istanza

Servizio VPN gratuito Wireguard su AWS

2.1.2. Configurazione dei parametri dell'istanza

In seguito collegheremo un IP pubblico statico alla nostra istanza, quindi a questo punto disattiviamo l'assegnazione automatica dell'IP pubblico e premiamo il pulsante Next: Aggiungi archiviazione

Servizio VPN gratuito Wireguard su AWS

2.1.3. Collegamento dello storage

Indichiamo la dimensione del «disco rigido». Per i nostri scopi, 16 gigabyte sono sufficienti, quindi facciamo clic sul pulsante Prossimo: Aggiungi Tag

Servizio VPN gratuito Wireguard su AWS

2.1.4. Configurazione dei Tag

Se stessimo creando più istanze, potremmo raggrupparle per tag, per facilitare l'amministrazione. In questo caso, questa funzionalità è superflua, quindi facciamo clic sul pulsante immediatamente Prossimo: Configura il Gruppo di Sicurezza

Servizio VPN gratuito Wireguard su AWS

2.1.5. Apertura delle Porte

In questa fase configuriamo il firewall, aprendo le porte necessarie. L'insieme delle porte aperte è chiamato «Gruppo di Sicurezza». Dobbiamo creare un nuovo gruppo di sicurezza, dargli un nome, una descrizione, aggiungere una porta UDP (Regola UDP Personalizzata), nel campo Intervallo Porte dobbiamo assegnare un numero di porta, dal range porte dinamiche 49152—65535. In questo caso, ho scelto il numero di porta 54321.

Servizio VPN gratuito Wireguard su AWS

Dopo aver compilato i dati richiesti, facciamo clic sul pulsante Rivedi e Avvia

2.1.6. Revisione di tutte le impostazioni

In questa pagina viene effettuata una revisione di tutte le impostazioni della nostra istanza, controlliamo se tutte le impostazioni sono corrette e facciamo clic sul pulsante Avvio

Servizio VPN gratuito Wireguard su AWS

2.1.7. Creazione delle Chiavi di Accesso

Subito dopo appare una finestra di dialogo che offre di creare o aggiungere una chiave SSH esistente, che utilizzeremo per connetterci in remoto al nostro istanza. Selezioniamo l'opzione «Crea un nuovo paio di chiavi» per crearne una nuova. Assegniamo il suo nome e premiamo il pulsante Scarica il paio di chiavi, per scaricare le chiavi create. Salvale in un luogo sicuro sul disco del computer locale. Dopo averle scaricate, premi il pulsante Avvia Istanza

Servizio VPN gratuito Wireguard su AWS

2.1.7.1. Salvataggio delle chiavi di accesso

Qui è mostrato il passaggio per salvare le chiavi create nel passaggio precedente. Dopo aver premuto il pulsante Scarica il paio di chiavi, la chiave viene salvata come file di certificato con estensione *.pem. In questo caso, gli ho dato il nome wireguard-awskey.pem

Servizio VPN gratuito Wireguard su AWS

2.1.8. Revisione dei risultati della creazione dell'istanza

Dopo vediamo un messaggio di successo per l'avvio dell'istanza che abbiamo appena creato. Possiamo passare all'elenco delle nostre istanze premendo il pulsante Visualizza istanze

Servizio VPN gratuito Wireguard su AWS

2.2. Creazione di un indirizzo IP esterno

2.2.1. Inizio della creazione di un IP esterno

Successivamente, dobbiamo creare un indirizzo IP pubblico permanente, attraverso il quale ci connetteremo al nostro server VPN. Per fare questo, nel pannello di navigazione sul lato sinistro dello schermo, dobbiamo selezionare la voce Elastic IP dalla categoria NETWORK & SECURITY e fare clic sul pulsante Alloca nuovo indirizzo

Servizio VPN gratuito Wireguard su AWS

2.2.2. Configurazione della creazione di un IP esterno

Nella fase successiva, è importante assicurarsi che l'opzione sia attivata Amazon pool (attivata per impostazione predefinita), e clicchiamo sul pulsante Alloca

Servizio VPN gratuito Wireguard su AWS

2.2.3. Revisione dei risultati della creazione dell'indirizzo IP esterno

Nella schermata successiva verrà visualizzato l'indirizzo IP esterno che abbiamo ottenuto. Si consiglia di memorizzarlo, o meglio ancora, di scriverlo. Ci sarà utile più avanti nel processo di configurazione e utilizzo del server VPN. In questa guida, come esempio, utilizzo l'indirizzo IP 4.3.2.1. Una volta annotato l'indirizzo, clicchiamo sul pulsante Chiudi

Servizio VPN gratuito Wireguard su AWS

2.2.4. Elenco degli indirizzi IP esterni

Successivamente, si apre un elenco dei nostri indirizzi IP pubblici permanenti (Elastic IP).

Servizio VPN gratuito Wireguard su AWS

2.2.5. Assegnazione di un indirizzo IP a un'istanza

In questo elenco selezioniamo l'indirizzo IP che abbiamo ottenuto, e facciamo clic con il tasto destro del mouse per aprire il menu a discesa. Da qui, selezioniamo l'opzione Associa indirizzo, per associarlo all'istanza precedentemente creata.

Servizio VPN gratuito Wireguard su AWS

2.2.6. Configurazione dell'associazione dell'IP esterno

Nella fase successiva, selezioniamo la nostra istanza dal menu a discesa e premiamo il pulsante Associazione

Servizio VPN gratuito Wireguard su AWS

2.2.7. Rassegna dei risultati dell'associazione dell'IP esterno

Dopo di ciò, possiamo vedere che la nostra istanza è collegata al nostro indirizzo IP pubblico statico e al suo indirizzo IP privato.

Servizio VPN gratuito Wireguard su AWS

Ora possiamo connetterci alla nostra nuova istanza dall'esterno, dal nostro computer tramite SSH.

3. Connessione all'istanza AWS

SSH — è un protocollo sicuro per la gestione remota dei dispositivi informatici.

3.1. Connessione tramite SSH da un computer Windows

Per connetterci al computer con Windows, è necessario prima scaricare e installare il programma Putty.

3.1.1. Importazione della chiave privata per Putty

3.1.1.1. Dopo aver installato Putty, è necessario avviare l'utility PuTTYgen che viene fornita con essa, per importare la chiave del certificato dal formato PEM in un formato utilizzabile nel programma Putty. Per fare ciò, selezioniamo dal menu in alto la voce Conversioni->Importa Chiave

Servizio VPN gratuito Wireguard su AWS

3.1.1.2. Selezione della chiave AWS nel formato PEM

Successivamente, selezioniamo la chiave che abbiamo precedentemente salvato nella fase 2.1.7.1, nel nostro caso il suo nome wireguard-awskey.pem

Servizio VPN gratuito Wireguard su AWS

3.1.1.3. Impostazione dei parametri di importazione della chiave

In questo passaggio dobbiamo specificare un commento per questa chiave (descrizione) e definire una password e la sua conferma per motivi di sicurezza. Essa verrà richiesta ad ogni connessione. In questo modo proteggiamo la chiave con una password da usi impropri. È possibile non impostare una password, ma ciò è meno sicuro nel caso in cui la chiave venga in possesso di terzi. Dopo, clicchiamo sul pulsante Salva chiave privata

Servizio VPN gratuito Wireguard su AWS

3.1.1.4. Salvataggio della chiave importata

Si apre una finestra di dialogo per il salvataggio del file, e noi salviamo la nostra chiave privata come un file con estensione .ppk, compatibile con il programma Putty.
Specifichiamo il nome della chiave (nel nostro caso wireguard-awskey.ppk) e premiamo il pulsante Salva.

Servizio VPN gratuito Wireguard su AWS

3.1.2. Creazione e configurazione della connessione in Putty

3.1.2.1. Creazione della connessione

Apriamo il programma Putty, selezioniamo la categoria Sessione (è aperta per impostazione predefinita) e nel campo Nome host inseriamo l'indirizzo IP pubblico del nostro server, che abbiamo ottenuto al passaggio 2.2.3. Nel campo Sessione salvata inseriamo un nome a piacere per la nostra connessione (nel mio caso wireguard-aws-london), e poi clicchiamo sul pulsante Salva per mantenere le modifiche effettuate.

Servizio VPN gratuito Wireguard su AWS

3.1.2.2. Configurazione dell’accesso automatico dell'utente

Procediamo nella categoria Connection, selezioniamo la sottocategoria Data e nel campo Auto-login username inseriamo il nome utente ubuntu — è l'utente standard dell'istanza su AWS con Ubuntu.

Servizio VPN gratuito Wireguard su AWS

3.1.2.3. Selezione della chiave privata per la connessione SSH

Poi passiamo alla sottocategoria Connection/SSH/Auth e accanto al campo Private key file for authentication clicchiamo sul pulsante Browse… per selezionare il file con il certificato della chiave.

Servizio VPN gratuito Wireguard su AWS

3.1.2.4. Apertura della chiave importata

Indichiamo la chiave che abbiamo importato in precedenza nel passaggio 3.1.1.4, nel nostro caso è il file wireguard-awskey.ppk, e premiamo il pulsante Aprire.

Servizio VPN gratuito Wireguard su AWS

3.1.2.5. Salvataggio delle impostazioni e avvio della connessione

Tornando alla pagina della categoria Sessione clicchiamo di nuovo sul pulsante Salva, per salvare le modifiche apportate nei passaggi precedenti (3.1.2.2 — 3.1.2.4). E poi facciamo clic sul pulsante Aperto per aprire la connessione remota SSH che abbiamo creato e configurato.

Servizio VPN gratuito Wireguard su AWS

3.1.2.7. Configurazione della fiducia tra gli host

Nella prossima fase, alla prima tentativo di connessione, ci verrà fornito un avviso, poiché non è stata configurata la fiducia tra i due computer, e chiederà se fidarci del computer remoto. Faremmo clic sul pulsante , aggiungendolo così all'elenco degli host fidati.

Servizio VPN gratuito Wireguard su AWS

3.1.2.8. Inserimento della password per accedere alla chiave

Dopo di ciò si apre una finestra del terminale in cui viene richiesta la password per la chiave, se l'hai impostata in precedenza al passo 3.1.1.3. Durante la digitazione della password, non si verificano azioni sullo schermo. Se hai commesso un errore, puoi utilizzare il tasto Backspace.

Servizio VPN gratuito Wireguard su AWS

3.1.2.9. Messaggio di benvenuto per la connessione riuscita

Dopo aver inserito correttamente la password, nel terminale viene visualizzato un testo di benvenuto che informa che il sistema remoto è pronto per eseguire i nostri comandi.

Servizio VPN gratuito Wireguard su AWS

4. Configurazione del server Wireguard

Puoi visualizzare le istruzioni più recenti per l'installazione e l'uso di Wireguard utilizzando gli script descritti di seguito nel repository: https://github.com/isystem-io/wireguard-aws

4.1. Installazione di Wireguard

Nel terminale digitiamo i seguenti comandi (puoi copiarli negli appunti e incollarli nel terminale premendo il tasto destro del mouse):

4.1.1. Clonazione del repository

Cloniamo il repository con gli script per l'installazione di Wireguard

git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws

4.1.2. Accesso alla directory con gli script

Accediamo alla directory con il repository clonato

cd wireguard_aws

4.1.3 Esecuzione dello script di inizializzazione

Eseguiamo come amministratore (utente root) lo script di installazione di Wireguard

sudo ./initial.sh

Durante l'installazione ti verranno richiesti alcuni dati necessari per configurare Wireguard

4.1.3.1. Inserimento del punto di connessione

Inserisci l'indirizzo IP esterno e la porta aperta del server Wireguard. L'indirizzo IP esterno del server l'abbiamo ottenuto al passo 2.2.3, e la porta l'abbiamo aperta al passo 2.1.5. Indicali insieme, separandoli con due punti, per esempio 4.3.2.1:54321, e poi premi il tasto Enter
Esempio di output:

Inserisci l'endpoint (ip esterno e porta) nel formato [ipv4:port] (es. 4.3.2.1:54321): 4.3.2.1:54321

4.1.3.2. Inserimento dell'indirizzo IP interno

Inserisci l'indirizzo IP del server Wireguard nella sottorete VPN protetta; se non sai di cosa si tratta, premi semplicemente il tasto Invio per impostare il valore predefinito (10.50.0.1)
Esempio di output:

Inserisci l'indirizzo del server nella sottorete VPN (formato CIDR) ([ENTER] imposta il valore predefinito: 10.50.0.1):

4.1.3.3. Specifica del server DNS

Inserisci l'indirizzo IP del server DNS, oppure premi semplicemente il tasto Invio per impostare il valore predefinito 1.1.1.1 (DNS pubblico di Cloudflare)
Esempio di output:

Inserisci l'indirizzo IP del server DNS (formato CIDR) ([ENTER] imposta il valore predefinito: 1.1.1.1):

4.1.3.4. Specifica dell'interfaccia WAN

Ora è necessario inserire il nome dell'interfaccia di rete esterna che ascolterà l'interfaccia di rete interna VPN. Premi semplicemente Invio per impostare il valore predefinito per AWS (eth0)
Esempio di output:

Inserisci il nome dell'interfaccia di rete WAN ([ENTER] imposta il valore predefinito: eth0):

4.1.3.5. Indicare il nome del cliente

Inserisci il nome utente VPN. Infatti, il server VPN Wireguard non può avviarsi finché non è stato aggiunto almeno un cliente. In questo caso ho inserito il nome Alex@mobile
Esempio di output:

Inserisci il nome utente VPN: Alex@mobile

Dopo di che, sullo schermo apparirà un codice QR con la configurazione del cliente appena aggiunto, che deve essere scansionato utilizzando il client mobile Wireguard su Android o iOS per la sua configurazione. Inoltre, sotto il codice QR verrà visualizzato il testo del file di configurazione per eventuali configurazioni manuali. Come farlo sarà spiegato di seguito.

Servizio VPN gratuito Wireguard su AWS

4.2. Aggiunta di un nuovo utente VPN

Per aggiungere un nuovo utente, è necessario eseguire lo script nel terminale add-client.sh

sudo ./add-client.sh

Lo script richiede il nome utente:
Esempio di output:

Inserisci il nome utente VPN: 

Inoltre, il nome utente può essere fornito come parametro dello script (in questo caso Alex@mobile):

sudo ./add-client.sh Alex@mobile

A seguito dell'esecuzione dello script, nella directory con il nome del cliente nel percorso /etc/wireguard/clients/{ИмяКлиента} verrà creato un file con la configurazione del cliente /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, e sullo schermo del terminale apparirà un codice QR per la configurazione dei client mobili e il contenuto del file di configurazione.

4.2.1. File di configurazione dell'utente

Mostra il contenuto del file .conf per la configurazione manuale del client utilizzando il comando cat

sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf

risultato dell'esecuzione:

[Interface]
PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM=
Address = 10.50.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk=
PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 4.3.2.1:54321

Descrizione del file di configurazione del client:

[Interface]
PrivateKey = Chiave privata del client
Address = Indirizzo IP del client
DNS = DNS utilizzato dal client

[Peer]
PublicKey = Chiave pubblica del server
PresharedKey = Chiave condivisa tra server e client
AllowedIPs = Indirizzi consentiti per la connessione (tutti - 0.0.0.0/0, ::/0)
Endpoint = Indirizzo IP e porta per la connessione

4.2.2. QR code di configurazione del client

Mostra nel terminale il QR code di configurazione per il client precedentemente creato utilizzando il comando qrencode -t ansiutf8 (in questo esempio si utilizza un client di nome Alex@mobile):

sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8

5. Configurazione dei client VPN

5.1. Configurazione del client mobile Android

Il client ufficiale Wireguard per Android può essere installato dal Google Play Store ufficiale

Dopo di che, è necessario importare la configurazione, leggendo il codice QR della configurazione del cliente (vedi punto 4.2.2) e dare un nome;

Servizio VPN gratuito Wireguard su AWS

Dopo un'importazione della configurazione riuscita, puoi attivare il tunnel VPN. Un'icona nella barra di sistema di Android confermerà la connessione avvenuta con successo.

Servizio VPN gratuito Wireguard su AWS

5.2. Configurazione del client Windows

Inizialmente, è necessario scaricare e installare il programma TunSafe per Windows — è il client Wireguard per Windows.

5.2.1. Creazione di un file di configurazione per l'importazione

Fai clic destro per creare un file di testo sul desktop.

Servizio VPN gratuito Wireguard su AWS

5.2.2. Copia del contenuto del file di configurazione dal server

Poi torniamo al terminale Putty e mostriamo il contenuto del file di configurazione dell'utente richiesto, come descritto nel passo 4.2.1.
Seleziona con il tasto destro il testo di configurazione nel terminale Putty; al termine della selezione, verrà automaticamente copiato negli appunti.

Servizio VPN gratuito Wireguard su AWS

5.2.3. Copiando la configurazione in un file di configurazione locale

Dopo di ciò, torniamo al file di testo precedentemente creato sul desktop e incolliamo al suo interno il testo della configurazione dagli appunti.

Servizio VPN gratuito Wireguard su AWS

5.2.4. Salvataggio del file di configurazione locale

Salvare il file con estensione .conf (in questo caso con il nome london.conf)

Servizio VPN gratuito Wireguard su AWS

5.2.5. Importazione di un file di configurazione locale

Successivamente, è necessario importare il file di configurazione nel programma TunSafe.

Servizio VPN gratuito Wireguard su AWS

5.2.6. Stabilire una connessione VPN

Selezionare questo file di configurazione e connettersi premendo il pulsante Connect.
Servizio VPN gratuito Wireguard su AWS

6. Verifica del successo della connessione

Per verificare il successo della connessione tramite il tunnel VPN, è necessario aprire il browser e andare sul sito https://2ip.ua/ru/

Servizio VPN gratuito Wireguard su AWS

L'indirizzo IP visualizzato dovrebbe corrispondere a quello che abbiamo ottenuto nella fase 2.2.3.
Se così è, significa che il tunnel VPN funziona correttamente.

Dal terminale in Linux, è possibile controllare il proprio indirizzo IP digitando il comando:

curl http://zx2c4.com/ip

Oppure si può semplicemente andare su un sito per adulti, se si è in Kazakistan.

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster