Dieses Tutorial zeigt Ihnen, wie Sie Ihren eigenen Web-Proxy unter Ubuntu 16.04 einrichten. Ein Web-Proxy ist eine Website, auf der ein Benutzer eine bestimmte URL eingibt, um die Website zu entsperren. Es gibt eine Vielzahl von Web-Proxy-Skripten, mit denen Sie Ihren eigenen Web-Proxy einrichten können. Glype und PHP-Proxy wird in diesem Tutorial verwendet. Glype ist ein sehr beliebtes Web-Proxy-Skript und PHP-Proxy ist eine gute Alternative. Sie können eine davon auswählen. In meinem Test ist PHP-Proxy schneller und funktioniert besser mit beliebten Websites wie Facebook, Twitter und YouTube, da es aktiv aktualisiert wird. Wir werden sehen, wie man sie mit Apache/Nginx einrichtet und HTTPS mit Let’s Encrypt aktiviert.
Normalerweise verwende ich den Shadowsocks-Proxy und OpenConnect VPN, um die Internetzensur zu umgehen, aber es besteht die Möglichkeit, dass diese beiden Tools in meinem Land blockiert werden. Der Web-Proxy ist eine gute Sicherungsmethode, da er keine Eigenschaften von SOCKS-Proxy und VPN aufweist. In den Augen der Internet-Firewall ist es nur normaler HTTPS-Verkehr. Es gibt Zehntausende von kostenlosen Web-Proxys online. Der Nachteil ist, dass diese öffentlichen Web-Proxys, sobald sie bekannt geworden sind, leicht blockiert werden können. Das Einrichten Ihres eigenen privaten Web-Proxys hat den Vorteil, dass nur Sie von seiner Existenz wissen.
Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie:
- Ein VPS (Virtual Private Server), der frei auf blockierte Websites zugreifen kann (außerhalb Ihres Landes oder Internetfiltersystems) und einen Domainnamen. Für VPS empfehle ich Vultr. Sie bieten einen Hochleistungs-KVM-VPS mit 512 MB Speicher für nur 2,5 $ pro Monat, was perfekt für Ihren privaten Proxy-Server ist.
- Installieren Sie einen Webserver und PHP
Sie benötigen auch einen Domainnamen, damit Sie HTTPS-Verschlüsselung hinzufügen können, um Ihren Webverkehr zu schützen. Ich empfehle den Kauf von Domain-Namen bei NameCheap, da der Preis niedrig ist und Whois-Datenschutz lebenslang kostenlos ist.
Schritt 1:Webserver und PHP installieren
SSH in Ihr Ubuntu 16.04 VPS. Wenn Sie Nginx als Webserver verwenden möchten, installieren Sie Nginx und PHP7, indem Sie den folgenden Befehl ausführen.
sudo apt install nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Wenn Sie Apache als Webserver verwenden möchten, führen Sie
aussudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Schritt 2:Glype oder PHP-Proxy herunterladen
Glype
Laden Sie Glype herunter, indem Sie den folgenden Befehl ausführen.
wget https://www.php-proxy.com/download/glype-1.4.15.zip
Extrahieren Sie es nach /var/www/proxy/
Verzeichnis.
sudo apt install unzip sudo mkdir -p /var/www/proxy/ sudo unzip glype-1.4.15.zip -d /var/www/proxy/
Setzen Sie www-data
(Webserver-Benutzer) als Besitzer.
sudo chown www-data:www-data /var/www/proxy/ -R
PHP-Proxy
Wir können Composer verwenden, um PHP-Proxy herunterzuladen. Installieren Sie Composer aus dem Ubuntu 16.04-Repository.
sudo apt install composer
Laden Sie dann PHP-Proxy nach /var/www/proxy/
herunter Verzeichnis.
sudo mkdir -p /var/www/proxy/ sudo composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/
Setzen Sie www-data
(Webserver-Benutzer) als Besitzer.
sudo chown www-data:www-data /var/www/proxy/ -R
Schritt 3:Webserver konfigurieren
In diesem Schritt müssen wir einen Nginx-Serverblock oder einen virtuellen Apache-Host für unseren Webproxy erstellen.
Nginx-Serverblock erstellen
Erstellen Sie einen Serverblock unter /etc/nginx/conf.d/
Verzeichnis.
sudo nano /etc/nginx/conf.d/web-proxy.conf
Kopieren Sie die folgenden Zeilen und fügen Sie sie in die Datei ein. Ersetzen Sie proxy.example.com
mit Ihrem echten Domainnamen. Vergessen Sie nicht, einen A-Eintrag in Ihrem DNS-Manager einzurichten.
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; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginx
Erstellen Sie einen virtuellen Apache-Host
Erstellen Sie einen virtuellen Apache-Host in /etc/apache2/sites-avaialable/
Verzeichnis.
sudo nano /etc/apache2/sites-available/web-proxy.conf
Kopieren Sie die folgenden Zeilen und fügen Sie sie in die Datei ein. Ersetzen Sie proxy.example.com
mit Ihrem echten Domainnamen. Vergessen Sie nicht, einen A-Eintrag in Ihrem DNS-Manager einzurichten.
<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>
Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.
sudo a2ensite web-proxy.conf
Laden Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl reload apache2
Das Webinterface
Besuchen Sie jetzt proxy.example.com
in Ihrem Webbrowser. Wenn Sie Glype verwenden, werden Sie zum Admin-Kontrollfeld (proxy.example.com/admin.php
) weitergeleitet ).
Wenn Sie PHP-Proxy verwenden, sehen Sie einen funktionierenden Web-Proxy, der darauf wartet, dass Sie eine URL eingeben.
Lassen Sie uns nun HTTPS mit Let’s Encrypt aktivieren.
Schritt 4:Aktivieren Sie HTTPS mit Let’s Encrypt für Ihren Web-Proxy
Wir können den Let’s Encrypt-Client (certbot) vom offiziellen PPA installieren, indem wir die folgenden Befehle ausführen.
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot
Nginx Benutzer müssen außerdem das Certbot Nginx-Plugin installieren.
sudo apt install python-certbot-nginx
Aktivieren Sie HTTPS mit dem Nginx-Plugin.
sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address
Apache Benutzer müssen das Certbot Apache-Plugin installieren.
sudo apt install python-certbot-apache
Aktivieren Sie HTTPS mit dem Apache-Plugin.
sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address
Wenn Sie die folgende Fehlermeldung erhalten.
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.
Bitte lesen Sie diesen Beitrag im Let’s Encrypt-Forum, um das Problem zu beheben.
Sobald das Zertifikat erfolgreich installiert wurde, aktualisieren Sie Ihren Proxy in Ihrem Webbrowser, um HTTPS zu verwenden.
(Optional) Setzen Sie Ihren Web-Proxy hinter CDN
Es gibt mindestens drei Möglichkeiten, wie ein Internetzensur eine Website blockieren kann:
- Blockieren Sie die IP-Adresse der Website.
- Hijack die DNS-Antwort, um dem Endbenutzer eine falsche IP-Adresse zu geben.
- Blockieren Sie die TLS-Verbindung, indem Sie sich die Server Name Indication (SNI) ansehen
Wenn Sie befürchten, dass Ihr Web-Proxy von Internet-Zensoren blockiert wird, können Sie Ihren Web-Proxy hinter ein CDN (Content Delivery Network) wie Cloudflare stellen. Auf diese Weise wird Ihre Server-IP-Adresse verborgen, und wenn der Internetzensor beschließt, die IP-Adresse von Cloudflare zu blockieren, entsteht ein Kollateralschaden, da viele andere Websites ebenfalls dieselbe IP-Adresse verwenden. Dies wird den Internetzensur veranlassen, es sich zweimal zu überlegen, bevor er dies tut.
Um DNS-Poison zu verhindern, sollte der Endbenutzer DNS über TLS oder DNS über HTTPS verwenden. Um zu verhindern, dass SNI-Informationen weitergegeben werden, sollte die Website verschlüsseltes SNI verwenden.
Schlussfolgerung
Das ist es! Ich hoffe, dieses Tutorial hat Ihnen geholfen, Ihren eigenen Web-Proxy unter Ubuntu 16.04 zu erstellen. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten.