Mga Praktikal na Tip, Mga Halimbawa, at SSH Tunnel

Mga Praktikal na Tip, Mga Halimbawa, at SSH Tunnel
Mga praktikal na halimbawa SSH, na magdadala sa iyong mga kasanayan bilang isang remote system administrator sa isang bagong antas. Ang mga utos at tip ay makakatulong hindi lamang sa paggamit SSH, ngunit mag-navigate din sa network nang mas mahusay.

Alam ang ilang mga trick ssh kapaki-pakinabang sa sinumang system administrator, network engineer o security specialist.

Mga Praktikal na Halimbawa ng SSH

  1. SSH socks proxy
  2. SSH tunnel (port forwarding)
  3. SSH tunnel sa ikatlong host
  4. Baliktarin ang SSH tunnel
  5. SSH reverse proxy
  6. Pag-install ng VPN sa SSH
  7. Pagkopya ng SSH key (ssh-copy-id)
  8. Remote command execution (non-interactive)
  9. Remote packet capture at pagtingin sa Wireshark
  10. Pagkopya ng lokal na folder sa isang malayuang server sa pamamagitan ng SSH
  11. Mga Remote na GUI Application na may SSH X11 Forwarding
  12. Remote na pagkopya ng file gamit ang rsync at SSH
  13. SSH sa network ng Tor
  14. Halimbawa ng SSH hanggang EC2
  15. Pag-edit ng mga text file gamit ang VIM sa pamamagitan ng ssh/scp
  16. I-mount ang remote SSH bilang lokal na folder na may SSHFS
  17. Multiplexing SSH na may ControlPath
  18. Mag-stream ng video sa SSH gamit ang VLC at SFTP
  19. Dalawang-factor na pagpapatunay
  20. Jumping host na may SSH at -J
  21. Hinaharang ang mga pagtatangka ng brute force ng SSH gamit ang mga iptable
  22. SSH Escape para baguhin ang port forwarding

Una ang mga pangunahing kaalaman

Pag-parse ng SSH command line

Ang sumusunod na halimbawa ay gumagamit ng mga karaniwang parameter na kadalasang nakikita kapag kumokonekta sa isang malayuang server SSH.

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

  • -v: Ang output ng pag-debug ay lalong kapaki-pakinabang kapag sinusuri ang mga problema sa pagpapatunay. Maaaring gamitin nang maraming beses upang magpakita ng karagdagang impormasyon.
  • - p 22: port ng koneksyon sa isang malayuang SSH server. 22 ay hindi kailangang tukuyin, dahil ito ang default na halaga, ngunit kung ang protocol ay nasa ibang port, pagkatapos ay tinukoy namin ito gamit ang parameter -p. Ang pakikinig na port ay tinukoy sa file sshd_config sa format Port 2222.
  • -C: Compression para sa koneksyon. Kung mayroon kang mabagal na koneksyon o tumitingin ng maraming teksto, maaari nitong pabilisin ang koneksyon.
  • neo@: Ang linya bago ang simbolo na @ ay nagpapahiwatig ng username para sa pagpapatunay sa remote server. Kung hindi mo ito tinukoy, magiging default ito sa username ng account kung saan ka kasalukuyang naka-log in (~$whoami). Maaari ding tukuyin ang user gamit ang parameter -l.
  • remoteserver: pangalan ng host na kumonekta ssh, ito ay maaaring isang ganap na kwalipikadong domain name, isang IP address, o anumang host sa lokal na host file. Upang kumonekta sa isang host na sumusuporta sa parehong IPv4 at IPv6, maaari mong idagdag ang parameter sa command line -4 o -6 para sa tamang resolusyon.

Ang lahat ng mga parameter sa itaas ay opsyonal maliban remoteserver.

Gamit ang configuration file

Bagama't marami ang pamilyar sa file sshd_config, mayroon ding client configuration file para sa command ssh. Default na halaga ~/.ssh/config, ngunit maaari itong tukuyin bilang isang parameter para sa isang opsyon -F.

