Praktické tipy, příklady a SSH tunely

Praktické tipy, příklady a SSH tunely
Praktické příklady SSHto posune vaše dovednosti vzdáleného správce systému na novou úroveň. Příkazy a tipy pomohou nejen používat SSH, ale také procházet sítí inteligentněji.

Znát pár triků ssh užitečné pro každého správce systému, síťového inženýra nebo bezpečnostního odborníka.

Praktické příklady SSH

  1. Proxy SSH ponožek
  2. SSH tunel (přesměrování portů)
  3. SSH tunel na třetího hostitele
  4. Reverzní tunel SSH
  5. Reverzní proxy SSH
  6. Instalace VPN přes SSH
  7. Kopírovat klíč SSH (ssh-copy-id)
  8. Vzdálené provádění příkazů (neinteraktivní)
  9. Vzdálené zachytávání a prohlížení paketů pomocí Wireshark
  10. Kopírování místní složky na vzdálený server přes SSH
  11. Vzdálené aplikace GUI s přesměrováním SSH X11
  12. Vzdálené kopírování souborů pomocí rsync a SSH
  13. SSH přes síť Tor
  14. SSH na EC2 instance
  15. Úpravy textových souborů pomocí VIM přes ssh/scp
  16. Připojení vzdáleného SSH jako místní složky pomocí SSHFS
  17. Multiplexování SSH pomocí ControlPath
  18. Streamujte video přes SSH s VLC a SFTP
  19. Dvoufaktorová autentizace
  20. Přeskakování hostitelů pomocí SSH a -J
  21. Blokování pokusů o hrubou sílu SSH pomocí iptables
  22. SSH Escape pro změnu přesměrování portů

Nejprve základy

Analýza příkazového řádku SSH

Následující příklad používá běžné možnosti, se kterými se často setkáváte při připojování ke vzdálenému serveru SSH.

localhost:~$ ssh -v -p 22 -C neo@remoteserver

  • -v: Výstup ladění je zvláště užitečný při analýze problémů s autentizací. Lze použít vícekrát pro zobrazení dalších informací.
  • - p 22: připojovací port na vzdálený SSH server. 22 se nemusí zadávat, protože to je výchozí hodnota, ale pokud je protokol na nějakém jiném portu, pak jej specifikujeme pomocí parametru -p. Naslouchací port je uveden v souboru sshd_config ve formátu Port 2222.
  • -C: komprese pro připojení. Pokud máte pomalý kanál nebo sledujete mnoho textu, může to urychlit připojení.
  • neo@: Řádek před znakem @ označuje uživatelské jméno pro ověření na vzdáleném serveru. Pokud jej nezadáte, použije se jako výchozí uživatelské jméno účtu, ke kterému jste aktuálně přihlášeni (~$ whoami). Pomocí parametru lze také specifikovat uživatele -l.
  • remoteserver: název hostitele, ke kterému se chcete připojit ssh, může to být plně kvalifikovaný název domény, IP adresa nebo jakýkoli hostitel v místním souboru hostitelů. Chcete-li se připojit k hostiteli, který podporuje IPv4 i IPv6, můžete přidat parametr příkazového řádku -4 nebo -6 pro správné rozlišení.

Všechny výše uvedené parametry jsou volitelné kromě remoteserver.

Pomocí konfiguračního souboru

I když mnozí jsou obeznámeni se souborem sshd_config, existuje také konfigurační soubor klienta pro příkaz ssh. Výchozí hodnota ~/.ssh/config, ale může být definován jako parametr volby -F.

Host *
     Port 2222

Host remoteserver
     HostName remoteserver.thematrix.io
     User neo
     Port 2112
     IdentityFile /home/test/.ssh/remoteserver.private_key

Výše uvedený příklad konfiguračního souboru ssh má dvě položky hostitele. První označuje všechny hostitele, pro všechny je použit konfigurační parametr Port 2222. Druhý říká, že pro hostitele vzdálený server měli byste použít jiné uživatelské jméno, port, FQDN a IdentityFile.

Konfigurační soubor může ušetřit spoustu času při psaní znaků tím, že umožňuje automatické použití pokročilé konfigurace při připojování ke konkrétním hostitelům.

Kopírování souborů přes SSH pomocí SCP

