Pokiaľ ide o zabezpečenie vašej stopy na webe, možno ste už počuli o VPN, však? VPN funguje ako sprostredkovateľ medzi vaším počítačom a internetom. Všetka prevádzka prechádza cez VPN server, čo efektívne maskuje vašu IP adresu a polohu.
VPN však nie je jedinou formou proxy servera. SOCKS (Socket Secure) je podobný sieťový protokol, ktorý umožňuje komunikáciu so servermi cez firewall smerovaním sieťovej prevádzky v mene klienta. V porovnaní s VPN ponúka SOCKS väčšiu flexibilitu a kontrolu nad konfiguráciou siete. Je užitočný, keď nemôžete nainštalovať VPN klienta alebo nedôverujete poskytovateľovi VPN.
Tento návod vám ukáže, ako vytvoriť SSH SOCKS 5 proxy tunel a smerovať cez neho vašu webovú prevádzku.
Požiadavky
Na demonštráciu sme použili lokálny počítač s operačným systémom Ubuntu desktop a vzdialený počítač s Ubuntu serverom. Predtým, ako to bude hladko fungovať, musíte mať nakonfigurované SSH. Keďže používame SOCKS proxy, na otestovanie pripojenia potrebujeme aplikáciu, ktorá ho dokáže použiť. Firefox je ideálnym príkladom. Je to moderný webový prehliadač, ktorý podporuje proxy tunel SOCKS 5.
Ak používate Windows, môžete použiť buď WSL (Windows Subsystem for Linux) na nastavenie lokálneho prostredia Linuxu, alebo použiť PuTTY, open-source aplikáciu, ktorá dokáže implementovať rôzne sieťové protokoly ako Telnet, rlogin atď.
Konfigurácia SOCKS tunela
-
Nastavenie SOCKS tunela (macOS/Linux)
Na lokálnom počítači musíme nakonfigurovať SSH kľúč, aby sme zaistili bezpečné pripojenie. SSH kľúč musí byť zaregistrovaný aj vo vzdialenom systéme. Tento návod na konfiguráciu autentifikácie založenej na SSH kľúčoch podrobne popisuje tento proces.
Nasledujúci príkaz SSH vytvorí SOCKS tunel k vzdialenému serveru:
|
1 |
ssh -i ~/.ssh/id_rsa -D 2000 -f -C -q -N <remote_username>@<remote_server> |

Poďme si príkaz rozobrať:
-
-i: Hovorí SSH, ktorý SSH kľúč má použiť na pripojenie.
-
-D: Hovorí SSH, že chceme vytvoriť SOCKS tunel. Čo sa týka portu, používame port 1024. Nie je to pevná hodnota. Môžete si vybrať akýkoľvek port medzi 1024 a 65536.
-
-f: Proces SSH sa spustí na pozadí.
-
-C: SSH skomprimuje dáta pred ich odoslaním na vzdialený server. Môže to ušetriť spotrebu dát a zvýšiť efektívnu šírku pásma.
-
-q: Spustí nástroj v tichom režime.
-
-N: Hovorí SSH, že po vytvorení tunela sa neodošle žiadny príkaz.
Po spustení môžeme overiť, či sa proces spustil správne. Nasledujúci príkaz vypíše informácie o všetkých spustených procesoch SSH:
|
1 |
ps aux | grep ssh |

Teraz môžete bezpečne zatvoriť okno terminálu. Proces SSH bude fungovať podľa očakávania na pozadí.
-
Nastavenie SOCKS tunela (Windows)
Pre používateľov systému Windows je jednoduchším riešením použitie PuTTY. Najprv musíte stiahnuť PuTTY:

Po nainštalovaní spustite PuTTY:

Na karte Session v ľavom paneli zadajte Host Name (or IP address) vášho servera. Pokiaľ ide o Connection type, vyberte SSH. Potom prejdite na Connection >> SSH >> Tunnels. Tu v poli Destination vyberte možnosti zobrazené na snímke obrazovky:

Potom kliknite na Open. Otvorí sa okno terminálu na pripojenie k vzdialenému serveru cez SSH. Prihláste sa na vzdialený server:

Implementácia SOCKS tunela
Tunel je teraz nastavený. Akákoľvek aplikácia podporujúca SOCKS môže tento tunel použiť. Na demonštráciu je skvelým príkladom Firefox.
Najprv otvorte Firefox. V pravom hornom rohu kliknite na ikonu ponuky. Prejdite na Settings:

