A cosa serve?
Con l'aumento della censura di Internet da parte dei regimi autoritari, un numero crescente di risorse e siti web utili viene bloccato, compresi quelli con informazioni tecniche.
Di conseguenza, diventa impossibile utilizzare Internet in modo completo e viene violato il diritto fondamentale alla libertà di parola, sancito nella .
Articolo 19
Ogni persona ha il diritto alla libertà di opinione e di espressione; questo diritto include la libertà di avere opinioni senza interferenze e la libertà di cercare, ricevere e diffondere informazioni e idee con qualsiasi mezzo e indipendentemente dai confini statali.
In questa guida, in 6 passaggi, ci costruiremo il nostro * sulla base della tecnologia , in un'infrastruttura cloud (AWS), utilizzando un account gratuito (per 12 mesi), su un'istanza (macchina virtuale) gestita da .
Ho cercato di rendere questa guida passo-passo il più amichevole possibile per chi non ha esperienza in IT. L'unica cosa richiesta è la perseveranza nel ripetere i passaggi descritti di seguito.
Nota
- AWS offre della durata di 12 mesi, con un limite di 15 gigabyte di traffico al mese.
- La versione più attuale di questa guida si trova all'indirizzo
Fasi
- Registrazione di un account AWS gratuito
- Creazione di un'istanza AWS
- Connessione all'istanza AWS
- Configurazione di Wireguard
- Configurazione dei client VPN
- Verifica della correttezza dell'installazione VPN
Link utili
1. Registrazione dell'account AWS
Per registrare un'account AWS gratuito è necessario un numero di telefono reale e una carta di credito Visa o Mastercard valida. Consiglio di utilizzare carte virtuali offerte gratuitamente da o . Per verificare la validità della carta, al momento della registrazione viene addebitato un importo di 1$ che verrà successivamente restituito.
1.1. Apertura della console di gestione AWS
È necessario aprire il browser e andare all'indirizzo:
Cliccare sul pulsante "Registrazione"

1.2. Compilazione dei dati personali
Compilare i dati e cliccare sul pulsante "Continua"

1.3. Compilazione dei dati di contatto
Compilare le informazioni di contatto.

1.4. Inserimento delle informazioni di pagamento.
Numero della carta, data di scadenza e nome del titolare della carta.

1.5. Conferma dell'account
In questa fase si conferma il numero di telefono e si addebita direttamente 1$ dalla carta di pagamento. Sullo schermo del computer viene visualizzato un codice di 4 cifre e sul numero di telefono indicato ricevi una chiamata da Amazon. Durante la chiamata è necessario digitare il codice visualizzato sullo schermo.

1.6. Selezione del piano tariffario.
Selezioniamo — Piano Base (gratuito)

1.7. Accesso alla console di gestione

1.8. Selezione della posizione del data center

1.8.1. Test della velocità
Prima di scegliere un data center, è consigliabile testare tramite la velocità di accesso ai data center più vicini; nella mia posizione i risultati sono questi:
- Singapore

- Parigi

- Francoforte

- Stoccolma

- Londra

Il data center di Londra offre i migliori risultati in termini 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
Di default è selezionata l'istanza t2.micro, di cui abbiamo bisogno, basta premere il pulsante Next: Configura i dettagli dell'istanza

2.1.2. Configurazione delle impostazioni dell'istanza
In seguito collegheremo un indirizzo IP pubblico statico alla nostra istanza, quindi in questa fase disattiviamo l'assegnazione automatica dell'IP pubblico e premiamo il pulsante Next: Aggiungi storage

2.1.3. Collegamento dello storage
Indichiamo la dimensione del "disco rigido". Per i nostri scopi, 16 gigabyte sono sufficienti, quindi premiamo il pulsante Next: Aggiungi Tag

2.1.4. Configurazione dei tag
Se stessimo creando diverse istanze, potremmo raggrupparle per tag, per facilitare l'amministrazione. In questo caso, questa funzionalità è superflua, premiamo subito il pulsante Next: Configura il Gruppo di Sicurezza

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" (Security Group). Dobbiamo creare un nuovo gruppo di sicurezza, dargli un nome, una descrizione, aggiungere la porta UDP (Regola UDP personalizzata); nel campo Rort Range dobbiamo specificare il numero di porta, dall'intervallo 49152—65535. In questo caso ho scelto il numero di porta 54321.

