Praktiniai patarimai, pavyzdžiai ir SSH tuneliai

Praktiniai patarimai, pavyzdžiai ir SSH tuneliai
Praktiniai pavyzdžiai SSH, kuris pakels jūsų, kaip nuotolinio sistemos administratoriaus, įgūdžius į naują lygį. Komandos ir patarimai padės ne tik naudoti SSH, bet ir kompetentingiau naršyti tinkle.

Žinodamas keletą gudrybių ssh naudinga bet kuriam sistemos administratoriui, tinklo inžinieriui ar saugos specialistui.

Praktiniai SSH pavyzdžiai

  1. SSH kojinių tarpinis serveris
  2. SSH tunelis (prievado peradresavimas)
  3. SSH tunelis į trečiąjį pagrindinį kompiuterį
  4. Atvirkštinis SSH tunelis
  5. SSH atvirkštinis tarpinis serveris
  6. VPN diegimas per SSH
  7. SSH rakto kopijavimas (ssh-copy-id)
  8. Nuotolinis komandos vykdymas (neinteraktyvus)
  9. Nuotolinis paketų fiksavimas ir peržiūra „Wireshark“.
  10. Vietinio aplanko kopijavimas į nuotolinį serverį per SSH
  11. Nuotolinės GUI programos su SSH X11 persiuntimu
  12. Nuotolinis failų kopijavimas naudojant rsync ir SSH
  13. SSH per Tor tinklą
  14. SSH į EC2 egzempliorius
  15. Tekstinių failų redagavimas naudojant VIM per ssh/scp
  16. Prijunkite nuotolinį SSH kaip vietinį aplanką su SSHFS
  17. SSH tankinimas su ControlPath
  18. Perduokite vaizdo įrašą per SSH naudodami VLC ir SFTP
  19. Dviejų veiksnių autentifikavimas
  20. Šokinėjantys šeimininkai su SSH ir -J
  21. Blokuoti SSH brutalios jėgos bandymus naudojant iptables
  22. SSH Escape, kad pakeistumėte prievado persiuntimą

Pirmiausia pagrindai

SSH komandinės eilutės analizė

Šiame pavyzdyje naudojami įprasti parametrai, su kuriais dažnai susiduriama jungiantis prie nuotolinio serverio SSH.

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

  • -v: Derinimo išvestis ypač naudinga analizuojant autentifikavimo problemas. Galima naudoti kelis kartus, kad būtų rodoma papildoma informacija.
  • - p 22: ryšio prievadas į nuotolinį SSH serverį. 22 nebūtina nurodyti, nes tai yra numatytoji reikšmė, bet jei protokolas yra kitame prievade, tai nurodome naudodami parametrą -p. Klausymo prievadas nurodytas faile sshd_config formatu Port 2222.
  • -C: Suspaudimas prijungimui. Jei jūsų ryšys lėtas arba žiūrite daug teksto, tai gali pagreitinti ryšį.
  • neo@: eilutė prieš simbolį @ nurodo vartotojo vardą, skirtą autentifikavimui nuotoliniame serveryje. Jei jo nenurodysite, pagal nutylėjimą bus naudojamas paskyros, prie kurios šiuo metu esate prisijungę, naudotojo vardas (~$whoami). Vartotoją taip pat galima nurodyti naudojant parametrą -l.
  • remoteserver: prieglobos, prie kurios reikia prisijungti, pavadinimas ssh, tai gali būti visiškai kvalifikuotas domeno vardas, IP adresas arba bet koks vietinio kompiuterio faile esantis kompiuteris. Norėdami prisijungti prie pagrindinio kompiuterio, kuris palaiko ir IPv4, ir IPv6, galite įtraukti parametrą į komandų eilutę -4 arba -6 tinkamam sprendimui.

Visi aukščiau nurodyti parametrai yra neprivalomi, išskyrus remoteserver.

Naudojant konfigūracijos failą

Nors daugelis yra susipažinę su failu sshd_config, taip pat yra komandos kliento konfigūracijos failas ssh. Numatytoji reikšmė ~/.ssh/config, bet jis gali būti apibrėžtas kaip parinkties parametras -F.

Host *
     Port 2222

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

Aukščiau pateiktame ssh konfigūracijos failo pavyzdyje yra du pagrindinio kompiuterio įrašai. Pirmasis reiškia visus pagrindinius kompiuterius, kurie naudoja prievado 2222 konfigūracijos parametrą, o antrasis nurodo, kad pagrindiniam kompiuteriui nuotolinis serveris turėtų būti naudojamas kitas vartotojo vardas, prievadas, FQDN ir tapatybės failas.

