Praktiski padomi, piemēri un SSH tuneļi

Praktiski padomi, piemēri un SSH tuneļi
Praktiski piemēri SSH, kas pacels jūsu kā attālinātā sistēmas administratora prasmes jaunā līmenī. Komandas un padomi palīdzēs ne tikai lietot SSH, bet arī kompetentāk orientēties tīklā.

Zinot dažus trikus ssh noderÄ«ga jebkuram sistēmas administratoram, tÄ«kla inženierim vai droŔības speciālistam.

Praktiski SSH piemēri

  1. SSH zeÄ·u starpniekserveris
  2. SSH tunelis (portu pāradresācija)
  3. SSH tunelis uz treŔo saimniekdatoru
  4. Reversais SSH tunelis
  5. SSH reversais starpniekserveris
  6. VPN instalēŔana, izmantojot SSH
  7. SSH atslēgas (ssh-copy-id) kopÄ“Å”ana
  8. Attālās komandas izpilde (nav interaktīva)
  9. Attālā pakeŔu uztverŔana un apskate programmā Wireshark
  10. Vietējās mapes kopÄ“Å”ana uz attālo serveri, izmantojot SSH
  11. Attālās GUI lietojumprogrammas ar SSH X11 pārsūtīŔanu
  12. Attālā failu kopÄ“Å”ana, izmantojot rsync un SSH
  13. SSH, izmantojot Tor tīklu
  14. SSH uz EC2 instanci
  15. Teksta failu rediģēŔana, izmantojot VIM, izmantojot ssh/scp
  16. Pievienojiet attālo SSH kā vietējo mapi ar SSHFS
  17. SSH multipleksēŔana ar ControlPath
  18. Straumējiet video, izmantojot SSH, izmantojot VLC un SFTP
  19. Divu faktoru autentifikācija
  20. Lēcieni saimnieki ar SSH un -J
  21. SSH brutālā spēka mēģinājumu bloÄ·Ä“Å”ana, izmantojot iptables
  22. SSH Escape, lai mainītu porta pāradresāciju

Vispirms pamati

SSH komandrindas parsēŔana

Nākamajā piemērā tiek izmantoti bieži sastopami parametri, kas bieži sastopami, veidojot savienojumu ar attālo serveri SSH.

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

  • -v: AtkļūdoÅ”anas izvade ir Ä«paÅ”i noderÄ«ga, analizējot autentifikācijas problēmas. Var izmantot vairākas reizes, lai parādÄ«tu papildu informāciju.
  • - p 22: savienojuma ports uz attālo SSH serveri. 22 nav jānorāda, jo tā ir noklusējuma vērtÄ«ba, bet ja protokols ir uz kāda cita porta, tad to norādām izmantojot parametru -p. KlausÄ«Å”anās ports ir norādÄ«ts failā sshd_config formātā Port 2222.
  • -C: SaspieÅ”ana savienojumam. Ja jums ir lēns savienojums vai skatāt daudz teksta, tas var paātrināt savienojumu.
  • neo@: rinda pirms simbola @ norāda lietotājvārdu autentifikācijai attālajā serverÄ«. Ja to nenorādÄ«sit, pēc noklusējuma tiks izmantots tā konta lietotājvārds, kurā paÅ”laik esat pieteicies (~$whoami). Lietotāju var norādÄ«t arÄ«, izmantojot parametru -l.
  • remoteserver: resursdatora nosaukums, ar kuru izveidot savienojumu ssh, tas var bÅ«t pilnÄ«bā kvalificēts domēna nosaukums, IP adrese vai jebkurÅ” resursdators vietējā saimniekdatoru failā. Lai izveidotu savienojumu ar resursdatoru, kas atbalsta gan IPv4, gan IPv6, varat pievienot parametru komandrindai -4 vai -6 pareizai izŔķirtspējai.

Visi iepriekÅ” minētie parametri nav obligāti, izņemot remoteserver.

Izmantojot konfigurācijas failu

Lai gan daudzi ir pazīstami ar failu sshd_config, komandai ir arī klienta konfigurācijas fails ssh. Noklusējuma vērtība ~/.ssh/config, bet to var definēt kā opcijas parametru -F.

