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 .
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* basato sulla tecnologia , nell'infrastruttura cloud (AWS), utilizzando un account gratuito (per 12 mesi), su un'istanza (macchina virtuale) che esegue .
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
- AWS fornisce per un periodo di 12 mesi, con un limite di 15 gigabyte di traffico al mese.
- L'ultima versione di questa guida è disponibile 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 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 o . 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:
Clicca sul pulsante «Registrazione»

1.2. Compilazione dei dati personali
Compila i dati e clicca sul pulsante «Continua»

1.3. Compilazione dei dati di contatto
Compila 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 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.

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, è consigliato testare la velocità di accesso ai data center più vicini; nella mia posizione i risultati sono i seguenti:
- Singapore

- Parigi

- Francoforte

- Stoccolma

- Londra

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

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

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

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

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 49152—65535. In questo caso, ho scelto il numero di porta 54321.

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

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

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

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

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

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

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

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

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.

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

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.

Ora possiamo connetterci alla nostra nuova istanza dall'esterno, dal nostro computer tramite SSH.
3. Connessione all'istanza AWS
— è 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 .
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

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

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

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.

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.

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.

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.

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.

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.

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 Sì, aggiungendolo così all'elenco degli host fidati.

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.

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.

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:
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_aws4.1.2. Accesso alla directory con gli script
Accediamo alla directory con il repository clonato
cd wireguard_aws4.1.3 Esecuzione dello script di inizializzazione
Eseguiamo come amministratore (utente root) lo script di installazione di Wireguard
sudo ./initial.shDurante 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:543214.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@mobileDopo 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.

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 fornito come parametro dello script (in questo caso Alex@mobile):
sudo ./add-client.sh Alex@mobileA 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.confrisultato 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. 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 ansiutf85. Configurazione dei client VPN
5.1. Configurazione del client mobile Android
Il client ufficiale Wireguard per Android può essere
Dopo di che, è necessario importare la configurazione, leggendo il codice QR della configurazione del cliente (vedi punto 4.2.2) e dare un nome;

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.

5.2. Configurazione del client Windows
Inizialmente, è necessario scaricare e installare il programma — è 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.

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.

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.

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

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

5.2.6. Stabilire una connessione VPN
Selezionare questo file di configurazione e connettersi premendo il pulsante Connect.

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

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/ipOppure si può semplicemente andare su un sito per adulti, se si è in Kazakistan.
Fonte: habr.com