Klient SSH přichází se dvěma dalšími velmi praktickými nástroji pro kopírování souborů šifrované ssh připojení. Níže je uveden příklad typického použití příkazů scp a sftp. Všimněte si, že mnoho voleb pro ssh platí i pro tyto příkazy.

localhost:~$ scp mypic.png neo@remoteserver:/media/data/mypic_2.png

V tomto příkladu soubor mypic.png zkopírován do vzdálený server do složky /media/data a přejmenován na mypic_2.png.

Nezapomeňte na rozdíl v parametru port. Na to narazit mnozí, kteří spouštějí scp z příkazového řádku. Zde je parametr portu -PA ne -p, jako v klientovi ssh! Zapomeneš, ale neboj, každý zapomene.

Pro znalé konzole ftp, mnoho příkazů je podobných v sftp. Můžete dělat tlačit, dát и lsjak vaše srdce touží.

sftp neo@remoteserver

Praktické příklady

V mnoha z těchto příkladů lze výsledku dosáhnout různými metodami. Jako ve všech našich učebnice a příklady, přednost se dává praktickým příkladům, které prostě dělají trik.

1. SSH socks proxy

Funkce SSH Proxy je číslo 1 z dobrého důvodu. Je výkonnější, než si většina lidí myslí, a poskytuje vám přístup k jakémukoli systému, ke kterému má přístup vzdálený server, pomocí téměř jakékoli aplikace. Ssh klient může tunelovat provoz přes SOCKS proxy jedním jednoduchým příkazem. Je důležité pochopit, že provoz do vzdálených systémů bude pocházet ze vzdáleného serveru, jak bude uvedeno v protokolech webového serveru.

localhost:~$ ssh -D 8888 user@remoteserver

localhost:~$ netstat -pan | grep 8888
tcp        0      0 127.0.0.1:8888       0.0.0.0:*               LISTEN      23880/ssh

Zde spustíme socks proxy na TCP portu 8888, druhý příkaz zkontroluje, zda je port aktivní v režimu poslechu. 127.0.0.1 určuje, že služba běží pouze na localhost. Můžeme použít trochu jiný příkaz pro poslech na všech rozhraních včetně ethernetu nebo wifi, to umožní dalším aplikacím (prohlížečům atd.) v naší síti se připojit k proxy službě přes ssh socks proxy.

localhost:~$ ssh -D 0.0.0.0:8888 user@remoteserver

Nyní můžeme nakonfigurovat prohlížeč tak, aby se připojil k proxy serveru ponožek. Ve Firefoxu vyberte Nastavení | Hlavní | Nastavení sítě. Zadejte IP adresu a port, ke kterému se chcete připojit.

Praktické tipy, příklady a SSH tunely

Věnujte pozornost volbě ve spodní části formuláře, aby DNS dotazy prohlížeče procházely i přes SOCKS proxy. Pokud používáte proxy server k šifrování webového provozu ve vaší lokální síti, pak pravděpodobně budete chtít vybrat tuto možnost, aby byly DNS dotazy tunelovány přes SSH připojení.

Aktivace proxy socks v Chrome

Spuštění prohlížeče Chrome s určitými možnostmi příkazového řádku povolí proxy server Socks a také tunelování požadavků DNS z prohlížeče. Důvěřuj, ale prověřuj. Použití tcpdump zkontrolovat, že požadavky DNS již nejsou viditelné.

localhost:~$ google-chrome --proxy-server="socks5://192.168.1.10:8888"

Použití jiných aplikací s proxy

Mějte na paměti, že mnoho dalších aplikací může také používat proxy ponožek. Webový prohlížeč je prostě nejoblíbenější ze všech. Některé aplikace mají možnosti konfigurace pro aktivaci proxy serveru. Ostatní potřebují trochu pomoci s pomocným programem. Například, proxyřetězce umožňuje spustit přes socks-proxy Microsoft RDP atd.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Konfigurační parametry proxy serveru socks se nastavují v konfiguračním souboru proxychains.

Tip: pokud používáte vzdálenou plochu z Linuxu na Windows? Zkuste klienta FreeRDP. Jedná se o modernější provedení než rdesktops mnohem hladší interakcí.

Možnost použití SSH přes socks proxy

Sedíte v kavárně nebo hotelu - a jste nuceni používat poněkud nespolehlivé WiFi. Z notebooku lokálně spustíme ssh proxy a nastavíme ssh tunel do domácí sítě na místním Rasberry Pi. Pomocí prohlížeče nebo jiných aplikací nakonfigurovaných pro Socks proxy můžeme přistupovat k jakýmkoli síťovým službám v naší domácí síti nebo být online prostřednictvím našeho domácího připojení. Vše mezi vaším notebookem a vaším domácím serverem (přes Wi-Fi a internet do vašeho domova) je šifrováno v tunelu SSH.

2. SSH tunel (přesměrování portů)

Ve své nejjednodušší podobě tunel SSH jednoduše otevře port na vašem místním systému, který se připojuje k jinému portu na druhém konci tunelu.

localhost:~$ ssh  -L 9999:127.0.0.1:80 user@remoteserver

Pojďme analyzovat parametr -L. Lze si to představit jako místní stranu poslechu. Ve výše uvedeném příkladu tedy port 9999 naslouchá na straně localhost a předává se na portu 80 vzdálenému serveru. Všimněte si, že 127.0.0.1 odkazuje na localhost na vzdáleném serveru!

Pojďme po schodech nahoru. Následující příklad váže naslouchající porty k jiným hostitelům v místní síti.

localhost:~$ ssh  -L 0.0.0.0:9999:127.0.0.1:80 user@remoteserver

V těchto příkladech se připojujeme k portu na webovém serveru, ale může to být proxy server nebo jakákoli jiná služba TCP.

3. SSH tunel k hostiteli třetí strany

Stejné možnosti můžeme použít k tunelování ze vzdáleného serveru na jinou službu běžící na třetím systému.

localhost:~$ ssh  -L 0.0.0.0:9999:10.10.10.10:80 user@remoteserver

V tomto příkladu přesměrováváme tunel ze vzdáleného serveru na webový server běžící 10.10.10.10. Provoz ze vzdáleného serveru do 10.10.10.10 již není v tunelu SSH. Webový server 10.10.10.10 bude považovat vzdálený server za zdroj webových požadavků.

4. Reverzní tunel SSH

Zde nastavíme naslouchací port na vzdáleném serveru, který se připojí zpět k místnímu portu na našem localhostu (nebo jiném systému).

localhost:~$ ssh -v -R 0.0.0.0:1999:127.0.0.1:902 192.168.1.100 user@remoteserver

Tato relace SSH naváže spojení z portu 1999 na vzdáleném serveru k portu 902 na našem místním klientovi.

5. SSH Reverse Proxy

V tomto případě nastavujeme Socks proxy na našem ssh připojení, ale proxy naslouchá na vzdáleném konci serveru. Připojení k tomuto vzdálenému proxy nyní vycházejí z tunelu jako provoz z našeho localhostu.

localhost:~$ ssh -v -R 0.0.0.0:1999 192.168.1.100 user@remoteserver

Odstraňování problémů se vzdálenými tunely SSH

Pokud máte potíže se zprovozněním vzdálených možností SSH, obraťte se na netstat, ke kterým dalším rozhraním je naslouchací port připojen. Sice jsme v příkladech uvedli 0.0.0.0, ale pokud je hodnota Porty brány в sshd_config nastaven na Ne, pak bude posluchač vázán pouze na localhost (127.0.0.1).

Bezpečnostní varování

Vezměte prosím na vědomí, že při otevírání tunelů a socks proxy mohou být interní síťové zdroje dostupné nespolehlivým sítím (například Internet!). To může být vážné bezpečnostní riziko, takže se ujistěte, že rozumíte tomu, co posluchač je a k čemu má přístup.

6. Nainstalujte VPN přes SSH

Častým pojmem mezi specialisty na útočné metody (pentestery atd.) je „opěrný bod v síti“. Jakmile je na jednom systému navázáno spojení, tento systém se stává bránou pro další přístup do sítě. Opěrný bod, který vám umožní pohybovat se do šířky.

Pro takovou oporu můžeme použít SSH proxy a proxyřetězceexistují však určitá omezení. Například nebude možné pracovat přímo se sockety, takže nebudeme moci skenovat porty v síti přes Nmap SYN.

Při použití této pokročilejší možnosti VPN připojení klesne na úroveň 3. Poté můžeme jednoduše směrovat provoz tunelem pomocí standardního síťového směrování.