Konfigūracijos failas gali sutaupyti daug laiko spausdinimui, nes leidžia automatiškai pritaikyti išplėstinę konfigūraciją jungiantis prie konkrečių kompiuterių.

Failų kopijavimas per SSH naudojant SCP

SSH klientas turi du kitus labai patogius failus, skirtus kopijuoti failus užšifruotas ssh ryšys. Žemiau rasite standartinio scp ir sftp komandų naudojimo pavyzdį. Atminkite, kad daugelis ssh parinkčių taip pat taikomos šioms komandoms.

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

Šiame pavyzdyje failas mypic.png nukopijuota į nuotolinis serveris į aplanką /media/data ir pervadintas į mypic_2.png.

Nepamirškite apie prievado parametro skirtumą. Čia paleidžiant pagauna daug žmonių scp iš komandinės eilutės. Čia yra prievado parametras -PIr ne -p, kaip ir ssh kliente! Jūs pamiršite, bet nesijaudinkite, visi pamiršta.

Tiems, kurie yra susipažinę su konsolėmis ftp, daugelis komandų yra panašios sftp... Jūs galite padaryti stumti, sudėti и lskaip širdis geidžia.

sftp neo@remoteserver

Praktiniai pavyzdžiai

Daugelyje šių pavyzdžių rezultatų galima pasiekti naudojant skirtingus metodus. Kaip ir visose mūsų vadovėliai ir pavyzdžiams, pirmenybė teikiama praktiniams pavyzdžiams, kurie tiesiog atlieka savo darbą.

1. SSH kojinių tarpinis serveris

SSH tarpinio serverio funkcija yra 1 numeris dėl geros priežasties. Jis yra galingesnis, nei daugelis supranta, ir suteikia prieigą prie bet kurios sistemos, kurią nuotolinis serveris gali pasiekti naudodamas praktiškai bet kurią programą. SSH klientas gali nukreipti srautą per SOCKS tarpinį serverį viena paprasta komanda. Svarbu suprasti, kad srautas į nuotolines sistemas ateis iš nuotolinio serverio, tai bus nurodyta žiniatinklio serverio žurnaluose.

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

Čia paleidžiame kojinių tarpinį serverį TCP prievade 8888, antra komanda patikrina, ar prievadas aktyvus klausymosi režimu. 127.0.0.1 rodo, kad paslauga veikia tik „localhost“. Galime naudoti šiek tiek kitokią komandą klausytis visose sąsajose, įskaitant eternetą ar wifi, tai leis kitoms mūsų tinklo programoms (naršyklėms ir kt.) prisijungti prie tarpinio serverio paslaugos per ssh socks tarpinį serverį.

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

Dabar galime sukonfigūruoti naršyklę, kad ji prisijungtų prie kojinių tarpinio serverio. „Firefox“ pasirinkite Nustatymai | Pagrindinis | Ryšio nustatymai. Nurodykite IP adresą ir prievadą, kad galėtumėte prisijungti.

Praktiniai patarimai, pavyzdžiai ir SSH tuneliai

Atkreipkite dėmesį į formos apačioje pateiktą parinktį, kad jūsų naršyklės DNS užklausos būtų perduodamos per SOCKS tarpinį serverį. Jei naudojate tarpinį serverį žiniatinklio srautui šifruoti vietiniame tinkle, tikriausiai norėsite pasirinkti šią parinktį, kad DNS užklausos būtų tuneluojamos per SSH ryšį.

„Chrome“ suaktyvinamas kojinių tarpinis serveris

Paleidus „Chrome“ naudojant tam tikrus komandinės eilutės parametrus, bus įjungtas kojinių tarpinis serveris ir naršyklės DNS užklausos. Pasitikėk, bet patikrink. Naudokite tcpdump patikrinti, ar DNS užklausos nebematomos.

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

Kitų programų naudojimas su tarpiniu serveriu

Atminkite, kad daugelis kitų programų taip pat gali naudoti kojinių tarpinius serverius. Žiniatinklio naršyklė yra pati populiariausia iš visų. Kai kurios programos turi konfigūracijos parinktis, leidžiančias įjungti tarpinį serverį. Kitiems reikia šiek tiek pagalbos naudojant pagalbinę programą. Pavyzdžiui, tarpinių grandinių leidžia paleisti per kojinių tarpinį serverį Microsoft RDP ir kt.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

