Conto praktis SSH, anu bakal nyandak kaahlian anjeun salaku administrator sistem jauh ka tingkat anyar. Paréntah sareng tip bakal ngabantosan henteu ngan ukur dianggo SSH, tapi ogé napigasi jaringan leuwih neuleu.
Nyaho sababaraha trik ssh mangpaat pikeun sagala administrator sistem, insinyur jaringan atawa spesialis kaamanan.
Conto di handap ieu nganggo parameter umum anu sering dipendakan nalika nyambung ka server jauh SSH.
localhost:~$ ssh -v -p 22 -C neo@remoteserver
-v: Debugging kaluaran utamana mangpaat nalika analisa masalah auténtikasi. Bisa dipaké sababaraha kali pikeun nembongkeun informasi tambahan.
- p 22: port sambungan ka server SSH jauh. 22 henteu kedah dieusian, sabab ieu mangrupikeun nilai standar, tapi upami protokolna aya dina sababaraha palabuhan anu sanés, maka urang tangtukeun nganggo parameter -p. Port déngékeun dieusian dina file sshd_config dina format Port 2222.
-C: Komprési pikeun sambungan. Upami Anjeun gaduh sambungan slow atawa nempo loba téks, ieu bisa nyepetkeun sambungan.
neo@: Garis saméméh simbol @ nunjukkeun ngaran pamaké pikeun auténtikasi dina server jauh. Upami anjeun henteu netepkeunana, éta bakal janten standar kana nami pangguna akun anu anjeun lebet ayeuna (~$whoami). Pamaké ogé bisa dieusian maké parameter -l.
remoteserver: ngaran host pikeun nyambung ka ssh, ieu tiasa janten nami domain mumpuni pinuh, alamat IP, atanapi host naon waé dina file host lokal. Pikeun nyambung ka host anu ngadukung IPv4 sareng IPv6, anjeun tiasa nambihan parameter kana garis paréntah -4 atawa -6 pikeun resolusi ditangtoskeun.
Sadaya parameter di luhur opsional iwal remoteserver.
Ngagunakeun file konfigurasi
Sanajan loba wawuh jeung file sshd_config, Aya ogé file konfigurasi klien pikeun paréntah ssh. Nilai standar ~/.ssh/config, tapi bisa dihartikeun salaku parameter pikeun hiji pilihan -F.
Host *
Port 2222
Host remoteserver
HostName remoteserver.thematrix.io
User neo
Port 2112
IdentityFile /home/test/.ssh/remoteserver.private_key
Aya dua éntri host dina conto file konfigurasi ssh di luhur. Anu kahiji hartosna sadayana host, sadayana nganggo parameter konfigurasi Port 2222. Anu kadua nyarios yén pikeun host. server jauh ngaran pamaké béda, port, FQDN na IdentityFile kudu dipaké.
File konfigurasi tiasa ngahemat waktos ngetik ku ngamungkinkeun konfigurasi maju sacara otomatis diterapkeun nalika nyambung ka host khusus.
Nyalin file liwat SSH nganggo SCP
Klién SSH hadir sareng dua alat anu gunana pikeun nyalin file sambungan ssh énkripsi. Tingali di handap pikeun conto pamakean standar paréntah scp sareng sftp. Catet yén seueur pilihan ssh ogé dilarapkeun kana paréntah ieu.
Dina conto ieu file mypic.png disalin ka server jauh kana map /média/data jeung diganti ngaranna jadi mypic_2.png.
Ulah poho ngeunaan bédana dina parameter port. Ieu tempat loba jalma meunang bray nalika aranjeunna ngajalankeun scp ti garis paréntah. Ieu parameter port -Pteu -p, kawas dina klien ssh! Anjeun bakal poho, tapi ulah salempang, dulur poho.
Pikeun maranéhanana anu wawuh jeung konsol ftp, loba paréntah nu sarupa di sftp. Anjeun tiasa ngalakukeun Teken, neundeun и lssakumaha kahayang haté.
sftp neo@remoteserver
Conto praktis
Dina seueur conto ieu, hasilna tiasa dihontal nganggo metode anu béda. Saperti dina sakabéh urang buku pangajaran jeung conto, leuwih sering dipake tinimbang dibikeun ka conto praktis nu saukur ngalakukeun pakasaban maranéhanana.
1. SSH kaos kaki proxy
Fitur SSH Proxy mangrupikeun nomer 1 pikeun alesan anu saé. Éta langkung kuat tibatan seueur anu sadar sareng masihan anjeun aksés kana sistem naon waé anu aksés server jauh, nganggo ampir aplikasi naon waé. Klién ssh tiasa torowongan lalu lintas ngaliwatan proxy SOCKS kalayan hiji paréntah saderhana. Penting pikeun ngarti yén lalu lintas ka sistem jauh bakal asalna tina server jauh, ieu bakal dituduhkeun dina log pangladén wéb.
Di dieu urang ngajalankeun proxy kaos kaki on TCP port 8888, paréntah kadua cek yén port aktip dina modeu déngékeun. 127.0.0.1 nunjukkeun yén layanan ngan ngajalankeun on localhost. Urang tiasa nganggo paréntah anu rada béda pikeun ngadangukeun sadaya antarmuka, kalebet ethernet atanapi wifi, ieu bakal ngamungkinkeun aplikasi anu sanés (browser, jsb) dina jaringan kami pikeun nyambung ka layanan proxy ngaliwatan proxy socks ssh.
Ayeuna urang tiasa ngonpigurasikeun browser pikeun nyambung ka proxy kaos kaki. Dina Firefox, pilih Setélan | Dasar | Setélan jaringan. Sebutkeun alamat IP sareng port pikeun nyambungkeun.
Punten perhatikeun pilihan di handapeun formulir pikeun ogé nyuhunkeun pamundut DNS browser anjeun ngalangkungan proxy SOCKS. Upami anjeun nganggo pangladén proxy pikeun énkripsi lalu lintas wéb dina jaringan lokal anjeun, anjeun panginten badé milih pilihan ieu supados pamundut DNS disaluyuan ku sambungan SSH.
Aktipkeun proxy kaos kaki dina Chrome
Ngaluncurkeun Chrome nganggo parameter garis paréntah anu tangtu bakal ngaktifkeun proxy kaos kaki, ogé nyuhunkeun pamundut DNS tina browser. Percanten tapi pariksa. Paké tcpdump pikeun pariksa yen queries DNS geus euweuh katempo.
Émut yén seueur aplikasi sanés ogé tiasa nganggo proksi kaos kaki. Web browser ngan saukur nu pang populerna di antarana. Sababaraha aplikasi gaduh pilihan konfigurasi pikeun ngaktipkeun server proxy. Batur butuh pitulung saeutik ku program nulungan. Salaku conto, ranté proxy ngidinan Anjeun pikeun ngajalankeun ngaliwatan proxy kaos kaki Microsoft RDP, jsb.
Parameter konfigurasi proxy kaos kaki diatur dina file konfigurasi proxychains.
Petunjuk: upami anjeun nganggo desktop jauh tina Linux dina Windows? Coba klien RDP gratis. Ieu palaksanaan leuwih modern ti rdesktop, kalawan pangalaman loba smoother.
Pilihan pikeun ngagunakeun SSH via proxy kaos kaki
Anjeun linggih di kafe atanapi hotél - sareng kapaksa nganggo WiFi anu teu tiasa dipercaya. Kami ngaluncurkeun proksi ssh sacara lokal tina laptop sareng pasang torowongan ssh kana jaringan asal dina Rasberry Pi lokal. Ngagunakeun browser atawa aplikasi sejenna ngonpigurasi pikeun proxy kaos kaki, urang bisa ngakses sagala jasa jaringan dina jaringan asal urang atawa ngakses Internet ngaliwatan sambungan imah urang. Sadayana antara laptop sareng server asal anjeun (via Wi-Fi sareng internét ka bumi anjeun) énkripsi dina torowongan SSH.
2. SSH torowongan (port forwarding)
Dina bentuk pangbasajanna, torowongan SSH ngan saukur muka port dina sistem lokal anjeun anu nyambung ka port anu sanés di tungtung torowongan.
Hayu urang nempo parameter -L. Ieu bisa dianggap salaku sisi lokal déngékeun. Janten dina conto di luhur, port 9999 ngadangukeun di sisi localhost sareng diteruskeun via port 80 ka remoteserver. Punten dicatet yén 127.0.0.1 nujul kana localhost dina server jauh!
Hayu urang naék léngkah. Conto di handap ieu komunikasi ngadengekeun palabuhan sareng host anu sanés dina jaringan lokal.
Dina conto ieu, urang alihan torowongan ti remoteserver ka web server ngajalankeun on 10.10.10.10. Lalu lintas ti remoteserver ka 10.10.10.10 euweuh dina torowongan SSH. Pangladén wéb dina 10.10.10.10 bakal nganggap server jauh janten sumber paménta wéb.
4. Ngabalikeun SSH torowongan
Di dieu urang bakal ngonpigurasikeun port déngékeun dina server jauh anu bakal nyambung deui ka port lokal on localhost kami (atawa sistem lianna).
Sesi SSH ieu nyieun sambungan ti port 1999 on remoteserver ka port 902 on klien lokal urang.
5. SSH Reverse Proxy
Dina hal ieu, urang nyetel proxy kaos kaki dina sambungan ssh urang, tapi proxy nu dengekeun dina tungtung jauh tina server. Sambungan ka proxy jauh ieu ayeuna muncul tina torowongan salaku lalu lintas ti localhost urang.
Upami Anjeun gaduh masalah sareng pilihan SSH jauh jalan, pariksa ku netstat, naon interfaces séjén port déngékeun disambungkeun ka. Sanajan urang dituduhkeun 0.0.0.0 dina conto, tapi lamun nilai GatewayPorts в sshd_config disetel ka No, teras pangdéngé bakal kabeungkeut ngan ka localhost (127.0.0.1).
Perhatosan Kaamanan
Punten dicatet yén ku muka proksi torowongan sareng kaos kaki, sumber jaringan internal tiasa diaksés ku jaringan anu teu dipercaya (sapertos Internét!). Ieu tiasa janten résiko kaamanan anu serius, janten pastikeun anjeun ngartos naon anu ngadangukeun sareng naon anu aranjeunna aksés.
6. Masang VPN via SSH
Istilah umum di kalangan spesialis dina metode serangan (pentesters, jsb) nyaéta "tumpu dina jaringan." Sakali sambungan diadegkeun dina hiji sistem, éta sistem jadi gateway pikeun aksés salajengna ka jaringan. A fulcrum nu ngidinan Anjeun pikeun mindahkeun dina breadth.
Pikeun foothold sapertos urang tiasa nganggo proxy SSH na ranté proxy, Tapi aya sababaraha watesan. Salaku conto, éta moal tiasa dianggo langsung sareng sockets, janten urang moal tiasa nyeken palabuhan dina jaringan via NmapSYN.
Ngagunakeun pilihan VPN leuwih canggih ieu, sambungan diréduksi jadi tingkat 3. Urang teras tiasa ngalihkeun lalu lintas ngalangkungan torowongan nganggo rute jaringan standar.
Metoda ngagunakeun ssh, iptables, tun interfaces jeung routing.
Mimiti anjeun kedah nyetél parameter ieu sshd_config. Kusabab urang nyieun parobahan interfaces duanana jauh jeung sistem klien, urang peryogi hak akar dina dua sisi.
PermitRootLogin yes
PermitTunnel yes
Teras we bakal ngadegkeun sambungan ssh ngagunakeun parameter nu requests nu initialization sahiji alat tun.
localhost:~# ssh -v -w any root@remoteserver
Urang ayeuna kudu boga alat tun nalika némbongkeun interfaces (# ip a). Lengkah saterusna bakal nambahkeun alamat IP kana interfaces torowongan.
sisi klien SSH:
localhost:~# ip addr add 10.10.10.2/32 peer 10.10.10.10 dev tun0
localhost:~# ip tun0 up
Sisi Server SSH:
remoteserver:~# ip addr add 10.10.10.10/32 peer 10.10.10.2 dev tun0
remoteserver:~# ip tun0 up
Ayeuna urang gaduh rute langsung ka host anu sanés (route -n и ping 10.10.10.10).
Anjeun tiasa jalur subnet mana wae ngaliwatan host di sisi séjén.
localhost:~# route add -net 10.10.10.0 netmask 255.255.255.0 dev tun0
Di sisi jauh anjeun kedah ngaktipkeun ip_forward и iptables.
Boom! VPN ngaliwatan torowongan SSH di lapisan jaringan 3. Ayeuna éta meunangna.
Upami aya masalah, paké tcpdump и pingpikeun nangtukeun sabab. Kusabab urang maén dina lapisan 3, pakét icmp urang bakal ngaliwat torowongan ieu.
7. Salin konci SSH (ssh-copy-id)
Aya sababaraha cara pikeun ngalakukeun ieu, tapi paréntah ieu ngahémat waktos ku henteu nyalin file sacara manual. Éta ngan saukur nyalin ~/.ssh/id_rsa.pub (atanapi konci standar) tina sistem anjeun ka ~/.ssh/authorized_keys dina server jauh.
localhost:~$ ssh-copy-id user@remoteserver
8. Palaksanaan paréntah jauh (non-interaktif)
tim ssh Bisa numbu ka paréntah séjén pikeun umum, panganteur ramah-pamaké. Ngan tambahkeun paréntah anu anjeun hoyong jalankeun dina host jauh salaku parameter terakhir dina tanda petik.
Dina conto ieu grep dieksekusi dina sistem lokal saatos log parantos diunduh via saluran ssh. Lamun file badag, éta leuwih merenah pikeun ngajalankeun grep di sisi jauh ku saukur ngalampirkeun duanana paréntah dina tanda petik ganda.
conto sejen ngalakukeun fungsi sarua salaku ssh-copy-id tina conto 7.
Kuring nyandak salah sahiji urang conto tcpdump. Anggo éta pikeun nyandak pakét jarak jauh sareng ningalikeun hasilna langsung dina GUI Wireshark lokal.
:~$ ssh root@remoteserver 'tcpdump -c 1000 -nn -w - not port 22' | wireshark -k -i -
10. Nyalin folder lokal ka server jauh via SSH
A trik nice nu compresses polder maké bzip2 (ieu pilihan -j dina paréntah tar), lajeng retrieves stream bzip2 di sisi séjén, nyieun duplikat folder dina server jauh.
Upami X dipasang dina klien sareng server jauh, anjeun tiasa jarak jauh ngaéksekusi paréntah GUI kalayan jandela dina desktop lokal anjeun. fitur ieu geus sabudeureun pikeun lila, tapi masih pohara kapaké. Jalankeun browser wéb jauh atanapi bahkan konsol VMWawre Workstation sapertos anu kuring lakukeun dina conto ieu.
localhost:~$ ssh -X remoteserver vmware
string diperlukeun X11Forwarding yes dina file sshd_config.
12. Nyalin file jauh ngagunakeun rsync na SSH
rsync leuwih merenah scp, upami anjeun peryogi cadangan périodik tina diréktori, sajumlah file anu ageung, atanapi file anu ageung pisan. Aya fungsi pikeun pulih tina gagal transfer sareng nyalin ngan ukur file anu dirobih, anu ngahemat lalu lintas sareng waktos.
Conto ieu ngagunakeun komprési gzip (-z) jeung mode archiving (-a), nu ngamungkinkeun recursive Niron.
Torsocks bakal ngagunakeun port 9050 on localhost pikeun proxy. Sapertos biasa, nalika nganggo Tor anjeun kedah mariksa sacara serius naon lalu lintas anu disaluyuan sareng masalah kaamanan operasional (opsec) anu sanés. Dimana pamundut DNS anjeun angkat?
14. SSH mun EC2 conto
Pikeun nyambung ka conto EC2, anjeun peryogi konci pribadi. Unduh (ekstensi .pem) tina panel kontrol Amazon EC2 sareng robih idin (chmod 400 my-ec2-ssh-key.pem). Simpen konci dina tempat anu aman atanapi nempatkeun kana polder anjeun nyalira ~/.ssh/.
parameter -i saukur ngabejaan ka klien ssh ngagunakeun konci ieu. File ~/.ssh/config Idéal pikeun otomatis ngonpigurasikeun pamakean konci nalika nyambungkeun ka host ec2.
Host my-ec2-public
Hostname ec2???.compute-1.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/my-ec2-key.pem
15. Ngédit file téks maké VIM via ssh / scp
Pikeun sakabéh pencinta vim Tip ieu bakal ngahemat waktos. Ku ngagunakeun vim file diédit via scp kalayan hiji paréntah. Metoda ieu ngan saukur nyiptakeun file sacara lokal di /tmplajeng nyalin deui sakali kami disimpen tina vim.
localhost:~$ vim scp://user@remoteserver//etc/hosts
Catetan: formatna rada béda ti biasana scp. Saatos host kami gaduh ganda //. Ieu mangrupa rujukan jalur mutlak. Hiji slash bakal nunjukkeun jalur relatif ka folder asal anjeun users.
Sacara standar, upami aya sambungan anu tos aya ka server jauh nganggo ssh sambungan kadua ngagunakeun ssh atawa scp ngadegkeun sési anyar kalawan auténtikasi tambahan. Pilihan ControlPath ngamungkinkeun sési anu tos aya dianggo pikeun sadaya sambungan anu salajengna. Ieu sacara signifikan bakal nyepetkeun prosésna: pangaruhna katingali sanajan dina jaringan lokal, komo deui nalika nyambungkeun ka sumber jauh.
Host remoteserver
HostName remoteserver.example.org
ControlMaster auto
ControlPath ~/.ssh/control/%r@%h:%p
ControlPersist 10m
ControlPath nangtukeun stop kontak pikeun pariksa sambungan anyar pikeun nempo lamun aya sési aktip ssh. Pilihan anu terakhir ngandung harti yén sanajan saatos anjeun kaluar tina konsol, sési anu tos aya bakal tetep kabuka salami 10 menit, janten salami ieu anjeun tiasa nyambungkeun deui kana stop kontak anu tos aya. Kanggo inpo nu leuwih lengkep, tingali pitulung. ssh_config man.
18. Stream video ngaliwatan SSH maké VLC jeung SFTP
Malah pamaké lila ssh и vlc (Video Lan Klién) teu salawasna sadar pilihan merenah ieu mun anjeun bener kudu lalajo video ngaliwatan jaringan. Dina setélan Berkas | Buka Network Stream program vlc anjeun tiasa ngasupkeun lokasi salaku sftp://. Upami kecap akses diperyogikeun, ajakan bakal muncul.
sftp://remoteserver//media/uploads/myvideo.mkv
19. auténtikasi dua-faktor
Auténtikasi dua-faktor anu sami sareng akun bank anjeun atanapi akun Google lumaku pikeun layanan SSH.
Tangtu, ssh mimitina boga fungsi auténtikasi dua-faktor, nu hartina sandi jeung konci SSH. Kauntungannana token hardware atanapi aplikasi Google Authenticator nyaéta biasana alat fisik anu béda.
Upami segmentasi jaringan hartosna anjeun kedah ngaluncat sababaraha host ssh pikeun dugi ka jaringan tujuan akhir, potong kompas -J bakal ngahémat waktos anjeun.
Hal utama pikeun ngarti di dieu nyaéta yén ieu henteu sami sareng paréntah ssh host1saterusna user@host1:~$ ssh host2 jsb Pilihan -J cleverly ngagunakeun diteruskeun maksa localhost pikeun ngadegkeun sési jeung host hareup dina ranté nu. Janten dina conto di luhur, localhost kami dioténtikasi ka host4. Nyaéta, konci localhost kami dianggo, sareng sési ti localhost ka host4 énkripsi lengkep.
Pikeun kamungkinan sapertos di ssh_config nangtukeun pilihan konfigurasi ProxyJump. Upami anjeun rutin kedah ngaliwat sababaraha host, maka otomatisasi ngaliwatan konfigurasi bakal ngahémat waktos.
21. Blok SSH usaha brute force ngagunakeun iptables
Saha waé anu parantos ngatur jasa SSH sareng ningali log terang ngeunaan jumlah usaha brute force anu lumangsung unggal jam unggal dinten. Cara anu gancang pikeun ngirangan bising dina log nyaéta mindahkeun SSH ka port anu henteu standar. Jieun parobahan dina file sshd_config via parameter konfigurasi Palabuhan##.
jeung iptables Anjeun oge bisa gampang meungpeuk usaha pikeun nyambung ka port a mun ngahontal bangbarung nu tangtu. Cara anu gampang pikeun ngalakukeun ieu nyaéta ngagunakeun OSSEC, sabab henteu ngan meungpeuk SSH, tapi ngalakukeun sababaraha ukuran deteksi intrusion (HIDS) dumasar hostname séjén.
22. SSH ngewa pikeun ngarobah port diteruskeun
Jeung conto panungtungan urang ssh dirancang pikeun ngarobah port diteruskeun dina laleur dina sési aya ssh. Bayangkeun skenario ieu. Anjeun jero dina jaringan; meureun hopped leuwih satengah belasan sarwa sarta kudu port lokal dina workstation nu diteruskeun ka Microsoft SMB tina hiji sistem Windows 2003 heubeul (saha apal ms08-67?).
Ngaklik enter, cobian lebetkeun kana konsol ~C. Ieu runtuyan kontrol sési anu ngamungkinkeun parobahan dijieun kana sambungan nu geus aya.
Di dieu anjeun bisa nempo yén kami geus diteruskeun port lokal urang 1445 ka host Windows 2003 nu urang kapanggih dina jaringan internal. Ayeuna ngan ngajalankeun msfconsole, tur anjeun tiasa ngaléngkah (asumsina rencana ngagunakeun host ieu).
parantosan
Ieu conto, tip sareng paréntah ssh kedah masihan titik awal; Inpormasi langkung seueur ngeunaan unggal paréntah sareng kamampuan sayogi dina halaman lalaki (man ssh, man ssh_config, man sshd_config).
Kuring geus salawasna geus fascinated ku kamampuhan pikeun ngakses sistem jeung ngaéksekusi paréntah di mana waé di dunya. Ku ngamekarkeun kaahlian anjeun kalawan parabot kawas ssh anjeun bakal jadi leuwih éféktif dina sagala kaulinan Anjeun muterkeun.