Host *
     Port 2222

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

IepriekÅ” minētajā ssh konfigurācijas faila piemērā ir divi resursdatora ieraksti. Pirmais nozÄ«mē visus resursdatorus, kuri visi izmanto konfigurācijas parametru Port 2222. Otrais norāda, ka resursdatoram attālais serveris jāizmanto cits lietotājvārds, ports, FQDN un IdentityFile.

Konfigurācijas fails var ietaupīt daudz rakstīŔanas laika, ļaujot automātiski lietot papildu konfigurāciju, kad tiek izveidots savienojums ar noteiktiem resursdatoriem.

Failu kopēŔana, izmantojot SSH, izmantojot SCP

SSH klientam ir divi citi ļoti ērti rÄ«ki failu kopÄ“Å”anai Å”ifrēts ssh savienojums. Tālāk skatiet scp un sftp komandu standarta lietoÅ”anas piemēru. Ņemiet vērā, ka daudzas no ssh opcijām attiecas arÄ« uz Ŕīm komandām.

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

Šajā piemērā fails mypic.png kopēts uz attālais serveris uz mapi /media/data un pārdēvēta par mypic_2.png.

Neaizmirstiet par porta parametra atŔķirÄ«bu. Å eit daudzi cilvēki tiek pieÄ·erti, startējot scp no komandrindas. Å eit ir porta parametrs -PUn ne -p, gluži kā ssh klientā! JÅ«s aizmirsÄ«sit, bet neuztraucieties, visi aizmirst.

Tiem, kas ir pazÄ«stami ar konsoli ftp, daudzas komandas ir lÄ«dzÄ«gas sftp... Tu vari darÄ«t push, likt Šø lskā sirds vēlas.

sftp neo@remoteserver

Praktiski piemēri

Daudzos no Å”iem piemēriem rezultātus var sasniegt, izmantojot dažādas metodes. Tāpat kā visās mÅ«su mācÄ«bu grāmatas un piemēri, priekÅ”roka tiek dota praktiskiem piemēriem, kas vienkārÅ”i dara savu darbu.

1. SSH zeÄ·u starpniekserveris

SSH starpniekservera funkcija ir numur 1 pamatota iemesla dēļ. Tas ir jaudÄ«gāks, nekā daudzi to saprot, un nodroÅ”ina piekļuvi jebkurai sistēmai, kurai var piekļūt attālais serveris, izmantojot praktiski jebkuru lietojumprogrammu. Ssh klients var tuneli trafiku caur SOCKS starpniekserveri ar vienu vienkārÅ”u komandu. Ir svarÄ«gi saprast, ka trafiks uz attālajām sistēmām nāks no attālā servera, tas tiks norādÄ«ts tÄ«mekļa servera žurnālos.

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

Å eit mēs palaižam zeÄ·u starpniekserveri TCP portā 8888, otrā komanda pārbauda, ā€‹ā€‹vai ports ir aktÄ«vs klausÄ«Å”anās režīmā. 127.0.0.1 norāda, ka pakalpojums darbojas tikai uz localhost. Mēs varam izmantot nedaudz atŔķirÄ«gu komandu, lai klausÄ«tos visās saskarnēs, ieskaitot Ethernet vai wifi, tas ļaus citām mÅ«su tÄ«kla lietojumprogrammām (pārlÅ«kprogrammām utt.) izveidot savienojumu ar starpniekservera pakalpojumu, izmantojot ssh socks starpniekserveri.

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

Tagad mēs varam konfigurēt pārlūkprogrammu, lai izveidotu savienojumu ar zeķu starpniekserveri. Programmā Firefox atlasiet Iestatījumi | Pamata | Tīkla iestatījumi. Norādiet IP adresi un portu, lai izveidotu savienojumu.

Praktiski padomi, piemēri un SSH tuneļi

LÅ«dzu, ņemiet vērā opciju veidlapas apakŔā, lai arÄ« jÅ«su pārlÅ«kprogrammas DNS pieprasÄ«jumi tiktu nosÅ«tÄ«ti caur SOCKS starpniekserveri. Ja izmantojat starpniekserveri, lai Å”ifrētu tÄ«mekļa trafiku vietējā tÄ«klā, iespējams, vēlēsities atlasÄ«t Å”o opciju, lai DNS pieprasÄ«jumi tiktu tunelēti, izmantojot SSH savienojumu.