Dopo aver compilato i dati necessari, premiamo il pulsante Review and Launch
2.1.6. Panoramica di tutte le impostazioni
In questa pagina c'è una panoramica di tutte le impostazioni della nostra istanza, controlliamo che tutte le impostazioni siano corrette e premiamo il pulsante Launch

2.1.7. Creazione delle chiavi di accesso
Successivamente appare una finestra di dialogo che offre di creare o aggiungere una chiave SSH esistente, tramite la quale ci collegheremo in seguito al nostro istanza. Selezioniamo l'opzione «Crea un nuovo paio di chiavi» per creare una nuova chiave. Assegniamo un 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 aver scaricato, premi il pulsante Avvia istanze

2.1.7.1. Salvataggio delle chiavi di accesso
Qui è mostrato il passaggio di salvataggio delle chiavi create dal 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 l'ho denominato wireguard-awskey.pem

2.1.8. Panoramica sui risultati della creazione dell'istanza
Successivamente vediamo un messaggio di successo relativo all'avvio della nostra istanza appena creata. Possiamo passare all'elenco delle nostre istanze premendo il pulsante Visualizza istanze

2.2. Creazione di un indirizzo IP esterno
2.2.1. Avvio della creazione di un IP esterno
Adesso dobbiamo creare un indirizzo IP esterno permanente, attraverso il quale ci connetteremo al nostro server VPN. Per fare ciò, nel pannello di navigazione sul lato sinistro dello schermo, dobbiamo selezionare l'opzione Elastic IPs dalla categoria RETE & SICUREZZA e premere il pulsante Assegna nuovo indirizzo

2.2.2. Configurazione della creazione di un IP esterno
Nella fase successiva è necessario assicurarsi che l'opzione Amazon pool (attivata per impostazione predefinita) sia attivata, e premere il pulsante Assegna

2.2.3. Panoramica sui risultati della creazione dell'IP esterno
Nella schermata successiva verrà visualizzato l'indirizzo IP esterno ricevuto. È consigliabile ricordarlo, o meglio ancora, annotarlo. Ci sarà utile più volte durante la successiva configurazione e utilizzo del server VPN. In questa guida, come esempio, utilizzo l'indirizzo IP 4.3.2.1. Una volta registrato l'indirizzo, premiamo il pulsante Chiudi

2.2.4. Elenco degli indirizzi IP esterni
Successivamente ci viene mostrato un elenco dei nostri indirizzi IP pubblici permanenti (IP elastici).

2.2.5. Assegnazione di un IP esterno all'istanza
In questo elenco scegliamo l'indirizzo IP ricevuto, e clicchiamo con il tasto destro del mouse per far apparire il menu a discesa. Selezioniamo l'opzione Associa indirizzo, per assegnarlo all'istanza da noi creata in precedenza.

2.2.6. Configurazione dell'assegnazione dell'IP esterno
Nella fase successiva scegliamo dal menu a discesa la nostra istanza e premiamo il pulsante Associa

2.2.7. Panoramica sui risultati dell'assegnazione dell'IP esterno
Dopo di ciò, possiamo vedere che il nostro istanza è collegato al nostro indirizzo IP pubblico permanente e al suo indirizzo IP privato.

Adesso possiamo connetterci al nostro nuovo istanza da fuori, dal nostro computer tramite SSH.
3. Connessione all'istanza AWS
è un protocollo sicuro per il controllo remoto dei dispositivi informatici.
3.1. Connessione tramite SSH da un computer Windows
Per connettersi da un computer Windows, è necessario prima scaricare e installare il programma .
3.1.1. Importazione della chiave privata per Putty
3.1.1.1. Dopo aver installato Putty, dobbiamo avviare l'utility PuTTYgen che viene fornita con esso per importare la chiave del certificato in formato PEM in un formato utilizzabile con il programma Putty. A tale scopo, nel menu superiore, scegliamo l'opzione Conversions->Import Key

3.1.1.2. Selezione della chiave AWS in formato PEM
Successivamente, scegliamo la chiave che abbiamo precedentemente salvato nella fase 2.1.7.1, nel nostro caso il suo nome wireguard-awskey.pem

3.1.1.3. Impostazione dei parametri di importazione della chiave
In questo passaggio dobbiamo specificare un commento per questa chiave (descrizione) e impostare una password per la sicurezza. Questa verrà richiesta ad ogni connessione, in questo modo proteggiamo la chiave con una password per evitarne un uso non autorizzato. Non è obbligatorio impostare una password, ma è meno sicuro nel caso in cui la chiave finisca nelle mani sbagliate. Dopo di ciò, premiamo il pulsante Save private key

3.1.1.4. Salvataggio della chiave importata
Si apre una finestra di dialogo per il salvataggio del file, e salviamo la nostra chiave privata come un file con estensione .ppk, adatta per l'uso con il programma Putty.
Indichiamo il nome della chiave (nel nostro caso wireguard-awskey.ppk) e premiamo il pulsante Salva.

3.1.2. Creazione e configurazione della connessione in Putty
3.1.2.1. Creazione della connessione
Apriamo il programma Putty, scegliamo la categoria Session (è aperta di default) e nel campo Host Name inseriamo l'indirizzo IP pubblico del nostro server, che abbiamo ottenuto al passaggio 2.2.3. Nel campo Saved Session inseriamo un nome a nostro piacere per la connessione (nel mio caso wireguard-aws-london), e poi premiamo il pulsante Salva per salvare le modifiche apportate.

3.1.2.2. Configurazione dell'accesso automatico dell'utente
Successivamente, nella categoria Connection, scegliamo la sotto-categoria Dati e nel campo Auto-login username inseriamo il nome utente ubuntu — è l'utente standard dell'istanza su AWS con Ubuntu.

3.1.2.3. Selezione della chiave privata per la connessione SSH
Poi passiamo alla sotto-categoria Connection/SSH/Auth e accanto al campo File della chiave privata per l'autenticazione clicchiamo sul pulsante Sfoglia… per selezionare il file del certificato della chiave.

3.1.2.4. Apertura della chiave importata
Specifichiamo la chiave che abbiamo importato precedentemente nel passaggio 3.1.1.4, nel nostro caso è il file wireguard-awskey.ppk, e facciamo clic sul pulsante Apri.

3.1.2.5. Salvataggio delle impostazioni e avvio della connessione
Tornati alla pagina della categoria Session clicchiamo di nuovo sul pulsante Salva, per salvare le modifiche fatte nei passaggi precedenti (3.1.2.2 — 3.1.2.4). E poi clicchiamo sul pulsante Apri per aprire la connessione remota creata e configurata tramite SSH.

3.1.2.7. Configurazione della fiducia tra gli host
Nel prossimo passaggio, al primo tentativo di connessione, ci viene visualizzato un avviso, non abbiamo configurato la fiducia tra i due computer, e ci si chiede se vogliamo fidarci del computer remoto. Cliccheremo sul pulsante Sì, aggiungendolo così all'elenco degli host fidati.

3.1.2.8. Inserimento della password per accedere alla chiave
Dopo di che si apre una finestra del terminale, dove viene richiesta la password per la chiave, se l'avevate impostata precedentemente nel passaggio 3.1.1.3. Durante l'inserimento della password, non vede alcuna azione sullo schermo. Se commettete un errore, potete usare il tasto Backspace.

3.1.2.9. Messaggio di benvenuto per la connessione riuscita
Dopo aver inserito correttamente la password, nel terminale ci viene mostrato un testo di benvenuto, che informa che il sistema remoto è pronto per eseguire i nostri comandi.

