Këshilla praktike, shembuj dhe tunel SSH

Këshilla praktike, shembuj dhe tunel SSH
Shembuj praktikë SSH, që do t'ju ngulin në një nivel të ri të aftësive tuaja si një administrator sistemesh i largët. Komandat dhe këshillat do t'ju ndihmojnë jo vetëm të përdorni SSH, por gjithashtu të lëvizni më me profesionalizëm në rrjet.

Dijeni disa truke ssh është e dobishme për çdo administrator sistemi, inxhinier rrjeti ose specialist të sigurisë.

Shembuj praktikë SSH

  1. Proksi SSH socks
  2. Tuneli SSH (rrugëzimi i porteve)
  3. Tuneli SSH në një host të tretë
  4. Tuneli SSH i kundërt
  5. Proksi SSH i kundërt
  6. Instalimi i VPN me SSH
  7. Kopjimi i çelësit SSH (ssh-copy-id)
  8. Kryerja e komandave në distancë (jo interaktive)
  9. Kapja e paketave të largëta dhe shikimi në Wireshark
  10. Kopjimi i një dosjeje lokale në një server të largët me SSH
  11. Aplikacione GUI të largëta me rrugëzim SSH X11
  12. Kopjimi i skedareve në distancë me rsync dhe SSH
  13. SSH përmes rrjetit Tor
  14. SSH në instancën EC2
  15. Redaktimi i skedarëve tekstualë me VIM përmes ssh/scp
  16. Monte një SSH të largët si një dosje lokale me SSHFS
  17. Multipleximi SSH me ControlPath
  18. Streaming video nëpërmjet SSH me VLC dhe SFTP
  19. Autentifikimi me dy faktorë
  20. Kërcime midis hosteve me SSH dhe -J
  21. Bllokimi i përpjekjeve për bruteforce të SSH me iptables
  22. SSH Escape për të ndryshuar rrugëzimin e porteve

Fillimisht bazat

Analiza e komandës së linjës SSH

Në shembullin e ardhshëm, përdoren parametra të zakonshëm, shpesh të pranishëm kur lidheni me një server të largët SSH.

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

  • -v: informacioni i rregullt për përmbledhjen është veçanërisht i dobishëm kur analizoni problemet e autentifikimit. Mund të përdoret disa herë për të ofruar informacion shtesë.
  • - p 22: porti për lidhjen me serverin e largët SSH. 22 nuk është e nevojshme të specifikohet, sepse kjo është vlera e parazgjedhur, por nëse protokolli është në një port tjetër, atëherë e specifikojmë atë me parametrin -p. Porti i dëgjimit përcaktohet në skedarin sshd_config în format Port 2222.
  • -C: kompresioni për lidhjen. Nëse keni një kanal të ngadaltë ose po shikoni shumë tekst, kjo mund ta përshpejtojë lidhjen.
  • neo@: vargu përpara simbolit @ tregon emrin e përdoruesit për autentifikimin në serverin e largët. Nëse nuk e specifikoni, do të përdoret emri i përdoruesit të llogarisë tuaj aktuale (~$ whoami). Emri i përdoruesit gjithashtu mund të specifikohet me parametrin --selector.
  • remoteserver: emri i hostit që po lidheni ssh, mund të jetë emri i plotë i domain-it, adresa IP, ose çdo host tjetër në skedarin lokal hosts. Për t'u lidhur me një host që mbështet si IPv4 ashtu edhe IPv6, mund të shtoni parametër në komandën -4 ose -6 për resolvimin e saktë.

Të gjitha parametrat e mësipërm janë të opsionalit, përveç remoteserver.

Përdorimi i skedarit të konfigurimit

Ndërkohë që shumë janë të njohur me skedarin sshd_config, ka edhe një skedar konfigurimi të klientit për komandën ssh. Vlera e paracaktuar ~/.ssh/config, por mund të përcaktohet si një parametër për opsionin -F.

Host *
     Port 2222

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

Në skedarin e lartë të konfigurimit ssh, ka dy regjistrime hosti. I pari nënkupton të gjithë hostet, për të gjithë aplikohet parameteri i konfigurimit Port 2222. I dyti thotë se për hostin remoteserver duhet të përdoren një emër tjetër përdoruesi, port, FQDN dhe IdentityFile.

Skedari i konfigurimit mund të kursejë shumë kohë në plotësimin e karaktereve, duke lejuar aplikimin automatik të konfigurimeve të avancuara kur lidheni me hoste specifike.

