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-zipAk 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-zipKrok 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.zipRozbaľ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/ -RPHP-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 nginxVytvorte blok servera v adresári /etc/nginx/conf.d/.
sudo nano /etc/nginx/conf.d/web-proxy.confSkopí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 -tAk je test úspešný, znova načítajte Nginx, aby sa zmeny prejavili.
sudo systemctl reload nginxVytvorte virtuálneho hostiteľa Apache
Nainštalujte webový server Apache.
sudo apt install apache2Vytvorte 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.confZnova načítajte Apache, aby sa zmeny prejavili.
sudo systemctl reload apache2Webové 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 certbotPoužívatelia Nginx si tiež musia nainštalovať doplnok Certbot Nginx.
sudo apt install python-certbot-nginxPovoľte HTTPS pomocou doplnku Nginx.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-addressPoužívatelia Apache si musia nainštalovať doplnok Certbot Apache.
sudo apt install python-certbot-apachePovoľte HTTPS pomocou doplnku Apache.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-addressPo ú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.