4. Configurazione del server Wireguard
Puoi trovare le istruzioni più aggiornate per l'installazione e l'uso di Wireguard utilizzando gli script descritti di seguito nel repository:
4.1. Installazione di Wireguard
Nel terminale inseriamo i seguenti comandi (puoi copiarli negli appunti e incollarli nel terminale con un clic destro del mouse):
4.1.1. Clonazione del repository
Cloniamo il repository con gli script di installazione di Wireguard
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. Accesso alla directory degli script
Accediamo alla directory del repository clonato
cd wireguard_aws4.1.3. Avvio dello script di inizializzazione
Eseguiamo come amministratore (utente root) lo script di installazione di Wireguard
sudo ./initial.shDurante l'installazione verranno richieste alcune informazioni necessarie per la configurazione di Wireguard
4.1.3.1. Inserimento del punto di collegamento
Inserisci l'indirizzo IP esterno e la porta aperta del server Wireguard. L'indirizzo IP esterno del server è stato ottenuto nel passaggio 2.2.3, mentre la porta è stata aperta nel passaggio 2.1.5. Indicali insieme, separandoli con un colon, per esempio 4.3.2.1:54321, e dopo questo premi il tasto Invio
Esempio di output:
Inserisci l'endpoint (IP esterno e porta) nel formato [ipv4:porta] (es. 4.3.2.1:54321): 4.3.2.1:543214.1.3.2. Inserimento dell'indirizzo IP interno
Inserisci l'indirizzo IP del server Wireguard nella sottorete VPN protetta, se non sai cosa sia, 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] per impostare il default: 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 Cloudflare)
Esempio di output:
Inserisci l'indirizzo IP del server DNS (formato CIDR) ([ENTER] per impostare il default: 1.1.1.1):4.1.3.4. Specifica dell'interfaccia WAN
Successivamente è necessario inserire il nome dell'interfaccia di rete esterna che ascolterà l'interfaccia di rete interna della VPN. Premi semplicemente Invio per impostare il valore di default per AWS (eth0)
Esempio di output:
Inserisci il nome dell'interfaccia di rete WAN ([ENTER] per impostare il default: eth0):4.1.3.5. Specifica del nome del client
Inserisci il nome dell'utente VPN. È importante notare che il server VPN Wireguard non può avviarsi finché non è stato aggiunto almeno un client. In questo caso ho inserito il nome Alex@mobile
Esempio di output:
Inserisci il nome utente VPN: Alex@mobileDopo questo, sullo schermo dovrebbe apparire un codice QR con la configurazione del client 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 nel caso di una configurazione manuale dei client. Come fare sarà spiegato in seguito.

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.shLo script richiede il nome utente:
Esempio di output:
Inserisci il nome utente VPN: Inoltre, il nome utente può essere passato come parametro allo script (in questo caso Alex@mobile):
sudo ./add-client.sh Alex@mobileAl termine dell'esecuzione dello script, nella cartella con il nome del client verrà creato un file con la configurazione del client /etc/wireguard/clients/{ИмяКлиента} verrà visualizzato un codice QR per configurare i client mobili e il contenuto del file di configurazione. /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf4.2.1. File di configurazione utente
Puoi visualizzare sullo schermo il contenuto del file .conf, per la configurazione manuale del client, utilizzando il comando
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf cat
risultato dell'esecuzione: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:54321Descrizione 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 connessione4.2.2. Codice QR della configurazione del client
Per visualizzare il codice QR della configurazione per il client creato in precedenza, è possibile utilizzare il comando qrencode -t ansiutf8 (in questo esempio si utilizza un client con il nome Alex@mobile):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Configurazione dei client VPN
5.1. Impostazione del client mobile Android
Il client ufficiale Wireguard per Android può
Successivamente, è necessario importare la configurazione, leggendo il codice QR della configurazione del client (vedi punto 4.2.2) e assegnargli un nome:

Dopo aver importato con successo la configurazione, è possibile attivare il tunnel VPN. L'icona del lucchetto nella barra di stato di Android indicherà il collegamento riuscito.

5.2. Impostazione del client Windows
Per prima cosa, è necessario scaricare e installare il programma — è un client Wireguard per Windows.
5.2.1. Creazione del file di configurazione per l'importazione
Clicca con il tasto destro per creare un file di testo sul desktop.

5.2.2. Copia del contenuto del file di configurazione dal server
Torna poi al terminale Putty e visualizza il contenuto del file di configurazione per l'utente necessario, come descritto nel passaggio 4.2.1.
Successivamente, seleziona il testo della configurazione nel terminale Putty con il tasto destro del mouse; una volta selezionato, verrà copiato automaticamente negli appunti.

5.2.3. Copia della configurazione nel file di configurazione locale
Dopo di ciò, torna al file di testo precedentemente creato sul desktop e incolla il testo della configurazione dagli appunti.

5.2.4. Salvataggio del file di configurazione locale
Salva il file, con estensione .conf (in questo caso con nome london.conf)

5.2.5. Importazione del file di configurazione locale
Successivamente, è necessario importare il file di configurazione nel programma TunSafe.

5.2.6. Stabilire la connessione VPN
Seleziona questo file di configurazione e connettiti premendo il pulsante Connessione.

6. Verifica del successo della connessione
Per verificare il successo della connessione tramite tunnel VPN, è necessario aprire il browser e andare sul sito

L'indirizzo IP visualizzato deve corrispondere a quello che abbiamo ottenuto al punto 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/ipOppure puoi semplicemente andare su un sito di pornografia, se ti trovi in Kazakistan.
Fonte: habr.com