Host *
     Port 2222

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

Mayroong dalawang host entries sa halimbawang ssh configuration file sa itaas. Ang una ay nangangahulugang lahat ng host, lahat ay gumagamit ng Port 2222 configuration parameter. Ang pangalawa ay nagsasabi na para sa host remoteserver ibang username, port, FQDN at IdentityFile ang dapat gamitin.

Makakatipid ng maraming oras sa pag-type ang isang configuration file sa pamamagitan ng pagpayag na awtomatikong mailapat ang advanced na configuration kapag kumokonekta sa mga partikular na host.

Pagkopya ng mga file sa SSH gamit ang SCP

Ang kliyente ng SSH ay may kasamang dalawang iba pang napakadaling kasangkapan para sa pagkopya ng mga file naka-encrypt na koneksyon sa ssh. Tingnan sa ibaba ang isang halimbawa ng karaniwang paggamit ng scp at sftp command. Tandaan na marami sa mga opsyon sa ssh ay nalalapat din sa mga utos na ito.

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

Sa halimbawang ito ang file mypic.png kinopya sa remoteserver sa folder /media/data at pinalitan ng pangalan sa mypic_2.png.

Huwag kalimutan ang tungkol sa pagkakaiba sa parameter ng port. Dito maraming nahuhuli kapag naglulunsad sila scp mula sa command line. Narito ang parameter ng port -PAt hindi -p, parang sa isang ssh client! Makakalimutin ka, ngunit huwag mag-alala, lahat ay nakakalimutan.

Para sa mga pamilyar sa console ftp, marami sa mga utos ay magkatulad sa sftp. Maaari mong gawin itulak, ilagay ΠΈ lsayon sa ninanais ng puso.

sftp neo@remoteserver

Mga praktikal na halimbawa

Sa marami sa mga halimbawang ito, ang mga resulta ay maaaring makamit gamit ang iba't ibang mga pamamaraan. Tulad ng sa aming lahat mga aklat-aralin at mga halimbawa, ang kagustuhan ay ibinibigay sa mga praktikal na halimbawa na ginagawa lamang ang kanilang trabaho.

1. SSH socks proxy

Ang tampok na SSH Proxy ay numero 1 para sa isang magandang dahilan. Ito ay mas malakas kaysa sa napagtanto ng marami at nagbibigay sa iyo ng access sa anumang sistema kung saan may access ang remote server, gamit ang halos anumang application. Ang isang ssh client ay maaaring mag-tunnel ng trapiko sa pamamagitan ng isang SOCKS proxy na may isang simpleng command. Mahalagang maunawaan na ang trapiko sa mga malalayong sistema ay magmumula sa isang malayong server, ito ay ipahiwatig sa mga log ng web server.

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

Dito kami nagpapatakbo ng proxy ng medyas sa TCP port 8888, ang pangalawang command ay nagsusuri na ang port ay aktibo sa mode ng pakikinig. Ang 127.0.0.1 ay nagpapahiwatig na ang serbisyo ay tumatakbo lamang sa localhost. Maaari kaming gumamit ng bahagyang naiibang command upang makinig sa lahat ng mga interface, kabilang ang ethernet o wifi, ito ay magbibigay-daan sa iba pang mga application (browser, atbp.) sa aming network na kumonekta sa serbisyo ng proxy sa pamamagitan ng ssh socks proxy.

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

Ngayon ay maaari na nating i-configure ang browser upang kumonekta sa proxy ng medyas. Sa Firefox, piliin Mga Setting | Pangunahing | Mga setting ng network. Tukuyin ang IP address at port upang kumonekta.

Mga Praktikal na Tip, Mga Halimbawa, at SSH Tunnel

Pakitandaan ang opsyon sa ibaba ng form upang ang mga kahilingan sa DNS ng iyong browser ay dumaan din sa isang SOCKS proxy. Kung gumagamit ka ng proxy server upang i-encrypt ang trapiko sa web sa iyong lokal na network, malamang na gugustuhin mong piliin ang opsyong ito upang ang mga kahilingan sa DNS ay ma-tunnel sa pamamagitan ng koneksyon sa SSH.

Pag-activate ng proxy ng medyas sa Chrome

Ang paglulunsad ng Chrome na may ilang partikular na parameter ng command line ay magbibigay-daan sa proxy ng medyas, pati na rin ang pag-tunnel ng mga kahilingan sa DNS mula sa browser. Magtiwala ngunit suriin. Gamitin tcpdump upang suriin na ang mga query sa DNS ay hindi na nakikita.

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

Paggamit ng iba pang mga application na may proxy

Tandaan na marami pang ibang application ang maaari ring gumamit ng mga proxy ng medyas. Ang web browser lang ang pinakasikat sa lahat. Ang ilang mga application ay may mga opsyon sa pagsasaayos upang paganahin ang isang proxy server. Ang iba ay nangangailangan ng kaunting tulong sa isang programa ng katulong. Halimbawa, mga proxychain nagbibigay-daan sa iyo na tumakbo sa pamamagitan ng isang proxy ng medyas na Microsoft RDP, atbp.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Ang mga parameter ng configuration ng proxy ng medyas ay nakatakda sa file ng configuration ng proxychains.

Hint: kung gumagamit ka ng remote desktop mula sa Linux sa Windows? Subukan ang kliyente LibrengRDP. Ito ay isang mas modernong pagpapatupad kaysa sa rdesktop, na may mas malinaw na karanasan.

Pagpipilian na gumamit ng SSH sa pamamagitan ng proxy ng medyas

Nakaupo ka sa isang cafe o hotel - at napipilitang gumamit ng hindi mapagkakatiwalaang WiFi. Naglulunsad kami ng ssh proxy nang lokal mula sa isang laptop at nag-i-install ng ssh tunnel sa home network sa isang lokal na Rasberry Pi. Gamit ang isang browser o iba pang mga application na na-configure para sa isang proxy ng medyas, maaari naming ma-access ang anumang mga serbisyo ng network sa aming home network o ma-access ang Internet sa pamamagitan ng aming koneksyon sa bahay. Ang lahat sa pagitan ng iyong laptop at ng iyong home server (sa pamamagitan ng Wi-Fi at internet sa iyong tahanan) ay naka-encrypt sa isang SSH tunnel.

2. SSH tunnel (port forwarding)

Sa pinakasimpleng anyo nito, ang isang SSH tunnel ay nagbubukas lang ng port sa iyong lokal na system na kumokonekta sa isa pang port sa kabilang dulo ng tunnel.

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

Tingnan natin ang parameter -L. Maaari itong isipin bilang lokal na bahagi ng pakikinig. Kaya sa halimbawa sa itaas, ang port 9999 ay nakikinig sa localhost side at ipinapasa sa pamamagitan ng port 80 sa remoteserver. Pakitandaan na ang 127.0.0.1 ay tumutukoy sa localhost sa remote server!

Umakyat tayo sa hakbang. Ang sumusunod na halimbawa ay nakikipag-ugnayan sa mga nakikinig na port sa iba pang mga host sa lokal na network.

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

Sa mga halimbawang ito kumokonekta kami sa isang port sa web server, ngunit maaaring ito ay isang proxy server o anumang iba pang serbisyo ng TCP.

3. SSH tunnel sa isang third-party na host

Maaari naming gamitin ang parehong mga parameter upang ikonekta ang isang tunnel mula sa isang malayuang server patungo sa isa pang serbisyo na tumatakbo sa isang ikatlong sistema.

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