Kopjimi i skedareve përmes SSH me SCP

Klienti SSH vjen me dy mjete shumë të dobishme për kopjimin e skedareve përmes një lidhjeje të enkriptuar ssh.Më poshtë është një shembull i përdorimit standard të komandave scp dhe sftp. Kushtojini vëmendje, shumë parametra për ssh aplikohen edhe në këto komanda.

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

Në këtë shembull skedari mypic.png u kopjua në remoteserver në folderin /media/data dhe u rinovua në mypic_2.png.

Mos harroni ndryshimin në parametrin e portit. Këtu bllokohen shumë që nisin scp nga komandat e linjës. Këtu parametri i portit -P, e jo -p, si në klientin ssh! Do ta harroni, por mos u shqetësoni, të gjithë e harrojnë.

Për ata që janë të njohur me konsolën ftp, shumë nga komandat duken të ngjashme në sftp.Ju mund të bëni push, put dhe ls, siç dëshiron zemra.

sftp neo@remoteserver

Shembuj praktikë

Në shumë nga këto shembuj mund të arrihet rezultati në metoda të ndryshme. Si dhe në të gjitha udhëzimet tona dhe shembuj, preferohet shembujt praktikë që thjesht bëjnë punën e tyre.

1. SSH socks-proxy

Funksioni SSH Proxy numri 1 për një arsye të fortë. Ai është më i fuqishëm sesa shumë e supozojnë dhe ju jep qasje në çdo sistem të cilit i qashet serveri i largët, duke përdorur praktikisht çdo aplikacion. Klienti ssh mund të tunelizojë trafikun përmes serverit proxy SOCKS me një komandë të thjeshtë. Është e rëndësishme të kuptoni se traffiku në sistemet e largëta do të dalë nga serveri i largët, siç do të tregojë në log-et e serverit web.

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

Këtu po aktivizojmë socks-proxy në portin TCP 8888, komandën e dytë kontrollon që porta është aktive në mënyrë dëgjimi. 127.0.0.1 tregon se shërbimi funksionon vetëm në localhost. Mund të aplikojmë një komandë pak të ndryshme për të dëgjuar të gjitha ndërfaqet, duke përfshirë ethernet ose wifi, kjo do t'i lejojë aplikacionet e tjera (browsers etj.) në rrjetin tonë të lidhen me shërbimin proxy përmes ssh socks-proxy.

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

Tani mund të konfigurojmë shfletuesin për t'u lidhur me socks-proxy. Në Firefox, zgjidhni Cilësimet | Të Përgjithshme | Parametrat e Rjetit. Shkruani adresën IP dhe portin për t'u lidhur.

Këshilla praktike, shembuj dhe tunel SSH

Kujdesi me opsionin në fund të formularit, për që kërkesat DNS të shkojnë gjithashtu përmes proxy SOCKS. Nëse po përdorni një server proxy për të enkriptuar trafikun web në rrjetin lokal, me siguri do të donit ta zgjidhnit këtë opsion, për t'u siguruar që kërkesat DNS tunelizohen përmes lidhjes SSH.

Aktivizimi i socks-proxy në Chrome

Fillimi i Chrome me disa parametra të rreshtit të komandës aktivizon socks-proxy, si dhe tunelizimin e kërkesave DNS nga shfletuesi. Besoni, por kontrolloni. Përdorni tcpdump për të verifikuar, që kërkesat DNS nuk janë më të dukshme.

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

Përdorimi i aplikacioneve të tjera me proxy

Kujdesi, shumë aplikacione të tjera gjithashtu mund të përdorin socks-proxy. Shfletuesi web është thjesht më i njohuri prej tyre. Disa aplikacione kanë opsione konfigurimi për aktivizimin e serverit proxy. Të tjerat kanë nevojë për pak ndihmë me një program ndihmës. Për shembull, proxychains lejon që Microsoft RDP e të tjera të nisen përmes socks-proxy.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Opsionet e konfigurimit të socks-proxy përcaktohen në skedarin e konfigurimit të proxychains.

Sugjerim: nëse po përdorni desktop të largët nga Linux në Windows? Provat me klientin FreeRDPKjo është një realizim më modern se rdesktop, me një ndërveprim shumë më të qetë.

Shembulli i përdorimit të SSH përmes një proksi socks

Je në një kafe apo hotel — dhe je i detyruar të përdorësh një WiFi të paqëndrueshëm. Nga laptopi, lançojmë lokal një proksi ssh dhe krijojmë një tunel ssh në rrjetin tonë të shtëpisë te një Raspberry Pi lokal. Duke përdorur shfletuesin apo aplikacione të tjerë të konfiguruar për proksi socks, mund të kemi qasje në çdo shërbim rrjeti në rrjetin tonë të shtëpisë apo të dalim në internet përmes lidhjes sonë shtëpiake. Gjithçka midis laptopit tënd dhe serverit të shtëpisë (përmes Wi-Fi dhe internetit deri në shtëpi) është e enkriptuar në tunelin SSH.

2. Tuneli SSH (ridrejtimi i porteve)

Në formën më të thjeshtë, një tunel SSH thjesht hap një port në sistemin tuaj lokal, i cili lidhet me një port tjetër në anën tjetër të tunelit.

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

Le të shqyrtojmë parametrin -L. Ai mund të paraqitet si ana lokale e dëgjimit. Pra, në shembullin e mësipërm, porta 9999 dëgjon në anën e localhost dhe ridrejtohet përmes portës 80 në remoteserver. Vini re se 127.0.0.1 i referohet localhost në serverin e largët!

Të ngjitemi në një shkallë. Në shembullin tjetër, portat e dëgjimit lidhen me node të tjerë në rrjetin lokal.

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

Në këto shembuj ne lidhemi me portin në serverin web, por kjo mund të jetë një server proksi ose çdo shërbim tjetër TCP.

3. Tuneli SSH për një host të jashtëm

Mund të përdorim të njëjtat parametra për të lidhur tunelin nga serveri i largët në një shërbim tjetër që funksionon në një sistem të tretë.

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

Në këtë shembull po ridrejtojmë tunelin nga remoteserver te serveri web që punon në 10.10.10.10. Trafiku nga remoteserver në 10.10.10.10 nuk është më në tunelin SSH. Serveri web në 10.10.10.10 do ta konsiderojë remoteserver si burimin e kërkesave web.

4. Tuneli i kthyer SSH

Këtu do të vendosim një port dëgjues në serverin e largët, i cili do të lidhet përsëri me një port lokal në localhost tonë (apo sistem tjetër).

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

Në këtë sesion SSH, krijohet një lidhje nga porta 1999 në remoteserver te porta 902 në klientin tonë lokal.

5. Proksi i kthyer SSH

Në këtë rast, ne vendosim një socks-proxy në lidhjen tonë ssh, megjithatë, proxy njësoj dëgjon në skajin e largët të serverit. Lidhjet me këtë proxy të largët tani shfaqen nga tuneli si trafik nga localhost-i ynë.

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

Zgjidhja e problemeve me tunelin e largët SSH

Nëse keni probleme me funksionalitetin e opsioneve të largëta SSH, kontrolloni me netstat, në cilat ndërfaqe të tjera lidhet porta e tij e dëgjimit. Edhe pse në shembujt tanë kemi treguar 0.0.0.0, nëse vlera GatewayPorts në sshd_config është caktuar në jo, atëherë dëgjuesi do të lidhet vetëm me localhost (127.0.0.1).

Kujdesi i sigurisë

Kujdes, kur hapni tunele dhe socks-proxies, burimet e brendshme rrjetit mund të jenë të aksesueshme nga rrjete të pasigurta (p.sh., interneti!). Kjo mund të jetë një kërcënim serioz për sigurinë, prandaj sigurohuni që të kuptoni se çfarë përfaqëson dëgjuesi dhe ndaj çfarë ka qasje.

6. Instalimi i VPN përmes SSH

Një term i zakonshëm mes specialistëve për metodat e sulmit (përdorues të shërbimeve të testimit të penetrimit dhe të tjerë) është "pika mbështetëse në rrjet". Pas vendosjes së lidhjes në një sistem, ky sistem bëhet një portë për akses të mëtejshëm në rrjet. Një pikë mbështetjeje që lejon zgjerimin.

Për një pikë mbështetje, ne mund të përdorim një SSH-proxy dhe proxychains, megjithatë, ka disa kufizime. Për shembull, nuk do të jetë e mundur të punoni drejtpërdrejt me socket-at, kështu që nuk do të mund të skanojmë portet brenda rrjetit përmes Nmap SYN.

Duke përdorur këtë variant më të avancuar të VPN, lidhja ulet në nivelin 3. Pastaj ne mund të drejtojmë thjesht trafikun përmes tunelit, duke përdorur ruterimin standard të rrjetit.

Metoda përdor ssh, iptables, interfacet tun dhe ruterimin.

Së pari, duhet të caktoni këto parametra në sshd_config. Duke qenë se po bëjmë ndryshime në interfacet e të dyja sistemeve, të largëtës dhe të klientit, na duhen të drejtat e root nga të dy anët.

PermitRootLogin yes
PermitTunnel yes

Pastaj do të vendosim lidhjen ssh duke përdorur parametrin që kërkon inicializimin e pajisjeve tun.

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

Tani duhet të kemi një pajisje tun kur t'i shikojmë interfacet (# ip a). Hapi tjetër do të shtojë adresa IP në interfacet e tunelit.

Anës klientit SSH:

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

Anës serverit SSH:

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

Tani kemi një rrugë të drejtpërdrejtë për në host të tjerë (route -n dhe ping 10.10.10.10).

Çdo subnet mund të rregullohet përmes një hosti në anën tjetër.

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

Në anën e largët duhet të aktivizohet ip_forward dhe 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

Boom! VPN përmes tunelit SSH në nivelin e rrjetit 3. Ky është një fitore.

Nëse ndodhin disa probleme, përdorni tcpdump dhe ping, për të përcaktuar shkakun. Duke qenë se luajmë në nivelin 3, pakot tona icmp do të kalojnë përmes këtij tuneli.

7. Kopjimi i çelësit SSH (ssh-copy-id)

Ka disa mënyra për këtë, por kjo komandë kursen kohë për të mos kopjuar skedarët manualisht. Ajo thjesht kopjon ~/ .ssh /id_rsa.pub (ose çelësi i paracaktuar) nga sistemi juaj në ~/ .ssh /authorized_keys në serverin e largët.

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

8. Ekzekutimi i komandave të largëta (pa ndërveprim)

Komanda ssh mund të lidhet me komanda të tjera për një ndërfaqe të zakonshme komode. Thjesht shtoni komandën që dëshiron të ekzekutosh në hostin e largët si parametër të fundit në thonjëza.

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

Në këtë shembull grep ekzekutohet në sistemin lokal pasi logu është shkarkuar përmes kanalit ssh. Nëse skedari është i madh, është më lehtë ta ekzekutoni grep në anën e largët, duke vendosur të dyja komandat në thonjëza të dyfishta.

Një shembull tjetër ekzekuton të njëjtin funksion si ssh-copy-id nga shembulli 7.

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

9. Përdorimi i paketimeve të largëta dhe shikimi në Wireshark

Mora një nga shembujt tanë me tcpdump. Përdorni atë për të kapur paketat e largëta duke dhënë rezultatin drejtpërdrejt në GUI të Wireshark lokal.

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

10. Kopjimi i dosjes lokale në serverin e largët përmes SSH

Një truk i bukur që kompreson dosjen me bzip2 (ky është parametri -j në komandë tar), dhe pastaj nxjerr rrjedhën bzip2 në anën tjetër, duke krijuar një kopje të dosjes në serverin e largët.

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

11. Aplikacione GUI të largëta me redirektimin SSH X11

Nëse në klient dhe serverin e largët janë të instaluar "ixhet", mund të ekzekutoni një komandë GUI në mënyrë të largët, me dritaren në desktopin tuaj lokal. Kjo funksionalitet është ekzistuar prej kohësh, por ende është shumë e dobishme. Ekzekutoni një shfletues web të largët ose madje një konsolë VMware Workstation, ashtu siç bëj unë në këtë shembull.

localhost:~$ ssh -X remoteserver vmware

Një linjë është e nevojshme X11Forwarding po në skedarin sshd_config.

12. Kopjimi i skedarëve në distancë përmes rsync dhe SSH

rsync është shumë më i lehtë scp, nëse kërkohet një kopje rezervë periodike e një katalogu, një numri të madh skedash ose skedash shumë të mëdhenj. Ka një funksion rikuperimi pas dështimit të transferimit dhe kopjon vetëm skedat e ndryshuara, duke ruajtur kështu trafikun dhe kohën.

Në këtë shembull përdoret kompresimi gzip (-z) dhe moda e arkivimit (-a), e cila përfshin kopjimin rekurziv.

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

13. SSH përmes rrjetit Tor

Rruga anonime Tor mund të tunelizojë trafikun SSH me komandën torsocks. Komanda e mëposhtme do të dërgojë një proxy ssh përmes Torit.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Torsocks do të përdorë portin 9050 në localhost për proxy. Si gjithmonë, kur përdorni Tor, është e nevojshme të kontrolloni me kujdes se cili trafik është tunelizuar dhe çështje të tjera të sigurisë operative (opsec). Ku po shkojnë kërkesat tuaja DNS?

14. SSH në instancën EC2

Për të u lidhur me një instancë EC2 është e nevojshme një çelës privat. Shkarkoni atë (me zgjerimin .pem) nga paneli i kontrollit Amazon EC2 dhe ndryshoni lejet (chmod 400 my-ec2-ssh-key.pem). Ruani çelësin në një vend të sigurt ose vendoseni në dosjen tuaj ~/ .ssh/.

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

Parametri -i thjesht i thotë klientit ssh të përdorë këtë çelës. Skedari ~/.ssh/config është perfekt për konfigurimin automatik të përdorimit të çelësit gjatë lidhjes me hostin ec2.

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

15. Redaktimi i skedarëve tekstualë me VIM përmes ssh/scp

Për të gjithë adhuruesit e vim kjo këshillë do t'ju kursejë pak kohë. Me vim skedarët redaktohen me scp me një komandë. Ky metod thjesht krijon një skedar lokal në /tmp, dhe pastaj e kopjon përsëri, sa herë që ne e ruajmë atë nga vim.

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

Kujdes: formati është pak ndryshe nga zakonisht. scp. Pas hostit kemi dyfishin //. Ky është një lidhje në rrugën absolute. Një slash do të thotë një rrugë në lidhje me dosjen e shtëpisë users.