„Socks“ tarpinio serverio konfigūracijos parametrai nustatomi „proxychains“ konfigūracijos faile.

Patarimas: jei naudojate nuotolinį darbalaukį iš Linux sistemoje Windows? Išbandykite klientą FreeRDP. Tai yra modernesnis įgyvendinimas nei rdesktop, su daug sklandesne patirtimi.

Galimybė naudoti SSH per kojinių tarpinį serverį

Jūs sėdite kavinėje ar viešbutyje ir esate priversti naudotis gana nepatikimu WiFi. Mes paleidžiame ssh tarpinį serverį vietoje iš nešiojamojo kompiuterio ir įdiegiame ssh tunelį į namų tinklą vietiniame Rasberry Pi. Naudodami naršyklę ar kitas programas, sukonfigūruotas kojinių tarpiniam serveriui, galime pasiekti bet kokias tinklo paslaugas savo namų tinkle arba prisijungti prie interneto per namų ryšį. Viskas tarp jūsų nešiojamojo kompiuterio ir namų serverio (per Wi-Fi ir internetą iki jūsų namų) yra užšifruota SSH tunelyje.

2. SSH tunelis (prievado peradresavimas)

Paprasčiausia forma SSH tunelis tiesiog atidaro jūsų vietinės sistemos prievadą, kuris jungiasi prie kito prievado kitame tunelio gale.

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

Pažiūrėkime į parametrą -L. Tai gali būti laikoma vietine klausymosi puse. Taigi aukščiau pateiktame pavyzdyje prievadas 9999 klausosi vietinio pagrindinio kompiuterio ir per 80 prievadą persiunčiamas į nuotolinį serverį. Atkreipkite dėmesį, kad 127.0.0.1 reiškia localhost nuotoliniame serveryje!

Eikime laipteliu aukštyn. Šiame pavyzdyje klausymosi prievadai perduodami kitiems vietinio tinklo pagrindiniams kompiuteriams.

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

Šiuose pavyzdžiuose jungiamės prie žiniatinklio serverio prievado, bet tai gali būti tarpinis serveris arba bet kuri kita TCP paslauga.

3. SSH tunelis į trečiosios šalies pagrindinį kompiuterį

Tuos pačius parametrus galime naudoti norėdami prijungti tunelį iš nuotolinio serverio prie kitos paslaugos, veikiančios trečioje sistemoje.

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

Šiame pavyzdyje mes nukreipiame tunelį iš nuotolinio serverio į žiniatinklio serverį, veikiantį 10.10.10.10. Srautas iš nuotolinio serverio į 10.10.10.10 nebėra SSH tunelyje. Žiniatinklio serveris 10.10.10.10 laikys nuotolinį serverį žiniatinklio užklausų šaltiniu.

4. Atvirkštinis SSH tunelis

Čia mes sukonfigūruosime nuotolinio serverio klausymo prievadą, kuris vėl prisijungs prie vietinio prievado mūsų vietiniame priegloboje (ar kitoje sistemoje).

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

Ši SSH sesija užmezga ryšį nuo 1999 prievado nuotoliniame serveryje iki 902 prievado mūsų vietiniame kliente.

5. SSH atvirkštinis tarpinis serveris

Šiuo atveju mes nustatome kojinių tarpinį serverį savo ssh ryšyje, tačiau tarpinis serveris klauso nuotoliniame serverio gale. Ryšiai su šiuo nuotoliniu tarpiniu serveriu dabar rodomi iš tunelio kaip srautas iš mūsų vietos prieglobos.

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

Nutolusių SSH tunelių trikčių šalinimas

Jei kyla problemų dėl nuotolinių SSH parinkčių veikimo, patikrinkite netstat, prie kokių kitų sąsajų prijungtas klausymosi prievadas. Nors pavyzdžiuose nurodėme 0.0.0.0, bet jei reikšmė GatewayPorts в sshd_config nustatytas į ne, tada klausytojas bus susietas tik su localhost (127.0.0.1).

Apsaugos Įspėjimas

Atkreipkite dėmesį, kad atidarius tunelius ir kojinių tarpinius serverius, vidinio tinklo ištekliai gali būti pasiekiami nepatikimiems tinklams (pvz., internetui!). Tai gali kelti rimtą pavojų saugumui, todėl įsitikinkite, kad suprantate, kas yra klausytojas ir prie ko jis turi prieigą.

