Zavolat Další kontakty >
E-mail Kontakty

Proxy server na Digital Ocean snadno a rychle

Návod, jak si velmi jednoduše připravit vlastní proxy server Squid pro přístup ke službám z jiných sítí na Digital Ocean.

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ě.

Využijeme k tomu poskytovatele virtuálních serverů Digital Ocean (přes tento odkaz získáte 10$ testovací kredit, který vystačí na 2 měsíce provozu nejmenší instance). Digital Ocean poskytuje své servery v několika lokalitách:

Frankfurt, Amsterdam, Londýn, New York,San Francisco, Toronto, Singapur a Bengalúru (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$). 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 (7.3.1611 x64)
  • Velikost instance (pro proxy stačí ta nejmenší)
  • A datacentrum, kde chcete stroj provozovat

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

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 --zone=public --remove-service-from-zone=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).

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

Chrome: Nastavení - Zobrazit rozšířená nastavení... - Síť: Změna nastavení 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.

Firefox: Možnosti - Rozšířené síť - Nastavení připojení - Ruční konfigurace proxy serverů - zde opět vyplnit IP adresu a port 3128 a povolit tento proxy pro všechny protokoly.

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 proxy 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é autentifikač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.

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

  • Jednoduše vytvořit virtuální server na Digital Ocean (a získat 10$ testovací kredit).
  • 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.

Update: na žádosti jsem připravil ještě návod jak zprovoznit L2TP VPN server a IKEv2 VPN server ve stejných službách

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

Komentáře (1)

Přidat komentář

napsáno 7. 7. 2016 9:51
Díky, využil jsem