**warning** (netrw) nuk mund të përcaktojë metodën (formati: protokoll://[user@]hostname[:port]/[path])

Nëse e see një gabim të tillë, kontrolloni dy herë formatin e komandës. Zakonisht, kjo do të thotë një gabim sintaksor.

16. Montimi i SSH të largët si një dosje lokale me SSHFS

With the help of sshfs — klienti i sistemit të skedarëve ssh — ne mund të lidhim një katalog lokal me një vendndodhje të largët me të gjitha ndërveprimet e skedarëve në një seancë të enkriptuar ssh.

localhost:~$ apt install sshfs

Në Ubuntu dhe Debian do të instalojmë paketën sshfs, dhe pastaj thjesht do të montojmë vendndodhjen e largët në sistemin tonë.

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

17. Multipleximi SSH me ControlPath

Sipas parazgjedhjes, nëse ka një lidhje ekzistuese me një server të largët me anë të ssh lidhjes së dytë me ssh ose scp krijon një seancë të re me një autentifikim shtesë. Opcioni ControlPath lejon përdorimin e seancës ekzistuese për të gjitha lidhjet e ardhshme. Kjo ndjeshëm shpejton procesin: efekti është i dukshëm madje edhe në një rrjet lokal, e sidomos kur lidhemi me burime të shumëta të largëta.

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

ControlPath tregon soketin për verifikimin e lidhjeve të reja nëse ka një seancë aktive ssh. Opcioni i fundit do të thotë se edhe pasi të dilni nga konsola, seanca ekzistuese do të mbetet e hapur për 10 minuta, kështu që gjatë këtij kohë do të keni mundësinë të lidhni përsëri përmes soketit ekzistues. Për informacione shtesë, shihni ndihmën ssh_config man.

18. Video në streaming përmes SSH me VLC dhe SFTP

Madje edhe përdoruesit e gjatë ssh dhe vlc (Video Lan Client) nuk e dinë gjithmonë për këtë opsion të dobishëm, kur është urgjente të shikoni një video në rrjet. Në cilësimet File | Open Network Stream për punë me lloje të ndryshme grafikë. Për iOS ka mjaft shumë prej tyre. vlc mund të vendosni vendndodhjen si sftp://. Nëse kërkohet një fjalëkalim, do të shfaqet një kërkesë.

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

19. Autentifikimi me dy faktorë

Autentikimi me dy faktorë, ashtu si në llogarinë tuaj bankare ose llogarinë Google, është i aplikueshëm për shërbimin SSH.

Sigurisht, ssh ka fillimisht funksionin e autentifikimit me dy faktorë, i cili përfshin një fjalëkalim dhe një çelës SSH. Avantazhi i një tokeni hardware ose aplikacioni Google Authenticator është se zakonisht është një pajisje fizike e ndryshme.

Shikoni udhëzimin tonë 8-minutësh në përdorimin e Google Authenticator dhe SSH.

20. Kërcimi midis hosteve me ssh dhe -J

Nëse për shkak të segmentimit të rrjetit duhet të kaloni përmes disa hosteve ssh për të arritur në rrjetin përfundimtar, do t'ju kursejë kohë shkurtimi -J.

localhost:~$ ssh -J host1,host2,host3 user@host4.internal

Këtu është e rëndësishme të kuptoni se kjo nuk është ekuivalente me komandën ssh host1, pastaj user@host1:~$ ssh host2 etj. Përcaktimi -J përdor me inteligjencë redirektimin, që localhost të vendosë një sesion me hostin e ardhshëm në zinxhir. Kështu, në shembullin e mësipërm, localhost-i ynë autentikohet me host4. Kjo do të thotë se përdoren çelësat tanë localhost, dhe sesioni nga localhost në host4 është plotësisht i koduar.

Për këtë mundësi në ssh_config specifikoni opsionin e konfiguracionit ProxyJump. Nëse shpesh duhet të kaloni përmes disa hosteve, automatizimi përmes konfigurimit do t'ju kursejë shumë kohë.

21. Bllokimi i përpjekjeve për bruteforce SSH me iptables

Kushdo që ka menaxhuar shërbimin SSH dhe ka parë logjet e tij, e di se sa shumë përpjekje bruteforce ndodhin çdo orë, çdo ditë. Një mënyrë e shpejtë për të reduktuar zhurmën në logjet është të kaloni SSH në një port të pazakontë. Bëni ndryshimet në skedarin sshd_config me parametrin e konfiguracionit Port##.

Me ndihmën e iptables gjithashtu mund të bllokoni lehtësisht përpjekjet për lidhje me portin kur arrihet një prag i caktuar. Një mënyrë e thjeshtë për ta bërë këtë është të përdorni OSSEC, pasi që ai jo vetëm që bllokon SSH-në, por bënë një sërë masash të tjera për zbulimin e thyerjeve të bazuara në emrin e hostit (HIDS).

22. SSH Escape për ndryshimin e redirektimit të porteve

Dhe shembulli ynë i fundit ssh është i destinuar për të ndryshuar redirektimin e porteve në flakë brenda sesionit ekzistues ssh. Imagjinoni një skenar të tillë. Jeni thellë në rrjet; ndoshta keni kaluar përmes një duzine hostesh dhe ju nevojitet një port lokal në punë, i cili është redirektuar në Microsoft SMB të sistemit të vjetër Windows 2003 (nuk kujtohet ndokush ms08-67?).

Duke shtypur enter, provoni të shkruani në konsolën ~C. Kjo është një sekuencë kontrolli në sesion, që lejon të bëni ndryshime në lidhjen ekzistuese.

localhost:~$ ~C
ssh> -h
Komandat:
      -L[bind_address:]port:host:hostport    Kërkoni për paraqitjen lokale
      -R[bind_address:]port:host:hostport    Kërkoni për paraqitjen e largët
      -D[bind_address:]port                  Kërkoni për paraqitje dinamike
      -KL[bind_address:]port                 Anuloni paraqitjen lokale
      -KR[bind_address:]port                 Anuloni paraqitjen e largët
      -KD[bind_address:]port                 Anuloni paraqitjen dinamike
ssh> -L 1445:remote-win2k3:445
Duke redirektuar portin.

Këtu mund të shihni se kemi redirektuar portin tonë lokal 1445 në host-in Windows 2003, që e gjetëm në rrjetin tonë të brendshëm. Tani thjesht filloni msfconsole, dhe mund të vazhdoni (nëse planifikoni të përdorni këtë host).

Përfundimi

Këto shembuj, këshilla dhe komanda ssh duhet të ofrojë një pikë të nisjes; informacioni shtesë rreth çdo ekipi dhe mundësive është i disponueshëm në faqet ndihmëse (man ssh, man ssh_config, Më ka tërhequr gjithmonë mundësia për të aksesuar sisteme dhe për të ekzekutuar komandat nga çfarëdo pikë të botës. Duke zhvilluar aftësitë e mia me mjete si).

do të bëheni më efikas në çdo lojë që luani. ssh 🥇Këshilla praktike, shembuj dhe tunel SSH | ProHoster

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster