Tento tutoriál vám ukáže, jak nastavit svůj vlastní webový proxy na Ubuntu 16.04. Web proxy je webová stránka, kde uživatel zadá konkrétní URL pro odblokování webové stránky. Existuje velké množství skriptů webového proxy, které lze použít k nastavení vlastního webového proxy. Glype a PHP-Proxy budou použity v tomto tutoriálu. Glype je velmi oblíbený webový proxy skript a PHP-Proxy je dobrou alternativou. Můžete si vybrat jednu z nich. V mém testu je PHP-Proxy rychlejší a funguje lépe s oblíbenými weby jako Facebook, Twitter a YouTube, protože se aktivně aktualizuje. Uvidíme, jak je nastavit pomocí Apache/Nginx a povolit HTTPS pomocí Let’s Encrypt.
Normálně používám proxy Shadowsocks a OpenConnect VPN, abych obešel internetovou cenzuru, ale existuje možnost, že by tyto dva nástroje byly v mé zemi zablokovány. Web proxy je dobrá metoda zálohování, protože nemá žádné vlastnosti SOCKS proxy a VPN. V očích internetového firewallu je to jen normální HTTPS provoz. Na internetu jsou desítky tisíc bezplatných webových proxy. Nevýhodou je, že jakmile se tyto veřejné webové proxy stanou známými, lze je snadno zablokovat. Nastavení vlastního privátního webového proxy má tu výhodu, že jeho existenci znáte pouze vy.
Předpoklady
Abyste mohli postupovat podle tohoto návodu, budete potřebovat:
- VPS (Virtual Private Server), který může volně přistupovat k blokovaným webovým stránkám (mimo vaši zemi nebo systém filtrování internetu) a název domény. Pro VPS doporučuji Vultr. Nabízejí 512M paměti vysoce výkonné KVM VPS za pouhých 2,5 $ měsíčně, což je ideální pro váš soukromý proxy server.
- Nainstalujte webový server a PHP
Potřebujete také název domény, takže budete moci přidat šifrování HTTPS pro ochranu vašeho webového provozu. Doporučuji nákup doménových jmen od NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.
Krok 1:Instalace webového serveru a PHP
SSH do vašeho Ubuntu 16.04 VPS. Pokud chcete používat Nginx jako webový server, nainstalujte Nginx a PHP7 provedením následujícího příkazu.
sudo apt install nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Pokud chcete používat Apache jako webový server, spusťte
sudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Krok 2:Stáhněte si Glype nebo PHP-Proxy
Glype
Stáhněte si Glype spuštěním následujícího příkazu.
wget https://www.php-proxy.com/download/glype-1.4.15.zip
Rozbalte jej do /var/www/proxy/
adresář.
sudo apt install unzipsudo mkdir -p /var/www/proxy/sudo unzip glype-1.4.15.zip -d /var/www/proxy/
Nastavte www-data
(uživatel webového serveru) jako vlastník.
sudo chown www-data:www-data /var/www/proxy/ -R
PHP-Proxy
Ke stažení PHP-Proxy můžeme použít Composer. Nainstalujte Composer z úložiště Ubuntu 16.04.
skladatel instalace sudo apt
Poté si stáhněte PHP-Proxy do /var/www/proxy/
adresář.
sudo mkdir -p /var/www/proxy/sudo skladatel create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/
Nastavte www-data
(uživatel webového serveru) jako vlastník.
sudo chown www-data:www-data /var/www/proxy/ -R
Krok 3:Konfigurace webového serveru
V tomto kroku potřebujeme vytvořit blok serveru Nginx nebo virtuálního hostitele Apache pro náš web proxy.
Vytvořit blok serveru Nginx
Vytvořte blok serveru pod /etc/nginx/conf.d/
adresář.
sudo nano /etc/nginx/conf.d/web-proxy.conf
Zkopírujte a vložte následující řádky do souboru. Nahraďte proxy.example.com
s vaším skutečným názvem domény. Nezapomeňte si ve správci DNS nastavit záznam A.
server { poslouchat 80; název_serveru proxy.example.com; root /var/www/proxy/; index index.php; umístění / { try_files $uri $uri/ /index.php; } umístění ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; zahrnout fastcgi_params; include snippets/fastcgi-php.conf; }}
Uložte a zavřete soubor. Poté otestujte konfigurace Nginx.
sudo nginx -t
Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.
sudo systemctl reload nginx
Vytvoření virtuálního hostitele Apache
Vytvořte virtuální hostitele Apache v /etc/apache2/sites-avaialable/
adresář.
sudo nano /etc/apache2/sites-available/web-proxy.conf
Zkopírujte a vložte následující řádky do souboru. Nahraďte proxy.example.com
s vaším skutečným názvem domény. Nezapomeňte si ve správci DNS nastavit záznam A.
ServerName proxy.example.com DocumentRoot /var/www/proxy ErrorLog ${APACHE_LOG_DIR}/proxy.error.log CustomLog ${APACHE_LOG_DIR}/proxy.access.log kombinovaný Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele.
sudo a2ensite web-proxy.confZnovu načtěte Apache, aby se změny projevily.
sudo systemctl reload apache2Webové rozhraní
Nyní navštivte
proxy.example.com
ve vašem webovém prohlížeči. Pokud používáte Glype, budete přesměrováni na ovládací panel správce (proxy.example.com/admin.php
).
Pokud používáte PHP-Proxy, můžete vidět fungující web proxy, který čeká na zadání adresy URL.
Nyní povolme HTTPS pomocí Let's Encrypt.
Krok 4:Povolte HTTPS pomocí Let's Encrypt for Your Web Proxy
Klienta Let’s Encrypt (certbot) můžeme nainstalovat z oficiálního PPA provedením následujících příkazů.
sudo apt install software-properties-commonsudo add-apt-repository ppa:certbot/certbotsudo apt updatesudo apt install certbotNginx uživatelé si také musí nainstalovat plugin Certbot Nginx.
sudo apt install python-certbot-nginxPovolte HTTPS pomocí pluginu Nginx.
sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --e-mail na vaši-e-mailovou-adresuApache uživatelé si musí nainstalovat plugin Certbot Apache.
sudo apt install python-certbot-apachePovolte HTTPS pomocí pluginu Apache.
sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email na vaši-e-mailovou-adresuPokud se zobrazí následující chybová zpráva.
Klient s aktuálně vybraným autentizátorem nepodporuje žádnou kombinaci výzev, které uspokojí CA.Chcete-li to opravit, podívejte se na tento příspěvek na fóru Let’s Encrypt.
Jakmile je certifikát úspěšně nainstalován, obnovte proxy ve svém webovém prohlížeči, abyste mohli používat HTTPS.
(Volitelné) Umístění vašeho webového proxy za CDN
Internetový cenzor může zablokovat web nejméně třemi způsoby:
- Blokovat IP adresu webových stránek.
- Ukrást odpověď DNS a poskytnout koncovému uživateli špatnou IP adresu.
- Zablokujte připojení TLS zobrazením indikace názvu serveru (SNI)
Pokud se obáváte, že váš webový proxy bude blokován internetovými cenzory, můžete svůj webový proxy umístit za síť CDN (Content Delivery Network), jako je Cloudflare. Tímto způsobem je IP adresa vašeho serveru skryta a pokud se internetový cenzor rozhodne zablokovat IP adresu Cloudflare, dojde k vedlejším škodám, protože existuje mnoho dalších webových stránek, které také používají stejnou IP adresu. Internetový cenzor si to dvakrát rozmyslí, než to udělá.
Aby se zabránilo otravě DNS, měl by koncový uživatel používat DNS přes TLS nebo DNS přes HTTPS. Aby se zabránilo úniku informací o SNI, měla by webová stránka používat šifrované SNI.
Závěr
A je to! Doufám, že vám tento návod pomohl vytvořit si vlastní webový proxy na Ubuntu 16.04. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje a získejte další tipy a triky.