ZeÄ·u starpniekservera aktivizÄ“Å”ana pārlÅ«kā Chrome

Palaižot pārlÅ«ku Chrome ar noteiktiem komandrindas parametriem, tiks iespējots zeÄ·u starpniekserveris, kā arÄ« DNS pieprasÄ«jumu tunelÄ“Å”ana no pārlÅ«kprogrammas. Uzticieties, bet pārbaudiet. Izmantot tcpdump lai pārbaudÄ«tu, vai DNS vaicājumi vairs nav redzami.

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

Citu lietojumprogrammu izmantoŔana ar starpniekserveri

Ņemiet vērā, ka daudzas citas lietojumprogrammas var izmantot arÄ« zeÄ·u starpniekserveri. TÄ«mekļa pārlÅ«kprogramma vienkārÅ”i ir vispopulārākā no tām. Dažām lietojumprogrammām ir konfigurācijas opcijas, lai iespējotu starpniekserveri. Citiem ir nepiecieÅ”ama neliela palÄ«dzÄ«ba ar palÄ«gprogrammu. Piemēram, starpnieka ķēdes ļauj palaist caur zeÄ·u starpniekserveri Microsoft RDP utt.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Socks starpniekservera konfigurācijas parametri ir iestatīti proxychains konfigurācijas failā.

Padoms: ja operētājsistēmā Windows izmantojat attālo darbvirsmu no Linux? Izmēģiniet klientu FreeRDP. Å Ä« ir modernāka ievieÅ”ana nekā rdesktop, ar daudz vienmērÄ«gāku pieredzi.

Iespēja izmantot SSH, izmantojot zeķu starpniekserveri

JÅ«s sēžat kafejnÄ«cā vai viesnÄ«cā un esat spiesti izmantot diezgan neuzticamu WiFi. Mēs lokāli palaižam ssh starpniekserveri no klēpjdatora un instalējam ssh tuneli mājas tÄ«klā vietējā Rasberry Pi. Izmantojot pārlÅ«kprogrammu vai citas lietojumprogrammas, kas konfigurētas zeÄ·u starpniekserverim, mēs varam piekļūt visiem tÄ«kla pakalpojumiem mÅ«su mājas tÄ«klā vai piekļūt internetam, izmantojot mÅ«su mājas savienojumu. Viss starp jÅ«su klēpjdatoru un mājas serveri (izmantojot Wi-Fi un internetu lÄ«dz jÅ«su mājām) tiek Å”ifrēts SSH tunelÄ«.

2. SSH tunelis (portu pāradresācija)

VienkārŔākajā formā SSH tunelis vienkārÅ”i atver portu jÅ«su vietējā sistēmā, kas savienojas ar citu portu tuneļa otrā galā.

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

ApskatÄ«sim parametru -L. To var uzskatÄ«t par klausÄ«Å”anās lokālo pusi. Tātad iepriekÅ” minētajā piemērā ports 9999 klausās vietējā resursdatora pusē un tiek pārsÅ«tÄ«ts caur portu 80 uz attālo serveri. LÅ«dzu, ņemiet vērā, ka 127.0.0.1 attiecas uz localhost attālajā serverÄ«!

Ejam pa pakāpienu augŔā. Nākamajā piemērā ir sniegta saziņa ar klausÄ«Å”anās portiem ar citiem resursdatoriem vietējā tÄ«klā.

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

Å ajos piemēros mēs izveidojam savienojumu ar tÄ«mekļa servera portu, taču tas var bÅ«t starpniekserveris vai jebkurÅ” cits TCP pakalpojums.

3. SSH tunelis treŔās puses resursdatoram

Mēs varam izmantot tos paÅ”us parametrus, lai savienotu tuneli no attālā servera ar citu pakalpojumu, kas darbojas treÅ”ajā sistēmā.

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