6. VPN diegimas per SSH

Dažnas terminas tarp atakų metodų specialistų (pentestuotojų ir kt.) yra „atramos taškas tinkle“. Užmezgus ryšį vienoje sistemoje, ta sistema tampa vartais tolesnei prieigai prie tinklo. Atramos taškas, leidžiantis judėti į plotį.

Tokiam įsitvirtinimui galime naudoti SSH tarpinį serverį ir tarpinių grandinių, tačiau yra tam tikrų apribojimų. Pavyzdžiui, nebus galima tiesiogiai dirbti su lizdais, todėl negalėsime nuskaityti prievadų tinkle per Nmap SYN.

Naudojant šią pažangesnę VPN parinktį, ryšys sumažinamas iki 3 lygis. Tada mes galime tiesiog nukreipti srautą per tunelį naudodami standartinį tinklo maršrutą.

Metodas naudoja ssh, iptables, tun interfaces ir maršruto parinkimas.

Pirmiausia turite nustatyti šiuos parametrus sshd_config. Kadangi keičiame tiek nuotolinių, tiek klientų sistemų sąsajas, mes reikia root teisių iš abiejų pusių.

PermitRootLogin yes
PermitTunnel yes

Tada mes sukursime ssh ryšį naudodami parametrą, kuris reikalauja inicijuoti tun įrenginius.

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