Metoda používá ssh, iptables, tun interfaces a směrování.

Nejprve musíte nastavit tyto parametry sshd_config. Protože provádíme změny v rozhraní vzdáleného i klientského systému, my potřebují oprávnění root na obou stranách.

PermitRootLogin yes
PermitTunnel yes

Poté navážeme ssh spojení pomocí parametru, který požaduje inicializaci zařízení tun.

localhost:~# ssh -v -w any root@remoteserver

Nyní bychom měli mít zařízení tun při zobrazování rozhraní (# ip a). Další krok přidá IP adresy do rozhraní tunelu.

Strana klienta SSH:

localhost:~# ip addr add 10.10.10.2/32 peer 10.10.10.10 dev tun0
localhost:~# ip tun0 up

Strana serveru SSH:

remoteserver:~# ip addr add 10.10.10.10/32 peer 10.10.10.2 dev tun0
remoteserver:~# ip tun0 up

Nyní máme přímou cestu k jinému hostiteli (route -n и ping 10.10.10.10).

Přes hostitele na druhé straně je možné směrovat jakoukoli podsíť.

localhost:~# route add -net 10.10.10.0 netmask 255.255.255.0 dev tun0

Na vzdálené straně povolte ip_forward и iptables.

remoteserver:~# echo 1 > /proc/sys/net/ipv4/ip_forward
remoteserver:~# iptables -t nat -A POSTROUTING -s 10.10.10.2 -o enp7s0 -j MASQUERADE

Výložník! VPN přes tunel SSH na síťové vrstvě 3. To už je vítězství.

Pokud se vyskytnou nějaké problémy, použijte tcpdump и pingk určení příčiny. Protože hrajeme na vrstvě 3, naše icmp pakety projdou tímto tunelem.

7. Zkopírujte klíč SSH (ssh-copy-id)

Existuje několik způsobů, jak to provést, ale tento příkaz šetří čas tím, že soubory nekopíruje ručně. Jednoduše zkopíruje ~/.ssh/id_rsa.pub (nebo výchozí klíč) z vašeho systému do ~/.ssh/authorized_keys na vzdáleném serveru.

localhost:~$ ssh-copy-id user@remoteserver

8. Vzdálené provádění příkazů (neinteraktivní)

Tým ssh lze propojit s dalšími příkazy pro obvyklé uživatelsky přívětivé rozhraní. Stačí přidat příkaz, který chcete spustit na vzdáleném hostiteli, jako poslední parametr v uvozovkách.

localhost:~$ ssh remoteserver "cat /var/log/nginx/access.log" | grep badstuff.php

V tomto příkladu grep je spuštěn na lokálním systému po stažení protokolu přes ssh kanál. Pokud je soubor velký, je pohodlnější jej spustit grep na vzdálené straně pouhým uzavřením obou příkazů do dvojitých uvozovek.

Další příklad plní stejnou funkci jako ssh-copy-id z příkladu 7.

localhost:~$ cat ~/.ssh/id_rsa.pub | ssh remoteserver 'cat >> .ssh/authorized_keys'

9. Vzdálené zachycení paketů a zobrazení Wireshark

Vzal jsem jeden z našich příklady tcpdump. Použijte jej k zachycení paketů na dálku a vrácení výsledku přímo do GUI vašeho místního Wiresharku.

:~$ ssh root@remoteserver 'tcpdump -c 1000 -nn -w - not port 22' | wireshark -k -i -

10. Zkopírování lokální složky na vzdálený server přes SSH

Pěkný trik, který komprimuje složku pomocí bzip2 (toto je volba -j v příkazu tar) a poté načte stream bzip2 na druhé straně vytvořením duplicitní složky na vzdáleném serveru.

localhost:~$ tar -cvj /datafolder | ssh remoteserver "tar -xj -C /datafolder"

11. Vzdálené GUI aplikace s přesměrováním SSH X11

Pokud klient i vzdálený server mají nainstalované "x", můžete vzdáleně spustit příkaz GUI s oknem na místní ploše. Tato funkce existuje již dlouhou dobu, ale stále je velmi užitečná. Spusťte vzdálený webový prohlížeč nebo dokonce konzolu VMWawre Workstation jako já v tomto příkladu.

localhost:~$ ssh -X remoteserver vmware

Je vyžadován řetězec X11Forwarding yes v souboru sshd_config.

12. Vzdálené kopírování souborů pomocí rsync a SSH

rsync mnohem pohodlnější scppokud potřebujete pravidelné zálohování adresáře, velkého počtu souborů nebo velmi velkých souborů. K dispozici je funkce pro obnovu po selhání přenosu a kopírování pouze změněných souborů, což šetří provoz a čas.

Tento příklad používá kompresi gzip (-z) a archivační režim (-a), který umožňuje rekurzivní kopírování.

:~$ rsync -az /home/testuser/data remoteserver:backup/

13. SSH přes síť Tor

Anonymní síť Tor může pomocí příkazu tunelovat provoz SSH torsocks. Následující příkaz odešle ssh proxy přes Tor.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Torsocks bude pro proxy používat port 9050 na localhost. Jako vždy při používání Tor musíte vážně zkontrolovat, jaký provoz je tunelován a další problémy s provozním zabezpečením (opsec). Kam směřují vaše požadavky DNS?

14. SSH na EC2 instance

Pro připojení k instanci EC2 je vyžadován soukromý klíč. Stáhněte si ji (přípona .pem) z ovládacího panelu Amazon EC2 a změňte oprávnění (chmod 400 my-ec2-ssh-key.pem). Klíč uschovejte na bezpečném místě nebo jej uložte do složky ~/.ssh/.

localhost:~$ ssh -i ~/.ssh/my-ec2-key.pem ubuntu@my-ec2-public

Parametr -i jednoduše řekne klientovi ssh, aby použil tento klíč. Soubor ~/.ssh/config ideální pro automatickou konfiguraci použití klíče při připojení k hostiteli ec2.

Host my-ec2-public
   Hostname ec2???.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/my-ec2-key.pem

15. Upravte textové soubory pomocí VIM přes ssh/scp

Pro všechny milovníky vim tento tip vám ušetří čas. Používáním vim soubory se upravují přes scp jedním příkazem. Tato metoda jednoduše vytvoří soubor lokálně v /tmpa poté jej zkopírujeme zpět, jakmile jej uložíme vim.

localhost:~$ vim scp://user@remoteserver//etc/hosts

Poznámka: formát se mírně liší od obvyklého scp. Po hostiteli tu máme dvojku //. Toto je absolutní odkaz na cestu. Jedno lomítko znamená, že cesta je relativní k domovské složce users.

**warning** (netrw) cannot determine method (format: protocol://[user@]hostname[:port]/[path])

Pokud se zobrazí tato chyba, znovu zkontrolujte formát příkazu. To obvykle znamená chybu syntaxe.

16. Připojte vzdálené SSH jako místní složku s SSHFS

Prostřednictvím sshfs - klient souborového systému ssh - můžeme připojit lokální adresář na vzdálené místo se všemi interakcemi se soubory v šifrované relaci ssh.

localhost:~$ apt install sshfs

Nainstalujte balíček na Ubuntu a Debian sshfsa pak stačí připojit vzdálené umístění k našemu systému.

localhost:~$ sshfs user@remoteserver:/media/data ~/data/

17. Multiplexování SSH pomocí ControlPath

Ve výchozím nastavení, pokud existuje připojení ke vzdálenému serveru pomocí ssh druhé spojení s ssh nebo scp naváže novou relaci s dodatečnou autentizací. Volba ControlPath umožňuje použít existující relaci pro všechna následující připojení. To výrazně urychlí proces: efekt je patrný i v místní síti a ještě více při připojení ke vzdáleným zdrojům.

Host remoteserver
        HostName remoteserver.example.org
        ControlMaster auto
        ControlPath ~/.ssh/control/%r@%h:%p
        ControlPersist 10m

ControlPath určuje soket pro nová připojení pro kontrolu aktivní relace ssh. Poslední možnost znamená, že i po odhlášení z konzole zůstane stávající relace otevřená 10 minut, takže se během té doby můžete znovu připojit na stávajícím soketu. Další informace naleznete v nápovědě. ssh_config man.

18. Streamujte video přes SSH s VLC a SFTP

Dokonce i dlouholetí uživatelé ssh и vlc (Video Lan Client) ne vždy vědí o této pohodlné možnosti, když opravdu potřebujete sledovat video přes síť. V nastavení soubor | Otevřete Network Stream pořady vlc můžete zadat umístění jako sftp://. Pokud je vyžadováno heslo, budete vyzváni.

sftp://remoteserver//media/uploads/myvideo.mkv

19. Dvoufaktorová autentizace

Pro službu SSH platí stejné dvoufaktorové ověření jako u vašeho bankovního účtu nebo účtu Google.

Samozřejmě, ssh zpočátku má funkci dvoufaktorové autentizace, což znamená heslo a klíč SSH. Výhodou hardwarového tokenu nebo aplikace Google Authenticator je, že se obvykle jedná o jiné fyzické zařízení.

Podívejte se na našeho 8minutového průvodce pomocí Google Authenticator a SSH.

20. Skákání hostitelů pomocí ssh a -J

Pokud segmentace sítě vyžaduje, abyste přeskakovali přes více hostitelů ssh, abyste se dostali do cílové cílové sítě, zkratka -J vám ušetří čas.

localhost:~$ ssh -J host1,host2,host3 [email protected]

Hlavní věcí je pochopit, že to není podobné příkazu ssh host1, pak user@host1:~$ ssh host2 atd. Volba -J chytře využívá předávání, aby localhost vytvořil relaci s dalším hostitelem v řetězci. Takže ve výše uvedeném příkladu se náš localhost ověřuje na host4. To znamená, že jsou použity naše klíče localhost a relace z localhost na host4 je plně šifrována.

Za takovou příležitost ssh_config specifikovat možnost konfigurace ProxyJump. Pokud musíte pravidelně procházet několika hostiteli, automatizace pomocí konfigurace ušetří spoustu času.

21. Blokování pokusů o hrubou sílu SSH pomocí iptables

Každý, kdo spravoval službu SSH a podíval se na protokoly, si je vědom počtu pokusů o hrubou sílu, ke kterým dochází každou hodinu každého dne. Rychlý způsob, jak snížit šum protokolu, je přesunout SSH na nestandardní port. Proveďte změny v souboru sshd_config pomocí možnosti konfigurace Přístav##.

S iptables můžete také snadno zablokovat pokusy o připojení k portu při dosažení určité prahové hodnoty. Snadný způsob, jak toho dosáhnout, je použít OSSEC, protože nejen blokuje SSH, ale provádí řadu dalších opatření pro detekci narušení založených na názvu hostitele (HIDS).

22. SSH Escape pro změnu přesměrování portů

A náš poslední příklad ssh navržený ke změně přesměrování portů za běhu v rámci existující relace ssh. Představte si takový scénář. Jste hluboko v síti; pravděpodobně přeskočil půl tuctu hostitelů a potřebuje místní port na pracovní stanici, který je přesměrován do Microsoft SMB starého systému Windows 2003 (pamatuje si někdo ms08-67?).

kliknutím enter, zkuste zadat v konzoli ~C. Toto je sekvence escape relace, která umožňuje provádět změny ve stávajícím připojení.

localhost:~$ ~C
ssh> -h
Commands:
      -L[bind_address:]port:host:hostport    Request local forward
      -R[bind_address:]port:host:hostport    Request remote forward
      -D[bind_address:]port                  Request dynamic forward
      -KL[bind_address:]port                 Cancel local forward
      -KR[bind_address:]port                 Cancel remote forward
      -KD[bind_address:]port                 Cancel dynamic forward
ssh> -L 1445:remote-win2k3:445
Forwarding port.

Zde můžete vidět, že jsme předali náš místní port 1445 hostiteli Windows 2003, kterého jsme našli ve vnitřní síti. Teď už jen běžet msfconsole, a můžete jít (za předpokladu, že plánujete používat tohoto hostitele).

Dokončení

Tyto příklady, tipy a příkazy ssh by měl poskytnout výchozí bod; Další informace o každém z příkazů a funkcí jsou k dispozici na manuálových stránkách (man ssh, man ssh_config, man sshd_config).

Vždy mě fascinovala možnost přístupu k systémům a provádění příkazů kdekoli na světě. Rozvíjejte své dovednosti pomocí nástrojů, jako je ssh budete efektivnější v jakékoli hře, kterou hrajete.

Zdroj: www.habr.com

Přidat komentář