Potom vyhľadajte proxy. Kliknite na Settings v sekcii Configure how Firefox connects to the internet:

Potom vyberte Manual proxy configuration. Pokiaľ ide o SOCKS Host, použite localhost alebo 127.0.0.1. Potom do poľa port zadajte port, ktorý sme vyhradili pre SOCKS tunel. Nezabudnite vybrať SOCKS_v5:

Nakoniec začiarknite možnosť Proxy DNS when using SOCKS_v5. Kliknite na OK pre pokračovanie.
Potom otvorte novú kartu a skúste prejsť na ľubovoľnú webovú stránku. Svoju IP adresu môžete skontrolovať napríklad na CheckMyIP.
Vrátenie zmien proxy
Keď už nepotrebujete proxy pripojenie k SSH tunelu, môžete ho bezpečne zakázať v nastaveniach proxy vo Firefoxe:

V okne vyberte Použiť nastavenia proxy systému a kliknite na OK.
Zatvorenie SOCKS tunela
-
Zatvorenie tunela v systémoch macOS/Linux
Ak chcete tunel zatvoriť, musíme manuálne ukončiť proces SSH. Potrebujeme PID (ID procesu) procesu SSH. Nasledujúci príkaz zobrazí PID všetkých spustených procesov SSH:
|
1 |
ps aux | grep ssh |
Poznačte si proces SSH, ktorý beží s príkazom na vytvorenie tunela. Ukončite proces:
|
1 |
kill <tunnel_ssh_pid> |
Ak nie je definovaná žiadna možnosť, príkaz kill odošle všeobecný SIGTERM signál cieľovému procesu. Viac informácií o správe procesov v Linuxe sa dozviete v tomto návode.
-
Zatvorenie tunela v systéme Windows
Zatvorením okna PuTTY by sa malo pripojenie tunela ukončiť.
Riešenie problémov
Tu sú niektoré bežné problémy, s ktorými sa môžete stretnúť pri pokuse o smerovanie prevádzky pomocou SOCKS.
-
Firewall
Ak nemôžete nadviazať pripojenie z dôvodu obmedzenia firewallu, je pravdepodobné, že firewall je nakonfigurovaný tak, aby blokoval pripojenie k portu 22. Toto je predvolený port, ktorý SSH používa na pripojenie k vzdialeným systémom. Niektoré porty zostávajú predvolene otvorené, napríklad port 80 (bežná webová prevádzka) a port 443 (TLS, zabezpečená webová prevádzka).
Ak server SSH neposkytuje webový obsah, môžeme použiť jeden z predvolených portov ( 80 alebo 443 ) namiesto portu 22. Odporúča sa použiť port 443 keďže predvolene očakáva šifrovanú prevádzku. Taktiež zašifruje odchádzajúcu prevádzku. Ak chcete vykonať zmenu, musíme upraviť konfiguračný súbor SSH. Otvorte súbor v textovom editore:
|
1 |
sudo nano /etc/ssh/sshd_config |
SSH môže na svoje účely používať viacero portov. Prejdite v konfiguračnom súbore nižšie a nájdite sekciu portov:

Po vykonaní zmien súbor uložte a zatvorte editor. Reštartujte službu SSH, aby sa zmeny prejavili:
|
1 |
sudo service ssh restart |
Ak chcete overiť, či nový port funguje, skúste sa pripojiť k vzdialenému serveru pomocou nového portu:
|
1 |
ssh <remote_username>@<remote_server> -p 443 |
Ak bolo pripojenie úspešné, môžeme bezpečne použiť port 443 na SSH tunelovanie. Tu je upravený príkaz na vytvorenie SOCKS tunela:
|
1 |
ssh -i ~/.ssh/id_rsa -D 2000 -f -C -q -N <remote_username>@<remote_server> -p 443 |
Tu príznak -p hovorí SSH, aby použil port 443.
Záverečné myšlienky
V dnešnej dobe sú súkromie a bezpečnosť jednými z najväčších obáv. Existuje mnoho spôsobov, ako bezpečne prehliadať web, keď sa nachádzate v nepriateľskej sieti. Vo väčšine prípadov poskytne dostatočné zabezpečenie sieťovej prevádzky použitie VPN. Na druhej strane, SOCKS tunel vám poskytne potrebné zabezpečenie, ak VPN nemôžete použiť alebo jej nedôverujete. SOCKS tunel vám tiež dáva plnú kontrolu nad celým nastavením.
Príjemnú prácu s počítačom!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.