Proxy server na Digital Ocean snadno a rychle

Publikováno: 6.8.2020

Vlastní proxy server se hodí v případě, že potřebujete přistupovat ke službám, které jsou geograficky limitované, nebo jednoduše potřebujete svou službu otestovat z jiné země.

Celý článek

Text vyšel původně na autorově webu.

Využijeme k tomu poskytovatele virtuálních serverů Digital Ocean.

Digital Ocean poskytuje své servery v několika lokalitách:

  • Frankfurt
  • Amsterdam
  • Londýn
  • New York
  • San Francisco
  • Toronto
  • Singapur
  • Bengalúr (Indie)

Pokud chcete provozovat službu, ke které se přistupuje z České Republiky, je nejlepší volbou Frankfurt – odezvy jsou srovnatelné s menšími českými datacentry.

Krok 1 – Registrace účtu na Digital Ocean

Po vyplnění emailové adresy a hesla vám přijde potvrzovací e-mail. Následuje výběr platební metody – buď vyplnění platební karty, nebo přes PayPal (zde je potřeba zaplatit první kredit minimálně 5 dolarů). A tím je proces dokončen.

Krok 2 – Vytvoření Dropletu (virtuálního stroje)

Po úspěšné registraci vás přivítá velké modré tlačítko „Create Droplet“.

  • Vyberte CentOS (8.2 x64 nebo starší 7.6 x64)
  • Velikost instance (pro proxy stačí ta nejmenší za 5 dolarů)
  • A datacentrum, kde chcete stroj provozovat

V dalších volbách zaškrtněte „User data“.

Digital Ocean - výběr lokality

Digital Ocean – výběr lokality

Jako „User data“ použijte náš jednoduchý Cloud Init skript pro základní instalaci Squida:

#cloud-config
packages:
  - firewalld
  - squid
  - httpd-tools

write_files:
  - path: /etc/squid/squid.conf
    content: |
      auth_param basic program /usr/lib64/squid/basic_ncsa_auth  /etc/squid/passwords
      auth_param basic realm proxy
      acl authenticated proxy_auth REQUIRED
      http_access allow authenticated
      http_port 3128
  - path: /etc/cron.daily/update.sh
    content: |
      #!/bin/bash
      /usr/bin/yum -y update
      systemctl restart squid
  
runcmd:
  - htpasswd -nb {jmeno} {heslo} >> /etc/squid/passwords
  - chmod a+x /etc/cron.daily/update.sh
  - firewall-offline-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="{ip}" accept'
  - firewall-offline-cmd --zone=public --add-port=3128/tcp
  - firewall-offline-cmd --remove-service=ssh
  - firewall-offline-cmd --zone=public --add-interface=eth0
  - systemctl start firewalld squid
  - systemctl enable firewalld squid

Ve skriptu si dosaďte vlastní hodnoty za 3 proměnné:

  • {jmeno} – uživatelské jméno do proxy
  • {heslo} – heslo do proxy
  • {ip} – vaše IP adresa pro přístup k SSH (pro samotné zprovoznění není potřeba, bude se hodit až pro budoucí správu)

Řádek s nastavením uživatelského jména je možné zduplikovat pro vytvoření více účtů. To samé platí s řádkem s nastavením IP adresy.

Dále si můžete svůj Droplet pojmenovat a nastavit SSH klíče pro přihlášení, pokud je používáte (což je velmi dobrá praktika).

Po kliknutí na „Create Droplet“ se během chvilky stroj vytvoří a během dalších několika minut dojde k jeho automatickému nakonfigurování (opravdu je potřeba chvilku počkat).

Digital Ocean - běžící VPS a jeho IP adresa

Digital Ocean – běžící VPS a jeho IP adresa

Krok 3 – nastavení prohlížeče pro používání proxy serveru

Chrome (používá nastavení operačního systému): Nastavení – Rozšířená nastavení – Systém: Otevřít nastavení serveru proxy – Nastavení místní sítě – zde zvolit, že chcete používat proxy server, vyplnit IP adresu vašeho dropletu a port 3128. Chrome používá nastavení proxy celého systému, změny se tak provedou i pro IE.

Nastavení proxy serveru ve Windows/Chrome

Nastavení proxy serveru ve Windows/Chrome

Firefox (používá své vlastní nastavení): Možnosti – Obecné – Nastavení sítě – Ruční konfigurace proxy serverů – zde opět vyplnit IP adresu a port 3128 a povolit tento proxy pro všechny protokoly.

Nastavení proxy serveru v prohlížeči Firefox

Nastavení proxy serveru v prohlížeči Firefox

Nyní při pokusu o otevření libovolné stránky vyskočí přihlašovací dialog, kam zadáte  nastavené jméno a heslo a již komunikujete přes vámi vytvoření virtuální server.

Krok 4 – nastavení pro vážnější používání

Komunikace přes stroje v cizím státě je často pomalejší, takže nechcete mít proxy nastavenou pořád. Proxy také často chcete využívat pouze pro některé adresy. Abyste nemuseli připojení stále přenastavovat, můžete využít rozšíření Foxy Proxy Standard, které je dostupné pro Firefox i Chrome. Můžete si zde i nastavit své autentizační údaje. K dispozici je ještě varianta Foxy Proxy Basic, která však neumožňuje definovat si pravidla, pro jaké adresy se má jaká proxy sama použít.

FoxyProxy nastavení proxy serverů

FoxyProxy nastavení proxy serverů

FoxyProxy detail proxy serveru

FoxyProxy detail proxy serveru

FoxyProxy pravidla

FoxyProxy pravidla

Po přečtení návodu tedy umíte:

  • Jednoduše vytvořit virtuální server na Digital Ocean.
  • Provést deployment aplikace pomocí jednoduchého Cloud Init skriptu (co dále Cloud Init umí najdete v dokumentaci).
  • Využívat proxy server Squid.

Pokud použijete deployment pomocí Cloud Init, máte možnost své droplety jednoduše vytvářet a ničit, a tak platit pouze za čas jejich existence (u nejmenší instance pod 20 haléřů za hodinu).

Cloud Init skripty vám mohou velmi zjednodušit nasazování podobných jednoduchých služeb. Uvedený skript lze použít i pro EC2 instanci s OS RedHat nebo Centos v Amazoním cloudu AWS. Zde je pouze navíc potřeba si povolit port 3128 v Security Groups pro váš stroj, protože Amazon má před stroji ještě extra firewall.

Na závěr je vhodné ještě podotknout, že proxy server nezastupuje VPN. Možná vás napadne, jestli má cenu řešit vlastní server, když existuje množství služeb, které tuto službu také poskytují. Osobně preferuji vlastní řešení, protože díky němu vím, kdo do mých dat vidí, kdo dále server využívá a mám větší kontrolu na jeho výkonem.

Základní nastavení není určeno pro anonymizaci a squid tak cílovým serverům prozrazuje vaší reálnou IP adresu a sám se identifikuje. Pokud to tak nechcete je třeba do squid.conf přidat následující řádky:

forwarded_for delete
via off

Pokud vaše VPS nepodporuje Cloud init, je možné využít konfigurace ve formě shell skriptu.

Proxy server je jedna z nejjednodušších možností, jak svůj provoz směrovat přes jiný server. Zajímavější a bezpečnější možností je však VPN, jejímu zprovoznění se budeme věnovat v dalším textu.

Nahoru
Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tímto souhlasíte. Další informace