Šajā piemērā mēs novirzām tuneli no attālā servera uz tīmekļa serveri, kas darbojas 10.10.10.10. Satiksme no attālā servera uz 10.10.10.10 vairs nav SSH tunelī. Tīmekļa serveris 10.10.10.10 uzskatīs attālo serveri par tīmekļa pieprasījumu avotu.

4. Reversais SSH tunelis

Å eit mēs konfigurēsim attālā servera klausÄ«Å”anās portu, kas atkal izveidos savienojumu ar mÅ«su localhost (vai citas sistēmas) vietējo portu.

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

Å Ä« SSH sesija izveido savienojumu no attālā servera 1999. porta ar mÅ«su vietējā klienta portu 902.

5. SSH reversais starpniekserveris

Å ajā gadÄ«jumā mēs savā ssh savienojumā iestatām zeÄ·u starpniekserveri, bet starpniekserveris klausās servera attālajā galā. Savienojumi ar Å”o attālo starpniekserveri tagad parādās no tuneļa kā trafika no mÅ«su vietējā saimniekdatora.

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

Problēmu novērÅ”ana ar attāliem SSH tuneļiem

Ja rodas problēmas ar attālo SSH opciju darbÄ«bu, pārbaudiet ar netstat, ar kādām citām saskarnēm ir pievienots klausÄ«Å”anās ports. Lai gan piemēros norādÄ«jām 0.0.0.0, bet ja vērtÄ«ba GatewayPorts Š² sshd_config iestatÄ«ts uz Nē, tad klausÄ«tājs bÅ«s saistÄ«ts tikai ar localhost (127.0.0.1).

DroŔības brīdinājums

LÅ«dzu, ņemiet vērā, ka, atverot tuneļus un zeÄ·u starpniekserverus, iekŔējie tÄ«kla resursi var bÅ«t pieejami neuzticamiem tÄ«kliem (piemēram, internetam!). Tas var bÅ«t nopietns droŔības risks, tāpēc pārliecinieties, ka saprotat, kas ir klausÄ«tājs un kam viņam ir piekļuve.

6. VPN instalēŔana, izmantojot SSH

IzplatÄ«ts termins uzbrukuma metožu speciālistu (pentesteru u.c.) vidÅ« ir ā€œatbalsta punkts tÄ«klāā€. Kad savienojums ir izveidots vienā sistēmā, Ŕī sistēma kļūst par vārteju turpmākai piekļuvei tÄ«klam. Atbalsta punkts, kas ļauj pārvietoties platumā.

Šādam atbalstam varam izmantot SSH starpniekserveri un starpnieka ķēdestomēr ir daži ierobežojumi. Piemēram, nebÅ«s iespējams strādāt tieÅ”i ar ligzdām, tāpēc mēs nevarēsim skenēt tÄ«kla portus, izmantojot Nmap SYN.

Izmantojot Å”o uzlaboto VPN opciju, savienojums tiek samazināts lÄ«dz 3. lÄ«menis. Pēc tam mēs varam vienkārÅ”i marÅ”rutēt satiksmi caur tuneli, izmantojot standarta tÄ«kla marÅ”rutÄ“Å”anu.

Metode izmanto ssh, iptables, tun interfaces un marŔrutēŔana.

Vispirms jums jāiestata Å”ie parametri sshd_config. Tā kā mēs veicam izmaiņas gan attālās, gan klientu sistēmas saskarnēs, mēs ir nepiecieÅ”amas saknes tiesÄ«bas abās pusēs.

PermitRootLogin yes
PermitTunnel yes

Pēc tam mēs izveidosim ssh savienojumu, izmantojot parametru, kas pieprasa tun ierīču inicializāciju.

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