Dabar turėtume turėti tun įrenginį rodydami sąsajas (# ip a). Kitas veiksmas prie tunelio sąsajų pridės IP adresus.

SSH kliento pusė:

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

SSH serverio pusė:

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

Dabar turime tiesioginį maršrutą į kitą pagrindinį kompiuterį (route -n и ping 10.10.10.10).

Galite nukreipti bet kurį potinklį per prieglobą kitoje pusėje.

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

Nuotolinėje pusėje turite įjungti 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

Boom! VPN per SSH tunelį 3 tinklo lygmenyje. Dabar tai pergalė.

Jei kyla kokių nors problemų, naudokite tcpdump и pingpriežasčiai nustatyti. Kadangi žaidžiame 3 sluoksniu, mūsų icmp paketai eis per šį tunelį.

7. Nukopijuokite SSH raktą (ssh-copy-id)

Yra keletas būdų tai padaryti, tačiau ši komanda sutaupo laiko, nes nekopijuoja failų rankiniu būdu. Jis tiesiog nukopijuoja ~/.ssh/id_rsa.pub (arba numatytąjį raktą) iš jūsų sistemos į ~/.ssh/authorized_keys nuotoliniame serveryje.

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

8. Nuotolinis komandos vykdymas (neinteraktyvus)

komanda ssh Galima susieti su kitomis komandomis, kad būtų sukurta bendra, patogi sąsaja. Tiesiog pridėkite komandą, kurią norite paleisti nuotoliniame pagrindiniame kompiuteryje, kaip paskutinį parametrą kabutėse.

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

Šiame pavyzdyje grep vykdomas vietinėje sistemoje po to, kai žurnalas buvo atsiųstas per ssh kanalą. Jei failas didelis, jį patogiau paleisti grep nuotolinėje pusėje tiesiog įdėdami abi komandas į dvigubas kabutes.

Kitas pavyzdys atlieka tą pačią funkciją kaip ssh-copy-id iš 7 pavyzdžio.

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

9. Nuotolinis paketų fiksavimas ir peržiūra Wireshark

Aš paėmiau vieną iš mūsų tcpdump pavyzdžiai. Naudokite jį nuotoliniu būdu užfiksuoti paketus ir rodyti rezultatus tiesiogiai vietinėje Wireshark GUI.

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

10. Vietinio aplanko kopijavimas į nuotolinį serverį per SSH

Puikus triukas, kuris suspaudžia aplanką naudojant bzip2 (tai yra parinktis -j komandoje tar), tada nuskaito srautą bzip2 kitoje pusėje, sukurdami pasikartojantį aplanką nuotoliniame serveryje.

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

11. Nuotolinės GUI programos su SSH X11 persiuntimu

Jei X yra įdiegtas kliente ir nuotoliniame serveryje, galite nuotoliniu būdu vykdyti GUI komandą su langu vietiniame darbalaukyje. Ši funkcija egzistuoja jau seniai, bet vis dar labai naudinga. Paleiskite nuotolinę žiniatinklio naršyklę arba net VMWawre Workstation konsolę, kaip aš darau šiame pavyzdyje.

localhost:~$ ssh -X remoteserver vmware

Reikalinga eilutė X11Forwarding yes faile sshd_config.

12. Nuotolinis failų kopijavimas naudojant rsync ir SSH

rsync daug patogiau scp, jei jums reikia periodinių katalogo, didelio failų skaičiaus arba labai didelių failų atsarginių kopijų. Yra funkcija, skirta atsigauti po perdavimo gedimo ir nukopijuoti tik pakeistus failus, tai taupo srautą ir laiką.

Šiame pavyzdyje naudojamas suspaudimas gzip (-z) ir archyvavimo režimas (-a), kuris įgalina rekursinį kopijavimą.

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

13. SSH per Tor tinklą

Anoniminis „Tor“ tinklas gali tuneliuoti SSH srautą naudodamas komandą torsocks. Ši komanda perduos ssh tarpinį serverį per „Tor“.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Liemenės tarpiniam serveriui naudos 9050 prievadą „localhost“. Kaip visada, naudojant „Tor“, reikia rimtai patikrinti, koks srautas yra tuneliuojamas, ir kitas veikimo saugumo (opsec) problemas. Kur nukeliauja jūsų DNS užklausos?

14. SSH į EC2 egzempliorius

Norint prisijungti prie EC2 egzemplioriaus, reikia privataus rakto. Atsisiųskite jį (.pem plėtinį) iš Amazon EC2 valdymo skydelio ir pakeiskite leidimus (chmod 400 my-ec2-ssh-key.pem). Raktą laikykite saugioje vietoje arba įdėkite į savo aplanką ~/.ssh/.

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

Parametras -i tiesiog liepia ssh klientui naudoti šį raktą. Failas ~/.ssh/config Idealiai tinka automatiškai konfigūruoti rakto naudojimą jungiantis prie ec2 pagrindinio kompiuterio.

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

15. Tekstinių failų redagavimas naudojant VIM per ssh/scp

Visiems įsimylėjėliams vim Šis patarimas sutaupys šiek tiek laiko. Naudojant vim failai redaguojami per scp viena komanda. Šis metodas tiesiog sukuria failą vietoje /tmpir tada nukopijuoja jį atgal, kai tik išsaugojome vim.

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

Pastaba: formatas šiek tiek skiriasi nuo įprasto scp. Po šeimininko turime dvigubą //. Tai yra absoliuti kelio nuoroda. Vienas pasvirasis brūkšnys nurodys kelią, susijusį su jūsų namų aplanku users.

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

Jei matote šią klaidą, dar kartą patikrinkite komandos formatą. Paprastai tai reiškia sintaksės klaidą.

16. Nuotolinio SSH prijungimas kaip vietinis aplankas su SSHFS

Pasinaudojant sshfs - failų sistemos klientas ssh - Mes galime prijungti vietinį katalogą prie nuotolinės vietos su visomis failų sąveikomis šifruotoje sesijoje ssh.

localhost:~$ apt install sshfs

Įdiekite paketą Ubuntu ir Debian sshfs, tada tiesiog prijunkite nuotolinę vietą prie mūsų sistemos.

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

17. SSH tankinimas su ControlPath

Pagal numatytuosius nustatymus, jei yra ryšys su nuotoliniu serveriu naudojant ssh naudojant antrąjį ryšį ssh arba scp sukuria naują seansą su papildomu autentifikavimu. Parinktis ControlPath leidžia esamą seansą naudoti visiems vėlesniems ryšiams. Tai žymiai pagreitins procesą: efektas pastebimas net vietiniame tinkle, o juo labiau jungiantis prie nuotolinių išteklių.

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

„ControlPath“ nurodo lizdą, kad patikrintų, ar nėra naujų jungčių, kad pamatytumėte, ar yra aktyvi sesija ssh. Paskutinė parinktis reiškia, kad net ir išėjus iš konsolės esama sesija liks atvira 10 minučių, todėl per tą laiką galėsite vėl prisijungti prie esamo lizdo. Norėdami gauti daugiau informacijos, žr. žinyną. ssh_config man.

18. Perduokite vaizdo įrašą per SSH naudodami VLC ir SFTP

Net ir ilgamečiai vartotojai ssh и vlc (Video Lan Client) ne visada žino apie šią patogią parinktį, kai tikrai reikia žiūrėti vaizdo įrašą tinkle. Nustatymuose Failas | Atidarykite tinklo srautą programos vlc galite įvesti vietą kaip sftp://. Jei reikalingas slaptažodis, pasirodys raginimas.

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

19. Dviejų veiksnių autentifikavimas

SSH paslaugai taikomas tas pats dviejų veiksnių autentifikavimas, kaip ir jūsų banko sąskaita arba „Google“ paskyra.

Žinoma, ssh iš pradžių turi dviejų veiksnių autentifikavimo funkciją, o tai reiškia slaptažodį ir SSH raktą. Aparatinės įrangos prieigos rakto arba „Google Authenticator“ programos pranašumas yra tas, kad dažniausiai tai yra kitas fizinis įrenginys.

Peržiūrėkite mūsų 8 minučių vadovą naudojant Google Authenticator ir SSH.

20. Šokinėjantys šeimininkai su ssh ir -J

Jei tinklo segmentavimas reiškia, kad turite pereiti per kelis ssh pagrindinius kompiuterius, kad pasiektumėte galutinį paskirties tinklą, spartusis klavišas -J sutaupys jūsų laiko.

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

Svarbiausia suprasti, kad tai nėra tas pats, kas komanda ssh host1, tada user@host1:~$ ssh host2 ir tt Parinktis -J sumaniai naudoja persiuntimą, kad priversti localhost užmegzti seansą su kitu grandinėje esančiu kompiuteriu. Taigi aukščiau pateiktame pavyzdyje mūsų localhost autentifikuotas prie host4. Tai reiškia, kad naudojami mūsų „localhost“ raktai, o seansas nuo „localhost“ iki „host4“ yra visiškai užšifruotas.

Už tokią galimybę į ssh_config nurodykite konfigūracijos parinktį „ProxyJump“. Jei reguliariai turite pereiti per kelis pagrindinius kompiuterius, automatizavimas per konfigūraciją sutaupys daug laiko.

21. Blokuoti SSH brute force bandymus naudojant iptables

Kiekvienas, valdęs SSH paslaugą ir peržiūrėjęs žurnalus, žino apie brutalios jėgos bandymų, kurie įvyksta kiekvieną valandą, skaičių. Greitas būdas sumažinti žurnalų triukšmą yra perkelti SSH į nestandartinį prievadą. Atlikite failo pakeitimus sshd_config per konfigūracijos parametrą Prievadas Nr..

naudojant iptables Taip pat galite lengvai blokuoti bandymus prisijungti prie prievado pasiekus tam tikrą slenkstį. Lengvas būdas tai padaryti yra naudoti OSSEC, nes jis ne tik blokuoja SSH, bet ir atlieka daugybę kitų pagrindinio kompiuterio pavadinimu pagrįstų įsibrovimų aptikimo (HIDS) priemonių.

22. SSH Escape, kad pakeistumėte prievado persiuntimą

Ir paskutinis mūsų pavyzdys ssh skirtas pakeisti prievado persiuntimą esamos sesijos metu ssh. Įsivaizduokite šį scenarijų. Jūs esate giliai tinkle; galbūt peršoko per pusšimtį pagrindinių kompiuterių ir reikia vietinio prievado darbo stotyje, kuris yra persiunčiamas į senos Windows 2003 sistemos Microsoft SMB (kas prisimena ms08-67?).

Paspaudus enter, pabandykite įvesti į konsolę ~C. Tai seanso valdymo seka, leidžianti pakeisti esamą ryšį.

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.

Čia matote, kad vietinį 1445 prievadą persiuntėme į Windows 2003 pagrindinį kompiuterį, kurį radome vidiniame tinkle. Dabar tiesiog bėk msfconsole, ir galite judėti toliau (darant prielaidą, kad planuojate naudoti šį pagrindinį kompiuterį).

Užbaigimas

Šie pavyzdžiai, patarimai ir komandos ssh turėtų suteikti atskaitos tašką; Daugiau informacijos apie kiekvieną komandą ir galimybes rasite vadovo puslapiuose (man ssh, man ssh_config, man sshd_config).

Mane visada žavėjo galimybė pasiekti sistemas ir vykdyti komandas bet kurioje pasaulio vietoje. Lavindami savo įgūdžius tokiomis priemonėmis kaip ssh jūs tapsite efektyvesni bet kuriame žaidime.

Šaltinis: www.habr.com

Добавить комментарий