Con la crescente censura di Internet da parte di regimi autoritari, un numero crescente di risorse e siti Internet utili viene bloccato. Comprese le informazioni tecniche.
Pertanto, diventa impossibile utilizzare pienamente Internet e viola il diritto fondamentale alla libertà di parola, sancito da dichiarazione Universale dei Diritti Umani.
Articolo 19
Ognuno ha diritto alla libertà di opinione e di espressione; questo diritto include la libertà di avere opinioni senza interferenze e di cercare, ricevere e diffondere informazioni e idee attraverso qualsiasi mezzo e indipendentemente dalle frontiere
In questa guida, distribuiremo il nostro freeware* in 6 passaggi. Servizio VPN basato sulla tecnologia Gabbia di protezione, nell'infrastruttura cloud Amazon Web Services (AWS), utilizzando un account gratuito (per 12 mesi), su un'istanza (macchina virtuale) gestita da Server Ubuntu 18.04 LTS.
Ho cercato di rendere questa procedura dettagliata il più amichevole possibile per le persone non IT. L'unica cosa che è richiesta è la perseveranza nel ripetere i passaggi descritti di seguito.
Nota
AWS fornisce livello di utilizzo gratuito per un periodo di 12 mesi, con un limite di 15 gigabyte di traffico al mese.
La registrazione per un account AWS gratuito richiede un numero di telefono reale e una carta di credito Visa o Mastercard valida. Consiglio di utilizzare le carte virtuali fornite gratuitamente Yandex o portafoglio qiwi. Per verificare la validità della carta, durante la registrazione viene detratto $ 1, che viene successivamente restituito.
Numero della carta, data di scadenza e nome del titolare della carta.
1.5. Verifica dell'account
A questo punto, il numero di telefono viene confermato e $ 1 viene addebitato direttamente sulla carta di pagamento. Sullo schermo del computer viene visualizzato un codice a 4 cifre e il telefono specificato riceve una chiamata da Amazon. Durante una chiamata è necessario comporre il codice visualizzato sullo schermo.
1.6. Scelta del piano tariffario.
Scegli - Piano di base (gratuito)
1.7. Accedi alla console di gestione
1.8. Scelta della posizione del data center
1.8.1. Test di velocità
Prima di scegliere un data center, si consiglia di testare https://speedtest.net velocità di accesso ai data center più vicini, nella mia località i seguenti risultati:
Singapore
Parigi
Francoforte
Stoccolma
Londra
Il data center di Londra mostra i migliori risultati in termini di velocità. Quindi l'ho scelto per un'ulteriore personalizzazione.
2. Crea un'istanza AWS
2.1 Creare una macchina virtuale
2.1.1. Selezione di un tipo di istanza
Per impostazione predefinita, l'istanza t2.micro è selezionata, che è ciò di cui abbiamo bisogno, basta premere il pulsante Successivo: Configura i dettagli dell'istanza
2.1.2. Impostazione delle opzioni di istanza
In futuro collegheremo un IP pubblico permanente alla nostra istanza, quindi in questa fase disattiviamo l'assegnazione automatica di un IP pubblico e premiamo il pulsante Successivo: Aggiungi spazio di archiviazione
2.1.3. Connessione di archiviazione
Specificare la dimensione del "disco rigido". Per i nostri scopi sono sufficienti 16 gigabyte e premiamo il pulsante Successivo: Aggiungi tag
2.1.4. Impostazione dei tag
Se abbiamo creato diverse istanze, allora potrebbero essere raggruppate per tag per facilitare l'amministrazione. In questo caso questa funzionalità è superflua, premi subito il pulsante Avanti: Configura il gruppo di sicurezza
2.1.5. Porti di apertura
In questo passaggio, configuriamo il firewall aprendo le porte richieste. L'insieme delle porte aperte è chiamato gruppo di sicurezza. Dobbiamo creare un nuovo gruppo di sicurezza, assegnargli un nome, una descrizione, aggiungere una porta UDP (Custom UDP Rule), nel campo Rort Range, assegnare un numero di porta dall'intervallo porti dinamici 49152-65535. In questo caso, ho scelto il numero di porta 54321.
Dopo aver inserito i dati richiesti, cliccare sul pulsante Rivedi e avvia
2.1.6. Panoramica di tutte le impostazioni
In questa pagina c'è una panoramica di tutte le impostazioni della nostra istanza, controlliamo se tutte le impostazioni sono in ordine e premiamo il pulsante Lancio
2.1.7. Creazione di chiavi di accesso
Successivamente viene visualizzata una finestra di dialogo che offre di creare o aggiungere una chiave SSH esistente, con la quale in seguito ci connetteremo in remoto alla nostra istanza. Selezioniamo l'opzione "Crea una nuova coppia di chiavi" per creare una nuova chiave. Assegnagli un nome e fai clic sul pulsante Scarica Key Pairper scaricare le chiavi generate. Salvali in un posto sicuro sul tuo computer locale. Una volta scaricato, fai clic sul pulsante. Istanze di lancio
2.1.7.1. Salvataggio delle chiavi di accesso
Qui viene mostrato il passaggio di salvataggio delle chiavi generate dal passaggio precedente. Dopo aver premuto il pulsante Scarica Key Pair, la chiave viene salvata come file di certificato con estensione *.pem. In questo caso gli ho dato un nome wireguard-awskey.pem
2.1.8. Panoramica dei risultati della creazione di istanze
Successivamente, vediamo un messaggio sull'avvio riuscito dell'istanza che abbiamo appena creato. Possiamo andare all'elenco delle nostre istanze facendo clic sul pulsante visualizzare le istanze
2.2. Creazione di un indirizzo IP esterno
2.2.1. Avvio della creazione di un IP esterno
Successivamente, dobbiamo creare un indirizzo IP esterno permanente attraverso il quale ci collegheremo al nostro server VPN. Per fare ciò, nel pannello di navigazione sul lato sinistro dello schermo, seleziona la voce IP elastici dalla categoria RETE E SICUREZZA e premere il pulsante Assegna nuovo indirizzo
2.2.2. Configurazione della creazione di un IP esterno
Nel passaggio successivo, dobbiamo abilitare l'opzione Piscina amazzonica (abilitato per impostazione predefinita) e fare clic sul pulsante assegnare
2.2.3. Panoramica dei risultati della creazione di un indirizzo IP esterno
La schermata successiva mostrerà l'indirizzo IP esterno che abbiamo ricevuto. Si consiglia di memorizzarlo ed è meglio anche scriverlo. tornerà utile più di una volta nel processo di ulteriore configurazione e utilizzo del server VPN. In questa guida, utilizzo l'indirizzo IP come esempio. 4.3.2.1. Una volta inserito l'indirizzo, premere il pulsante Chiudi
2.2.4. Elenco di indirizzi IP esterni
Successivamente, ci viene presentato un elenco dei nostri indirizzi IP pubblici permanenti (IP elastici).
2.2.5. Assegnazione di un IP esterno a un'istanza
In questo elenco, selezioniamo l'indirizzo IP che abbiamo ricevuto e premiamo il tasto destro del mouse per visualizzare un menu a discesa. In esso, seleziona l'elemento indirizzo associatoper assegnarlo all'istanza che abbiamo creato in precedenza.
Nel passaggio successivo, seleziona la nostra istanza dall'elenco a discesa e premi il pulsante Associate
2.2.7. Panoramica dei risultati dell'assegnazione di indirizzi IP esterni
Successivamente, possiamo vedere che la nostra istanza e il suo indirizzo IP privato sono associati al nostro indirizzo IP pubblico permanente.
Ora possiamo connetterci alla nostra istanza appena creata dall'esterno, dal nostro computer tramite SSH.
3. Connettiti a un'istanza AWS
SSH è un protocollo sicuro per il controllo remoto dei dispositivi informatici.
3.1. Connessione tramite SSH da un computer Windows
Per connetterti a un computer Windows, devi prima scaricare e installare il programma stucco.
3.1.1. Importa la chiave privata per Putty
3.1.1.1. Dopo aver installato Putty, è necessario eseguire l'utilità PuTTYgen fornita con esso per importare la chiave del certificato in formato PEM, in un formato adatto all'uso in Putty. Per fare ciò, seleziona la voce nel menu in alto Conversioni->Importa chiave
3.1.1.2. Scelta di una chiave AWS in formato PEM
Successivamente, seleziona la chiave che abbiamo precedentemente salvato nel passaggio 2.1.7.1, nel nostro caso il suo nome wireguard-awskey.pem
3.1.1.3. Impostazione delle opzioni di importazione chiave
A questo punto, dobbiamo specificare un commento per questa chiave (descrizione) e impostare una password e una conferma per sicurezza. Verrà richiesto ogni volta che ti connetti. Pertanto, proteggiamo la chiave con una password da un uso inappropriato. Non è necessario impostare una password, ma è meno sicuro se la chiave cade nelle mani sbagliate. Dopo aver premuto il pulsante Salva chiave privata
3.1.1.4. Salvataggio di una chiave importata
Si apre una finestra di dialogo di salvataggio del file e salviamo la nostra chiave privata come file con estensione .ppkadatto per l'uso nel programma stucco.
Specificare il nome della chiave (nel nostro caso wireguard-awskey.ppk) e premere il pulsante Salva.
3.1.2. Creazione e configurazione di una connessione in Putty
3.1.2.1. Crea una connessione
Apri il programma Putty, seleziona una categoria Sessione (è aperto per impostazione predefinita) e sul campo Host Name inserire l'indirizzo IP pubblico del nostro server, che abbiamo ricevuto nel passaggio 2.2.3. In campo Sessione salvata inserisci un nome arbitrario per la nostra connessione (nel mio caso wireguard-aws-londra), quindi premere il pulsante Risparmi per salvare le modifiche apportate.
Altro nella categoria Connessione, scegli una sottocategoria Dati e sul campo Nome utente di accesso automatico inserire username ubuntu è l'utente standard dell'istanza su AWS con Ubuntu.
3.1.2.3. Scelta di una chiave privata per la connessione tramite SSH
Quindi vai alla sottocategoria Connessione/SSH/Aut e accanto al campo File di chiave privata per l'autenticazione clicca sul pulsante Sfoglia ... per selezionare un file con un certificato chiave.
3.1.2.4. Apertura di una chiave importata
Specificare la chiave che abbiamo importato in precedenza al passaggio 3.1.1.4, nel nostro caso è un file wireguard-awskey.ppke premere il pulsante aperto.
3.1.2.5. Salvataggio delle impostazioni e avvio di una connessione
Ritorno alla pagina delle categorie Sessione premere nuovamente il pulsante Risparmi, per salvare le modifiche apportate in precedenza nei passaggi precedenti (3.1.2.2 - 3.1.2.4). E poi premiamo il pulsante Apri per aprire la connessione SSH remota che abbiamo creato e configurato.
3.1.2.7. Impostazione della fiducia tra gli host
Nel passaggio successivo, la prima volta che proviamo a connetterci, ci viene dato un avviso, non abbiamo fiducia configurata tra i due computer e ci chiede se fidarci del computer remoto. Premeremo il pulsante Sì, aggiungendolo quindi all'elenco degli host attendibili.
3.1.2.8. Immissione di una password per accedere alla chiave
Dopodiché, si apre una finestra di terminale, in cui ti viene chiesta la password per la chiave, se l'hai impostata in precedenza al passaggio 3.1.1.3. Quando si immette una password, non si verifica alcuna azione sullo schermo. Se commetti un errore, puoi usare la chiave Backspace.
3.1.2.9. Messaggio di benvenuto in caso di connessione riuscita
Dopo aver inserito correttamente la password, ci viene mostrato un testo di benvenuto nel terminale, che ci dice che il sistema remoto è pronto per eseguire i nostri comandi.
4. Configurazione del server Wireguard
Le istruzioni più aggiornate per l'installazione e l'utilizzo di Wireguard utilizzando gli script descritti di seguito sono disponibili nel repository: https://github.com/isystem-io/wireguard-aws
4.1. Installazione di Wireguard
Nel terminale, inserisci i seguenti comandi (puoi copiare negli appunti e incollare nel terminale premendo il tasto destro del mouse):
4.1.1. Clonazione di un repository
Clona il repository con gli script di installazione di Wireguard
Esegui come amministratore (utente root) lo script di installazione di Wireguard
sudo ./initial.sh
Il processo di installazione richiederà alcuni dati necessari per configurare Wireguard
4.1.3.1. Ingresso punto di connessione
Immettere l'indirizzo IP esterno e aprire la porta del server Wireguard. Abbiamo ottenuto l'indirizzo IP esterno del server nel passaggio 2.2.3 e aperto la porta nel passaggio 2.1.5. Li indichiamo insieme, separandoli con i due punti, per esempio 4.3.2.1:54321e quindi premere il tasto entrare Esempio di output:
Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321
4.1.3.2. Immissione dell'indirizzo IP interno
Inserisci l'indirizzo IP del server Wireguard sulla sottorete VPN sicura, se non sai qual è, basta premere il tasto Invio per impostare il valore predefinito (10.50.0.1) Esempio di output:
Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):
4.1.3.3. Specifica di un server DNS
Immettere l'indirizzo IP del server DNS o premere semplicemente il tasto Invio per impostare il valore predefinito 1.1.1.1 (DNS pubblico di Cloudflare) Esempio di output:
Enter the ip address of the server DNS (CIDR format) ([ENTER] set to 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à sull'interfaccia di rete interna VPN. Basta premere Invio per impostare il valore predefinito per AWS (eth0) Esempio di output:
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5. Specificando il nome del cliente
Immettere il nome dell'utente VPN. Il fatto è che il server VPN Wireguard non sarà in grado di avviarsi fino a quando non sarà stato aggiunto almeno un client. In questo caso, ho inserito il nome Alex@mobile Esempio di output:
Enter VPN user name: Alex@mobile
Successivamente, sullo schermo dovrebbe essere visualizzato un codice QR con la configurazione del client appena aggiunto, che deve essere letto utilizzando il client mobile Wireguard su Android o iOS per configurarlo. E anche sotto il codice QR, verrà visualizzato il testo del file di configurazione in caso di configurazione manuale dei client. Come fare questo sarà discusso 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.sh
Lo script richiede un nome utente: Esempio di output:
Enter VPN user name:
Inoltre, il nome degli utenti può essere passato come parametro di script (in questo caso Alex@mobile):
sudo ./add-client.sh Alex@mobile
Come risultato dell'esecuzione dello script, nella directory con il nome del client lungo il percorso /etc/wireguard/clients/{ИмяКлиента} verrà creato il file di configurazione del client /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.confe lo schermo del terminale visualizzerà un codice QR per l'impostazione dei client mobili e il contenuto del file di configurazione.
4.2.1. File di configurazione dell'utente
È possibile visualizzare sullo schermo il contenuto del file .conf, per la configurazione manuale del client, utilizzando il comando cat
Descrizione del file di configurazione del client:
[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом
[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все - 0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения
4.2.2. Codice QR per la configurazione del client
È possibile visualizzare un codice QR di configurazione per un client precedentemente creato sullo schermo del terminale utilizzando il comando qrencode -t ansiutf8 (in questo esempio viene utilizzato il client denominato Alex@mobile):
Dopodiché è necessario importare la configurazione leggendo il QR code con la configurazione del client (vedi paragrafo 4.2.2) e dargli un nome:
Dopo aver importato correttamente la configurazione, puoi abilitare il tunnel VPN. Una connessione riuscita verrà indicata da una chiave nascosta nella barra delle applicazioni di Android
5.2. Configurazione del client Windows
Per prima cosa devi scaricare e installare il programma TunSafe per Windows è il client Wireguard per Windows.
5.2.1. Creazione di un file di configurazione di importazione
Fare clic con il pulsante destro del mouse per creare un file di testo sul desktop.
5.2.2. Copia il contenuto del file di configurazione dal server
Quindi torniamo al terminale Putty e visualizziamo il contenuto del file di configurazione dell'utente desiderato, come descritto al punto 4.2.1.
Successivamente, fai clic con il pulsante destro del mouse sul testo di configurazione nel terminale Putty, dopo che la selezione è stata completata, verrà automaticamente copiato negli appunti.
5.2.3. Copia della configurazione in un file di configurazione locale
In questo campo, torniamo al file di testo che abbiamo creato in precedenza sul desktop e vi incolliamo il testo di configurazione dagli appunti.
5.2.4. Salvataggio di un file di configurazione locale
Salva il file con estensione .conf (in questo caso denominato 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. Configurazione di una connessione VPN
Seleziona questo file di configurazione e connettiti facendo clic sul pulsante Connettiti.
6. Verifica se la connessione ha avuto successo
Per verificare il buon esito della connessione attraverso il tunnel VPN, è necessario aprire un browser e recarsi sul sito https://2ip.ua/ru/
L'indirizzo IP visualizzato deve corrispondere a quello che abbiamo ricevuto nel passaggio 2.2.3.
In tal caso, il tunnel VPN funziona correttamente.
Dal terminale Linux, puoi controllare il tuo indirizzo IP digitando:
curl http://zx2c4.com/ip
Oppure puoi semplicemente andare su pornhub se sei in Kazakistan.