Ako nastaviť svoj vlastný webový proxy na Ubuntu 22.04/20.04 VPS


Tento tutoriál vám ukáže, ako nastaviť svoj vlastný webový proxy server na Ubuntu 22.04/20.04. Web proxy je webová stránka, na ktorú používateľ zadá konkrétnu adresu URL na odblokovanie webovej stránky. Existuje množstvo skriptov webového servera proxy, ktoré možno použiť na nastavenie vlastného webového servera proxy. V tomto návode budú použité Glype a PHP-Proxy.

  • Glype je veľmi populárny webový proxy skript.
  • PHP-Proxy je dobrou alternatívou.

Môžete si vybrať jednu z nich. V mojom teste je PHP-Proxy rýchlejší a funguje lepšie s populárnymi webovými stránkami ako Facebook, Twitter a YouTube, pretože sa aktívne aktualizuje. Uvidíme, ako ich nastaviť pomocou Apache/Nginx a povoliť HTTPS pomocou Let’s Encrypt.

Normálne používam server Shadowsocks proxy a OpenConnect VPN na obídenie internetovej cenzúry, ale existuje možnosť, že tieto dva nástroje budú v mojej krajine zablokované. Web proxy je dobrou metódou zálohovania, pretože nemá žiadne vlastnosti SOCKS proxy a VPN. V očiach internetového firewallu je to len bežná HTTPS premávka. Na internete sú desiatky tisíc bezplatných webových proxy serverov. Nevýhodou je, že keď sa tieto verejné webové servery proxy stanú známymi, možno ich ľahko zablokovať. Nastavenie vlastného privátneho webového proxy má tú výhodu, že o jeho existencii viete iba vy.

Predpoklady

Ak chcete postupovať podľa tohto návodu, budete potrebovať VPS (virtuálny súkromný server), ktorý môže voľne pristupovať k blokovaným webovým stránkam (mimo vašej krajiny alebo systému filtrovania internetu). Odporúčam Kamatera VPS, ktorý obsahuje:

  • 30-dňová bezplatná skúšobná verzia.
  • Začína na 4 dolároch mesačne (1 GB RAM)
  • Vysoko výkonný VPS založený na KVM
  • 9 dátových centier po celom svete vrátane USA, Kanady, Veľkej Británie, Nemecka, Holandska, Hong Kongu a Isrealu.

Podľa nižšie uvedeného návodu vytvorte svoj Linux VPS server na Kamatere.

  • Ako vytvoriť Linux VPS server na Kamatere

Keď máte VPS so systémom Ubuntu 22.04/20.04, postupujte podľa pokynov nižšie.

Potrebujete tiež názov domény, takže budete môcť pridať šifrovanie HTTPS na ochranu vášho webového prenosu. Odporúčam kupovať názvy domén od NameCheap, pretože cena je nízka a poskytujú ochranu súkromia whois doživotne zadarmo.

Krok 1: Nainštalujte webový server a PHP

SSH do vášho Ubuntu 22.04/20.04 VPS.

Ak chcete používať Nginx ako webový server, potom nainštalujte Nginx a PHP8 vykonaním nasledujúceho príkazu.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

sudo apt update

sudo apt install nginx php8.0-fpm php8.0-curl php8.0-mbstring php8.0-xml php8.0-zip

Ak chcete ako webový server používať Apache, spustite ho

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

sudo apt update

sudo apt install apache2 php8.0 libapache2-mod-php8.0 php8.0-curl php8.0-mbstring php8.0-xml php8.0-zip

Krok 2: Stiahnite si Glype alebo PHP-Proxy

Glype

Stiahnite si Glype spustením nasledujúceho príkazu.

wget https://www.php-proxy.com/download/glype-1.4.15.zip

Rozbaľte ho do adresára /var/www/proxy/.

sudo apt install unzip

sudo mkdir -p /var/www/proxy/

sudo unzip glype-1.4.15.zip -d /var/www/proxy/

Nastavte www-data (používateľ webového servera) ako vlastníka.

sudo chown www-data:www-data /var/www/proxy/ -R

PHP-Proxy

Na stiahnutie PHP-Proxy môžeme použiť Composer. Nainštalujte Composer z úložiska Ubuntu 22.04/20.04.

sudo apt install composer

Potom si stiahnite PHP-Proxy do adresára /var/www/proxy/.

sudo mkdir -p /var/www/proxy/ /var/www/.composer/

sudo chown www-data:www-data /var/www/proxy/  /var/www/.composer/ -R

sudo -u www-data composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/

Ak sa zobrazí otázka „Chcete odstrániť existujúcu históriu VCS (.git, .svn..)? [Y,n]?" Vyberte Áno.

Krok 3: Nakonfigurujte webový server

V tomto kroku musíme pre náš webový proxy vytvoriť blok servera Nginx alebo virtuálneho hostiteľa Apache.

Vytvorte blok servera Nginx

Nainštalujte webový server Nginx.

sudo apt install nginx

Vytvorte blok servera v adresári /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/web-proxy.conf

Skopírujte a vložte nasledujúce riadky do súboru. Nahraďte proxy.example.com svojím skutočným názvom domény. Nezabudnite nastaviť záznam A v správcovi 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/php8.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                include snippets/fastcgi-php.conf;
        }
}

Uložte a zatvorte súbor. Potom otestujte konfigurácie Nginx.

sudo nginx -t

Ak je test úspešný, znova načítajte Nginx, aby sa zmeny prejavili.

sudo systemctl reload nginx

Vytvorte virtuálneho hostiteľa Apache

Nainštalujte webový server Apache.

sudo apt install apache2

Vytvorte virtuálneho hostiteľa Apache v adresári /etc/apache2/sites-avaialable/.

sudo nano /etc/apache2/sites-available/web-proxy.conf

Skopírujte a vložte nasledujúce riadky do súboru. Nahraďte proxy.example.com svojím skutočným názvom domény. Nezabudnite nastaviť záznam A v správcovi 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>

Uložte a zatvorte súbor. Potom povoľte tohto virtuálneho hostiteľa.

sudo a2ensite web-proxy.conf

Znova načítajte Apache, aby sa zmeny prejavili.

sudo systemctl reload apache2

Webové rozhranie

Teraz vo svojom webovom prehliadači navštívte proxy.example.com. Ak používate Glype, budete presmerovaní na ovládací panel správcu (proxy.example.com/admin.php).

Ak používate PHP-Proxy, môžete vidieť fungujúci web proxy, ktorý čaká na zadanie adresy URL.

Teraz povoľme HTTPS pomocou Let's Encrypt.

Krok 4: Povoľte HTTPS pomocou Let's Encrypt for Your Web Proxy

Klienta Let’s Encrypt (certbot) môžeme nainštalovať vykonaním nasledujúceho príkazu.

sudo apt install certbot

Používatelia Nginx si tiež musia nainštalovať doplnok Certbot Nginx.

sudo apt install python-certbot-nginx

Povoľte HTTPS pomocou doplnku Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-address

Používatelia Apache si musia nainštalovať doplnok Certbot Apache.

sudo apt install python-certbot-apache

Povoľte HTTPS pomocou doplnku Apache.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-address

Po úspešnej inštalácii certifikátu obnovte server proxy vo webovom prehliadači, aby ste mohli používať HTTPS.

Ak sa pri pokuse o získanie certifikátu TLS vyskytnú chyby, pozrite si nasledujúci článok na riešenie problémov.

  • Ako opraviť bežné chyby Let's Encrypt/Certbot

(Voliteľné) Umiestnite svoj webový proxy za CDN

Internetový cenzor môže zablokovať webovú stránku najmenej tromi spôsobmi:

  • Zablokujte IP adresu webovej stránky.
  • Prevezmite odpoveď DNS, aby ste koncovému používateľovi poskytli nesprávnu IP adresu.
  • Zablokujte pripojenie TLS tak, že sa pozriete na Indikáciu názvu servera (SNI)

Ak sa obávate, že váš webový proxy bude zablokovaný internetovými cenzormi, môžete svoj webový proxy umiestniť za sieť CDN (Content Delivery Network), ako je Cloudflare. Týmto spôsobom je IP adresa vášho servera skrytá a ak sa internetový cenzor rozhodne zablokovať IP adresu Cloudflare, dôjde k vedľajšej škode, pretože existuje mnoho iných webových stránok, ktoré tiež používajú rovnakú IP adresu. Internetový cenzor si to dvakrát rozmyslí, kým to urobí.

  • Aby sa zabránilo otrave DNS, koncový používateľ by mal používať DNS cez TLS alebo DNS cez HTTPS.
  • Aby sa zabránilo úniku informácií o SNI, webová stránka by mala používať šifrované SNI.

Riešenie problémov s chybou webového servera

  • Ako opraviť bežné chyby webového servera Nginx

Záver

To je všetko! Dúfam, že vám tento tutoriál pomohol vytvoriť si vlastný webový proxy server na Ubuntu 22.04/20.04. Ako vždy, ak ste považovali tento príspevok za užitočný, prihláste sa na odber nášho bezplatného bulletinu a získajte ďalšie tipy a triky.

Súvisiace články