Sa halimbawang ito, nire-redirect namin ang isang tunnel mula sa remoteserver patungo sa isang web server na tumatakbo sa 10.10.10.10. Trapiko mula sa remoteserver hanggang 10.10.10.10 wala na sa SSH tunnel. Isasaalang-alang ng web server sa 10.10.10.10 ang remoteserver na pinagmumulan ng mga kahilingan sa web.

4. Baliktarin ang SSH tunnel

Dito ay iko-configure namin ang isang listening port sa remote server na magkokonekta pabalik sa local port sa aming localhost (o iba pang system).

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

Ang session ng SSH na ito ay nagtatatag ng koneksyon mula sa port 1999 sa remoteserver hanggang sa port 902 sa aming lokal na kliyente.

5. SSH Reverse Proxy

Sa kasong ito, nagse-set up kami ng proxy ng medyas sa aming ssh na koneksyon, ngunit nakikinig ang proxy sa malayong dulo ng server. Lumilitaw na ngayon ang mga koneksyon sa malayuang proxy na ito mula sa tunnel bilang trapiko mula sa aming localhost.

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

Pag-troubleshoot ng mga problema sa malalayong SSH tunnel

Kung mayroon kang mga problema sa paggana ng mga remote na opsyon sa SSH, suriin gamit ang netstat, kung ano ang iba pang mga interface na konektado sa pakikinig port. Kahit na ipinahiwatig namin ang 0.0.0.0 sa mga halimbawa, ngunit kung ang halaga GatewayPorts Π² sshd_config itakda sa hindi, pagkatapos ay ang tagapakinig ay itali lamang sa localhost (127.0.0.1).

Babala sa Seguridad

Pakitandaan na sa pamamagitan ng pagbubukas ng mga tunnel at medyas na proxy, ang mga panloob na mapagkukunan ng network ay maaaring ma-access ng mga hindi pinagkakatiwalaang network (gaya ng Internet!). Maaari itong maging isang seryosong panganib sa seguridad, kaya tiyaking nauunawaan mo kung ano ang nakikinig at kung ano ang mayroon sila ng access.

6. Pag-install ng VPN sa pamamagitan ng SSH

Ang karaniwang termino sa mga espesyalista sa mga paraan ng pag-atake (mga pentester, atbp.) ay "isang fulcrum sa network." Kapag ang isang koneksyon ay naitatag sa isang system, ang system na iyon ay magiging gateway para sa karagdagang pag-access sa network. Isang fulcrum na nagbibigay-daan sa iyong lumipat sa lawak.

Para sa gayong foothold maaari tayong gumamit ng isang SSH proxy at mga proxychain, gayunpaman may ilang mga limitasyon. Halimbawa, hindi posibleng gumana nang direkta sa mga socket, kaya hindi namin ma-scan ang mga port sa loob ng network sa pamamagitan ng nmap SYN.

Gamit ang mas advanced na opsyon sa VPN na ito, ang koneksyon ay nabawasan sa antas 3. Maari na lang nating iruta ang trapiko sa tunnel gamit ang karaniwang pagruruta ng network.

Ginagamit ang pamamaraan ssh, iptables, tun interfaces at pagruruta.

Una kailangan mong itakda ang mga parameter na ito sshd_config. Dahil gumagawa kami ng mga pagbabago sa mga interface ng parehong remote at client system, kami kailangan ng root rights sa magkabilang panig.

PermitRootLogin yes
PermitTunnel yes

Pagkatapos ay magtatatag kami ng isang ssh na koneksyon gamit ang parameter na humihiling ng pagsisimula ng mga tun device.

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