Rādot interfeisus, mums tagad vajadzētu būt noregulējuma ierīcei (# ip a). Nākamais solis tuneļa saskarnēm pievienos IP adreses.

SSH klienta puse:

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

SSH servera puse:

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

Tagad mums ir tieÅ”s ceļŔ uz citu saimniekdatoru (route -n Šø ping 10.10.10.10).

Varat marÅ”rutēt jebkuru apakÅ”tÄ«klu caur saimniekdatoru otrā pusē.

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

Attālinātajā pusē jums ir jāiespējo 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, izmantojot SSH tuneli 3. tīkla slānī. Tagad tā ir uzvara.

Ja rodas kādas problēmas, izmantojiet tcpdump Šø pinglai noteiktu cēloni. Tā kā mēs spēlējam 3. slānÄ«, mÅ«su icmp paketes iet caur Å”o tuneli.

7. Nokopējiet SSH atslēgu (ssh-copy-id)

Ir vairāki veidi, kā to izdarÄ«t, taču Ŕī komanda ietaupa laiku, nekopējot failus manuāli. Tas vienkārÅ”i kopē ~/.ssh/id_rsa.pub (vai noklusējuma atslēgu) no jÅ«su sistēmas uz ~/.ssh/authorized_keys attālajā serverÄ«.

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

8. Attālā komandu izpilde (nav interaktÄ«va)

komanda ssh Var saistÄ«t ar citām komandām, lai izveidotu kopÄ«gu, lietotājam draudzÄ«gu saskarni. VienkārÅ”i pievienojiet komandu, kuru vēlaties palaist attālajā resursdatorā, kā pēdējo parametru pēdiņās.

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

Å ajā piemērā grep tiek izpildÄ«ts vietējā sistēmā pēc tam, kad žurnāls ir lejupielādēts, izmantojot ssh kanālu. Ja fails ir liels, to ir ērtāk palaist grep attālajā pusē, vienkārÅ”i ievietojot abas komandas dubultpēdiņās.

Cits piemērs veic tādu paÅ”u funkciju kā ssh-copy-id no 7. piemēra.

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

9. Attālā pakeŔu uztverŔana un apskate programmā Wireshark

Es paņēmu vienu no mÅ«sējiem tcpdump piemēri. Izmantojiet to, lai attālināti uztvertu paketes un parādÄ«tu rezultātus tieÅ”i vietējā Wireshark GUI.

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

10. Lokālās mapes kopÄ“Å”ana uz attālo serveri, izmantojot SSH

Jauks triks, kas saspiež mapi, izmantojot bzip2 (Ŕī ir opcija -j komandā tar), un pēc tam izgÅ«st straumi bzip2 otrā pusē, attālajā serverÄ« izveidojot mapes dublikātu.

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

11. Attālās GUI lietojumprogrammas ar SSH X11 pārsūtīŔanu

Ja X ir instalēts klientā un attālajā serverÄ«, varat attālināti izpildÄ«t GUI komandu ar logu vietējā darbvirsmā. Å Ä« funkcija pastāv jau ilgu laiku, taču joprojām ir ļoti noderÄ«ga. Palaidiet attālo tÄ«mekļa pārlÅ«kprogrammu vai pat VMWawre Workstation konsoli, kā es to daru Å”ajā piemērā.

localhost:~$ ssh -X remoteserver vmware

NepiecieŔamā virkne X11Forwarding yes failā sshd_config.

12. Attālā failu kopÄ“Å”ana, izmantojot rsync un SSH

rsync daudz ērtāk scp, ja jums ir nepiecieÅ”amas periodiskas direktorija, liela skaita failu vai ļoti lielu failu dublējumkopijas. Ir funkcija atkopÅ”anai pēc pārsÅ«tÄ«Å”anas kļūmes un tikai mainÄ«to failu kopÄ“Å”anai, kas ietaupa trafiku un laiku.

Å ajā piemērā tiek izmantota saspieÅ”ana gzip (-z) un arhivÄ“Å”anas režīms (-a), kas nodroÅ”ina rekursÄ«vo kopÄ“Å”anu.

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

13. SSH, izmantojot Tor tīklu

Anonīmais Tor tīkls var tunelēt SSH trafiku, izmantojot komandu torsocks. Šī komanda nodos ssh starpniekserveri caur Tor.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

TorszeÄ·es starpniekserverim izmantos portu 9050 uz localhost. Kā vienmēr, izmantojot Tor, jums ir nopietni jāpārbauda, ā€‹ā€‹kāda satiksme tiek tunelēta, un citas darbÄ«bas droŔības (opsec) problēmas. Kur nonāk jÅ«su DNS vaicājumi?

14. SSH uz EC2 instance

Lai izveidotu savienojumu ar EC2 gadÄ«jumu, ir nepiecieÅ”ama privātā atslēga. Lejupielādējiet to (.pem paplaÅ”inājums) no Amazon EC2 vadÄ«bas paneļa un mainiet atļaujas (chmod 400 my-ec2-ssh-key.pem). Glabājiet atslēgu droŔā vietā vai ievietojiet to savā mapē ~/.ssh/.

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

Parametrs -i vienkārÅ”i liek ssh klientam izmantot Å”o atslēgu. Fails ~/.ssh/config Ideāli piemērots atslēgas lietojuma automātiskai konfigurÄ“Å”anai, veidojot savienojumu ar ec2 resursdatoru.

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

15. Teksta failu rediģēŔana, izmantojot VIM caur ssh/scp

Visiem mīļotājiem vim Å is padoms ietaupÄ«s laiku. Izmantojot vim faili tiek rediģēti, izmantojot scp ar vienu komandu. Å Ä« metode vienkārÅ”i izveido failu lokāli /tmpun pēc tam kopē to atpakaļ, kad mēs to saglabājām no vim.

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

PiezÄ«me: formāts nedaudz atŔķiras no parastā scp. Pēc saimnieka mums ir dubultā //. Å Ä« ir absolÅ«ta ceļa atsauce. Viena slÄ«psvÄ«tra norāda ceļu attiecÄ«bā pret jÅ«su mājas mapi users.

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

Ja redzat Å”o kļūdu, vēlreiz pārbaudiet komandas formātu. Tas parasti nozÄ«mē sintakses kļūdu.

16. Attālās SSH uzstādīŔana kā lokāla mape ar SSHFS

Ar sshfs - failu sistēmas klients ssh - mēs varam savienot vietējo direktoriju ar attālu vietu ar visu failu mijiedarbÄ«bu Å”ifrētā sesijā ssh.

localhost:~$ apt install sshfs

Instalējiet pakotni Ubuntu un Debian sshfs, un pēc tam vienkārÅ”i pievienojiet attālo atraÅ”anās vietu mÅ«su sistēmai.

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

17. SSH multipleksēŔana ar ControlPath

Pēc noklusējuma, ja ir izveidots savienojums ar attālo serveri, izmantojot ssh izmanto otro savienojumu ssh vai scp izveido jaunu sesiju ar papildu autentifikāciju. Opcija ControlPath ļauj izmantot esoÅ”o sesiju visiem turpmākajiem savienojumiem. Tas ievērojami paātrinās procesu: efekts ir pamanāms pat lokālajā tÄ«klā un vēl jo vairāk, pieslēdzoties attāliem resursiem.

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

ControlPath norāda ligzdu, lai pārbaudÄ«tu jaunus savienojumus, lai redzētu, vai ir aktÄ«va sesija ssh. Pēdējā opcija nozÄ«mē, ka pat pēc izieÅ”anas no konsoles esoŔā sesija paliks atvērta 10 minÅ«tes, tāpēc Å”ajā laikā varat atkārtoti izveidot savienojumu ar esoÅ”o kontaktligzdu. Lai iegÅ«tu papildinformāciju, skatiet palÄ«dzÄ«bu. ssh_config man.

18. Straumējiet video, izmantojot SSH, izmantojot VLC un SFTP

Pat ilgstoÅ”i lietotāji ssh Šø vlc (Video Lan Client) ne vienmēr apzinās Å”o ērto iespēju, ja jums patieŔām ir nepiecieÅ”ams skatÄ«ties video tÄ«klā. IestatÄ«jumos Fails | Atveriet tÄ«kla straumi programmas vlc atraÅ”anās vietu var ievadÄ«t kā sftp://. Ja ir nepiecieÅ”ama parole, tiks parādÄ«ta uzvedne.

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

19. Divu faktoru autentifikācija

Uz SSH pakalpojumu attiecas tā pati divu faktoru autentifikācija kā jūsu bankas kontam vai Google kontam.

Protams, ssh sākotnēji ir divu faktoru autentifikācijas funkcija, kas nozÄ«mē paroli un SSH atslēgu. AparatÅ«ras pilnvaras vai lietotnes Google autentifikators priekÅ”rocÄ«ba ir tā, ka tā parasti ir cita fiziska ierÄ«ce.

Skatiet mūsu 8 minūŔu ceļvedi izmantojot Google autentifikatoru un SSH.

20. Jumping hosts ar ssh un -J

Ja tīkla segmentācija nozīmē, ka, lai nokļūtu galamērķa tīklā, ir jāpāriet cauri vairākiem ssh saimniekiem, saīsne -J ietaupīs jūsu laiku.

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

Å eit galvenais ir saprast, ka tas nav tas pats, kas komanda ssh host1tad user@host1:~$ ssh host2 utt. Opcija -J gudri izmanto pārsÅ«tÄ«Å”anu, lai piespiestu localhost izveidot sesiju ar nākamo saimniekdatoru ķēdē. Tātad iepriekÅ” minētajā piemērā mÅ«su localhost ir autentificēts resursdatoram4. Tas nozÄ«mē, ka tiek izmantotas mÅ«su localhost atslēgas, un sesija no localhost uz host4 ir pilnÄ«bā Å”ifrēta.

Par Ŕādu iespēju iekŔā ssh_config norādiet konfigurācijas opciju ProxyJump. Ja jums regulāri ir jāiet cauri vairākiem saimniekiem, tad automatizācija caur konfigurāciju ietaupÄ«s daudz laika.

21. Bloķējiet SSH brutālā spēka mēģinājumus, izmantojot iptables

Ikviens, kurÅ” ir pārvaldÄ«jis SSH pakalpojumu un apskatÄ«jis žurnālus, zina par brutālā spēka mēģinājumu skaitu, kas notiek katru stundu katru dienu. Ātrs veids, kā samazināt troksni žurnālos, ir pārvietot SSH uz nestandarta portu. Veiciet izmaiņas failā sshd_config izmantojot konfigurācijas parametru Port ##.

Ar iptables Varat arÄ« viegli bloķēt mēģinājumus izveidot savienojumu ar portu, sasniedzot noteiktu slieksni. VienkārÅ”s veids, kā to izdarÄ«t, ir izmantot OSSEC, jo tas ne tikai bloķē SSH, bet arÄ« veic virkni citu uz resursdatora nosaukumu balstÄ«tu ielauÅ”anās noteikÅ”anas (HIDS) pasākumu.

22. SSH Escape, lai mainītu portu pāradresāciju

Un mÅ«su pēdējais piemērs ssh paredzēts, lai mainÄ«tu portu pāradresāciju esoŔās sesijas laikā ssh. Iedomājieties Å”o scenāriju. JÅ«s esat dziļi tÄ«klā; varbÅ«t pārlēca vairāk nekā pusduci saimniekdatoru, un darbstacijā ir nepiecieÅ”ams vietējais ports, kas tiek pārsÅ«tÄ«ts uz vecās Windows 2003 sistēmas Microsoft SMB (kāds atceras ms08-67?).

NoklikŔķinot enter, mēģiniet ievadÄ«t konsolē ~C. Å Ä« ir sesijas vadÄ«bas secÄ«ba, kas ļauj veikt izmaiņas esoÅ”ajā savienojumā.

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.

Å eit varat redzēt, ka esam pārsÅ«tÄ«juÅ”i mÅ«su vietējo portu 1445 uz Windows 2003 resursdatoru, ko atradām iekŔējā tÄ«klā. Tagad vienkārÅ”i skrien msfconsole, un varat doties tālāk (pieņemot, ka plānojat izmantot Å”o resursdatoru).

PabeigŔana

Å ie piemēri, padomi un komandas ssh jāsniedz sākuma punkts; PlaŔāka informācija par katru komandu un iespējām ir pieejama man lapās (man ssh, man ssh_config, man sshd_config).

Mani vienmēr ir fascinējusi iespēja piekļūt sistēmām un izpildīt komandas jebkurā vietā pasaulē. Attīstot savas prasmes ar tādiem rīkiem kā ssh jūs kļūsit efektīvāks jebkurā spēlē, kuru spēlējat.

Avots: www.habr.com

Pievieno komentāru