Questo tutorial ti mostra come configurare il tuo proxy web su Ubuntu 16.04. Un proxy Web è un sito Web in cui un utente immette un URL specifico per sbloccare il sito Web. Esistono numerosi script proxy Web che possono essere utilizzati per configurare il proprio proxy Web. Glipe e Proxy PHP sarà utilizzato in questo tutorial. Glipe è uno script proxy Web molto popolare e PHP-Proxy è una buona alternativa. Puoi sceglierne uno. Nel mio test, PHP-Proxy è più veloce e funziona meglio con siti Web popolari come Facebook, Twitter e YouTube, perché viene aggiornato attivamente. Vedremo come configurarli con Apache/Nginx e abilitare HTTPS con Let's Encrypt.
Normalmente utilizzo il proxy Shadowsocks e OpenConnect VPN per aggirare la censura di Internet, ma è possibile che questi due strumenti vengano bloccati nel mio paese. Il proxy Web è un buon metodo di backup in quanto non ha alcuna caratteristica del proxy SOCKS e della VPN. Agli occhi del firewall Internet, è solo un normale traffico HTTPS. Ci sono decine di migliaia di proxy web gratuiti online. Lo svantaggio è che una volta che questi proxy web pubblici diventano noti, possono essere facilmente bloccati. Configurare il tuo proxy web privato ha il vantaggio che solo tu ne sai l'esistenza.
Prerequisiti
Per seguire questo tutorial, avrai bisogno di:
- Un VPS (Virtual Private Server) che può accedere liberamente ai siti Web bloccati (al di fuori del tuo paese o sistema di filtraggio Internet) e un nome di dominio. Per VPS, consiglio Vultr. Offrono 512 M di memoria VPS KVM ad alte prestazioni per soli $ 2,5 al mese, perfetto per il tuo server proxy privato.
- Installa un server web e PHP
Hai anche bisogno di un nome di dominio, quindi potrai aggiungere la crittografia HTTPS per proteggere il tuo traffico web. Consiglio di acquistare i nomi di dominio da NameCheap perché il prezzo è basso e offrono protezione della privacy a Whois gratuita per tutta la vita.
Fase 1:installa Web Server e PHP
SSH nel tuo VPS Ubuntu 16.04. Se ti piace usare Nginx come server web, installa Nginx e PHP7 eseguendo il comando seguente.
sudo apt install nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Se ti piace usare Apache come server web, esegui
sudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Fase 2:scarica Glype o PHP-Proxy
Glype
Scarica Glype eseguendo il comando seguente.
wget https://www.php-proxy.com/download/glype-1.4.15.zip
Estrailo in /var/www/proxy/
directory.
sudo apt install unzip sudo mkdir -p /var/www/proxy/ sudo unzip glype-1.4.15.zip -d /var/www/proxy/
Imposta www-data
(utente del server web) in qualità di proprietario.
sudo chown www-data:www-data /var/www/proxy/ -R
Proxy PHP
Possiamo usare Composer per scaricare PHP-Proxy. Installa Composer dal repository Ubuntu 16.04.
sudo apt install composer
Quindi scarica PHP-Proxy su /var/www/proxy/
directory.
sudo mkdir -p /var/www/proxy/ sudo composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/
Imposta www-data
(utente del server web) in qualità di proprietario.
sudo chown www-data:www-data /var/www/proxy/ -R
Fase 3:Configura il server Web
In questo passaggio, dobbiamo creare un blocco server Nginx o un host virtuale Apache per il nostro proxy web.
Crea blocco server Nginx
Crea un blocco server in /etc/nginx/conf.d/
directory.
sudo nano /etc/nginx/conf.d/web-proxy.conf
Copia e incolla le seguenti righe nel file. Sostituisci proxy.example.com
con il tuo vero nome di dominio. Non dimenticare di impostare un record nel tuo gestore DNS.
server { listen 80; server_name proxy.example.com; root /var/www/proxy/; index index.php; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } }
Salva e chiudi il file. Quindi testa le configurazioni di Nginx.
sudo nginx -t
Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.
sudo systemctl reload nginx
Crea host virtuale Apache
Crea un host virtuale Apache in /etc/apache2/sites-avaialable/
directory.
sudo nano /etc/apache2/sites-available/web-proxy.conf
Copia e incolla le seguenti righe nel file. Sostituisci proxy.example.com
con il tuo vero nome di dominio. Non dimenticare di impostare un record nel tuo gestore DNS.
<VirtualHost *:80> ServerName proxy.example.com DocumentRoot /var/www/proxy ErrorLog ${APACHE_LOG_DIR}/proxy.error.log CustomLog ${APACHE_LOG_DIR}/proxy.access.log combined </VirtualHost>
Salva e chiudi il file. Quindi abilita questo host virtuale.
sudo a2ensite web-proxy.conf
Ricarica Apache per rendere effettive le modifiche.
sudo systemctl reload apache2
L'interfaccia web
Ora visita proxy.example.com
nel tuo browser web. Se utilizzi Glype, verrai reindirizzato al pannello di controllo dell'amministratore (proxy.example.com/admin.php
).
Se utilizzi PHP-Proxy, puoi vedere un proxy web funzionante in attesa che tu inserisca un URL.
Ora abilitiamo HTTPS con Let's Encrypt.
Fase 4:abilita HTTPS con Let's Encrypt per il tuo proxy web
Possiamo installare il client Let's Encrypt (certbot) dal PPA ufficiale eseguendo i seguenti comandi.
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot
Nginx gli utenti devono anche installare il plug-in Certbot Nginx.
sudo apt install python-certbot-nginx
Abilita HTTPS con il plug-in Nginx.
sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address
Apache gli utenti devono installare il plug-in Certbot Apache.
sudo apt install python-certbot-apache
Abilita HTTPS con il plugin Apache.
sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address
Se viene visualizzato il seguente messaggio di errore.
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.
Dai un'occhiata a questo post sul forum Let's Encrypt per risolverlo.
Una volta che il certificato è stato installato correttamente, aggiorna il tuo proxy nel tuo browser web per usare HTTPS.
(Facoltativo) Mettere il tuo proxy web dietro la CDN
Esistono almeno tre modi in cui un censore di Internet può bloccare un sito Web:
- Blocca l'indirizzo IP del sito web.
- Dirottare la risposta DNS per fornire all'utente finale un indirizzo IP errato.
- Blocca la connessione TLS guardando la Server Name Indication (SNI)
Se sei preoccupato che il tuo proxy web venga bloccato dai censori di Internet, puoi mettere il tuo proxy web dietro una CDN (Content Delivery Network) come Cloudflare. In questo modo, l'indirizzo IP del tuo server viene nascosto e se il censore di Internet decide di bloccare l'indirizzo IP di Cloudflare, ci saranno danni collaterali poiché ci sono molti altri siti Web che utilizzano anche lo stesso indirizzo IP. Questo farà pensare due volte alla censura di Internet prima di farlo.
Per prevenire DNS poison, l'utente finale deve utilizzare DNS su TLS o DNS su HTTPS. Per evitare la divulgazione delle informazioni SNI, il sito Web dovrebbe utilizzare SNI crittografati.
Conclusione
Questo è tutto! Spero che questo tutorial ti abbia aiutato a creare il tuo proxy web su Ubuntu 16.04. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri suggerimenti e trucchi.