Dapat ay mayroon na tayong tun device kapag nagpapakita ng mga interface (# ip a). Ang susunod na hakbang ay magdaragdag ng mga IP address sa mga interface ng tunnel.

SSH client side:

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

Gilid ng SSH Server:

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

Ngayon ay mayroon na tayong direktang ruta patungo sa isa pang host (route -n ΠΈ ping 10.10.10.10).

Maaari mong iruta ang anumang subnet sa pamamagitan ng isang host sa kabilang panig.

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

Sa malayong bahagi dapat mong paganahin 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 sa SSH tunnel sa network layer 3. Ngayon ay tagumpay na.

Kung may nangyaring mga problema, gamitin tcpdump ΠΈ pingupang matukoy ang dahilan. Dahil naglalaro kami sa layer 3, ang aming mga icmp packet ay dadaan sa tunnel na ito.

7. Kopyahin ang SSH key (ssh-copy-id)

Mayroong ilang mga paraan upang gawin ito, ngunit ang command na ito ay nakakatipid ng oras sa pamamagitan ng hindi pagkopya ng mga file nang manu-mano. Kinokopya lang nito ang ~/.ssh/id_rsa.pub (o ang default na key) mula sa iyong system patungo sa ~/.ssh/authorized_keys sa isang malayuang server.

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

8. Remote command execution (non-interactive)

pangkat ssh Maaaring i-link sa iba pang mga command para sa isang karaniwan, user-friendly na interface. Idagdag lang ang command na gusto mong patakbuhin sa remote host bilang huling parameter sa mga quote.

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

Sa halimbawang ito grep naisakatuparan sa lokal na sistema pagkatapos ma-download ang log sa pamamagitan ng ssh channel. Kung malaki ang file, mas maginhawang tumakbo grep sa malayong bahagi sa pamamagitan lamang ng paglalagay ng parehong mga utos sa double quote.

Ang isa pang halimbawa ay gumaganap ng parehong function bilang ssh-copy-id mula sa halimbawa 7.

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

9. Remote packet capture at pagtingin sa Wireshark

Kinuha ko ang isa sa amin mga halimbawa ng tcpdump. Gamitin ito upang malayuang kumuha ng mga packet at direktang ipakita ang mga resulta sa lokal na Wireshark GUI.

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

10. Pagkopya ng lokal na folder sa malayong server sa pamamagitan ng SSH

Isang magandang trick na nag-compress ng isang folder gamit bzip2 (ito ang -j na opsyon sa command tar), at pagkatapos ay kinukuha ang stream bzip2 sa kabilang panig, lumilikha ng duplicate na folder sa malayong server.

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

11. Mga Remote na GUI Application na may SSH X11 Forwarding

Kung naka-install ang X sa client at sa remote server, maaari mong malayuang magsagawa ng GUI command na may window sa iyong lokal na desktop. Matagal nang umiral ang feature na ito, ngunit napaka-kapaki-pakinabang pa rin. Ilunsad ang isang malayuang web browser o maging ang VMWawre Workstation console tulad ng ginagawa ko sa halimbawang ito.

localhost:~$ ssh -X remoteserver vmware

Kinakailangang string X11Forwarding yes sa file sshd_config.

12. Remote na pagkopya ng file gamit ang rsync at SSH

rsync mas maginhawa scp, kung kailangan mo ng pana-panahong pag-backup ng isang direktoryo, isang malaking bilang ng mga file, o napakalaking mga file. Mayroong isang function para sa pagbawi mula sa isang pagkabigo sa paglipat at pagkopya lamang ng mga binagong file, na nakakatipid ng trapiko at oras.

Ang halimbawang ito ay gumagamit ng compression gzip (-z) at mode ng pag-archive (-a), na nagbibigay-daan sa recursive na pagkopya.

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

13. SSH sa network ng Tor

Ang hindi kilalang Tor network ay maaaring mag-tunnel ng trapiko sa SSH gamit ang command torsocks. Ang sumusunod na command ay ipapasa ang ssh proxy sa pamamagitan ng Tor.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Torsocks gagamit ng port 9050 sa localhost para sa proxy. Gaya ng nakasanayan, kapag gumagamit ng Tor kailangan mong seryosong suriin kung anong trapiko ang ini-tunnel at iba pang mga isyu sa seguridad sa pagpapatakbo (opsec). Saan napupunta ang iyong mga query sa DNS?

14. Halimbawa ng SSH hanggang EC2

Para kumonekta sa isang EC2 instance, kailangan mo ng pribadong key. I-download ito (.pem extension) mula sa Amazon EC2 control panel at baguhin ang mga pahintulot (chmod 400 my-ec2-ssh-key.pem). Itago ang susi sa isang ligtas na lugar o ilagay ito sa sarili mong folder ~/.ssh/.

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

Parametro -i sinasabi lang sa ssh client na gamitin ang key na ito. file ~/.ssh/config Tamang-tama para sa awtomatikong pag-configure ng paggamit ng key kapag kumokonekta sa isang ec2 host.

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

15. Pag-edit ng mga text file gamit ang VIM sa pamamagitan ng ssh/scp

Para sa lahat ng nagmamahal vim Makakatipid ng oras ang tip na ito. Sa pamamagitan ng paggamit vim Ang mga file ay na-edit sa pamamagitan ng scp na may isang utos. Ang pamamaraang ito ay lumilikha lamang ng file nang lokal sa /tmpat pagkatapos ay kopyahin ito pabalik kapag na-save namin ito mula sa vim.

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

Tandaan: ang format ay bahagyang naiiba mula sa karaniwan scp. Pagkatapos ng host mayroon kaming doble //. Ito ay isang ganap na sanggunian sa landas. Ang isang slash ay magsasaad ng path na nauugnay sa iyong home folder users.

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

Kung nakikita mo ang error na ito, i-double check ang command format. Ito ay karaniwang nangangahulugan ng isang syntax error.

16. Pag-mount ng isang remote SSH bilang isang lokal na folder na may SSHFS

Sa pamamagitan ng sshfs - file system client ssh - maaari naming ikonekta ang isang lokal na direktoryo sa isang malayong lokasyon kasama ang lahat ng mga pakikipag-ugnayan ng file sa isang naka-encrypt na session ssh.

localhost:~$ apt install sshfs

I-install ang package sa Ubuntu at Debian sshfs, at pagkatapos ay i-mount lang ang malayong lokasyon sa aming system.

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

17. SSH Multiplexing na may ControlPath

Bilang default, kung mayroong umiiral na koneksyon sa isang malayong server na gumagamit ssh pangalawang koneksyon gamit ssh o scp nagtatatag ng bagong session na may karagdagang pagpapatunay. Pagpipilian ControlPath nagbibigay-daan sa kasalukuyang session na magamit para sa lahat ng kasunod na koneksyon. Ito ay makabuluhang mapabilis ang proseso: ang epekto ay kapansin-pansin kahit sa isang lokal na network, at higit pa kapag kumokonekta sa mga malalayong mapagkukunan.

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

Tinukoy ng ControlPath ang socket upang tingnan ang mga bagong koneksyon upang makita kung mayroong aktibong session ssh. Ang huling opsyon ay nangangahulugan na kahit na lumabas ka sa console, ang kasalukuyang session ay mananatiling bukas sa loob ng 10 minuto, kaya sa panahong ito maaari kang kumonekta muli sa kasalukuyang socket. Para sa higit pang impormasyon, tingnan ang tulong. ssh_config man.

18. Mag-stream ng video sa SSH gamit ang VLC at SFTP

Kahit na matagal nang gumagamit ssh ΠΈ vlc (Video Lan Client) ay hindi laging alam ang maginhawang opsyon na ito kapag kailangan mo talagang manood ng video sa network. Sa mga setting File | Buksan ang Network Stream mga programa vlc maaari mong ipasok ang lokasyon bilang sftp://. Kung kailangan ng password, may lalabas na prompt.

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

19. Dalawang-factor na pagpapatunay

Ang parehong dalawang-factor na pagpapatotoo bilang iyong bank account o Google account ay nalalapat sa serbisyo ng SSH.

Siyempre, ssh sa una ay may dalawang-factor na pagpapatunay na function, na nangangahulugang isang password at isang SSH key. Ang bentahe ng isang hardware token o Google Authenticator app ay karaniwan itong ibang pisikal na device.

Tingnan ang aming 8 minutong gabay sa gamit ang Google Authenticator at SSH.

20. Jumping host na may ssh at -J

Kung ang pagse-segment ng network ay nangangahulugan na kailangan mong lumukso sa maraming ssh host upang makarating sa huling destinasyong network, ang -J shortcut ay makakatipid sa iyo ng oras.

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

Ang pangunahing bagay na dapat maunawaan dito ay hindi ito katulad ng utos ssh host1pagkatapos user@host1:~$ ssh host2 atbp. Ang opsyong -J ay matalinong gumagamit ng pagpapasa upang pilitin ang localhost na magtatag ng isang session kasama ang susunod na host sa chain. Kaya sa halimbawa sa itaas, ang aming localhost ay napatotohanan sa host4. Iyon ay, ang aming mga localhost key ay ginagamit, at ang session mula localhost hanggang host4 ay ganap na naka-encrypt.

Para sa ganoong posibilidad sa ssh_config tukuyin ang pagpipilian sa pagsasaayos ProxyJump. Kung regular kang kailangang dumaan sa ilang mga host, ang automation sa pamamagitan ng config ay makakatipid ng maraming oras.

21. I-block ang mga pagtatangka ng brute force ng SSH gamit ang mga iptable

Ang sinumang namamahala ng isang serbisyo ng SSH at tumingin sa mga log ay alam ang tungkol sa bilang ng mga pagtatangka ng brute force na nangyayari bawat oras ng bawat araw. Ang isang mabilis na paraan upang mabawasan ang ingay sa mga log ay ang paglipat ng SSH sa isang hindi karaniwang port. Gumawa ng mga pagbabago sa file sshd_config sa pamamagitan ng parameter ng pagsasaayos Port##.

May iptables Madali mo ring ma-block ang mga pagtatangka na kumonekta sa isang port kapag naabot mo ang isang partikular na threshold. Ang isang madaling paraan upang gawin ito ay ang paggamit OSSEC, dahil hindi lang nito hinaharangan ang SSH, ngunit nagsasagawa rin ito ng grupo ng iba pang mga panukalang intrusion detection (HIDS) na nakabatay sa hostname.

22. SSH Escape para baguhin ang port forwarding

At ang aming huling halimbawa ssh idinisenyo upang baguhin ang pagpapasa ng port nang mabilis sa loob ng isang kasalukuyang session ssh. Isipin ang senaryo na ito. Ikaw ay malalim sa network; maaaring lumukso ng mahigit kalahating dosenang host at kailangan ng lokal na port sa workstation na ipinapasa sa Microsoft SMB ng isang lumang Windows 2003 system (sinuman ang nakakaalala ng ms08-67?).

Pag-click enter, subukang pumasok sa console ~C. Ito ay isang session control sequence na nagbibigay-daan sa mga pagbabago na gawin sa isang umiiral na koneksyon.

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.

Dito makikita mo na naipasa namin ang aming lokal na port 1445 sa isang host ng Windows 2003 na nakita namin sa panloob na network. Ngayon lang tumakbo msfconsole, at maaari kang magpatuloy (ipagpalagay na plano mong gamitin ang host na ito).

Pagtapos

Ang mga halimbawa, tip at utos na ito ssh dapat magbigay ng panimulang punto; Higit pang impormasyon tungkol sa bawat isa sa mga utos at kakayahan ay makukuha sa man page (man ssh, man ssh_config, man sshd_config).

Palagi akong nabighani sa kakayahang mag-access ng mga system at magsagawa ng mga utos saanman sa mundo. Sa pamamagitan ng pagbuo ng iyong mga kasanayan sa mga tool tulad ng ssh ikaw ay magiging mas epektibo sa anumang laro na iyong laruin.

Pinagmulan: www.habr.com

Magdagdag ng komento