Amaliy maslahatlar, misollar va SSH tunnellari

Amaliy maslahatlar, misollar va SSH tunnellari
Amaliy misollar sSH, bu sizning masofaviy tizim administratori sifatidagi mahoratingizni yangi darajaga olib chiqadi. Buyruqlar va maslahatlar nafaqat foydalanishga yordam beradi SSH, balki tarmoqda yanada malakali navigatsiya qiling.

Bir nechta fokuslarni bilish ssh har qanday tizim ma'muri, tarmoq muhandisi yoki xavfsizlik bo'yicha mutaxassis uchun foydalidir.

Amaliy SSH misollari

  1. SSH paypoq proksi
  2. SSH tunnel (portni yo'naltirish)
  3. Uchinchi xostga SSH tuneli
  4. Teskari SSH tunnel
  5. SSH teskari proksi-server
  6. SSH orqali VPN o'rnatilmoqda
  7. SSH kalitidan nusxa olish (ssh-copy-id)
  8. Buyruqning masofadan bajarilishi (interaktiv bo'lmagan)
  9. Wireshark-da paketlarni masofadan tortib olish va ko'rish
  10. Mahalliy jildni SSH orqali uzoq serverga nusxalash
  11. SSH X11 Forwarding bilan masofaviy GUI ilovalari
  12. Rsync va SSH yordamida faylni masofadan nusxalash
  13. Tor tarmog'i orqali SSH
  14. SSH dan EC2gacha
  15. VIM yordamida ssh/scp orqali matnli fayllarni tahrirlash
  16. Masofaviy SSH-ni SSHFS bilan mahalliy papka sifatida o'rnating
  17. ControlPath bilan SSHni ko'paytirish
  18. VLC va SFTP yordamida SSH orqali videoni uzating
  19. Ikki faktorli autentifikatsiya
  20. SSH va -J bilan sakrash xostlari
  21. Iptables yordamida SSH shafqatsiz kuch urinishlarini bloklash
  22. Portni yo'naltirishni o'zgartirish uchun SSH Escape

Avval asoslar

SSH buyruq qatorini tahlil qilish

Quyidagi misolda uzoq serverga ulanishda tez-tez uchraydigan umumiy parametrlar qo'llaniladi SSH.

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

  • -v: Nosozliklarni tuzatish chiqishi, ayniqsa, autentifikatsiya muammolarini tahlil qilishda foydalidir. Qo'shimcha ma'lumotlarni ko'rsatish uchun bir necha marta foydalanish mumkin.
  • - p 22: ulanish porti masofaviy SSH serveriga. 22 ni ko'rsatish shart emas, chunki bu standart qiymat, lekin agar protokol boshqa portda bo'lsa, biz uni parametr yordamida aniqlaymiz. -p. Tinglash porti faylda ko'rsatilgan sshd_config formatida Port 2222.
  • -C: Ulanish uchun siqish. Agar ulanish sekin bo'lsa yoki ko'p matnni ko'rsangiz, bu ulanishni tezlashtirishi mumkin.
  • neo@: @ belgisi oldidagi chiziq masofaviy serverda autentifikatsiya qilish uchun foydalanuvchi nomini bildiradi. Agar siz uni ko'rsatmasangiz, u siz hozirda kirgan hisob qaydnomangizning foydalanuvchi nomi (~$whoami) bo'ladi. Foydalanuvchi parametr yordamida ham belgilanishi mumkin -l.
  • remoteserver: ulanish uchun xost nomi ssh, bu to'liq malakali domen nomi, IP manzili yoki mahalliy xostlar faylidagi istalgan xost bo'lishi mumkin. IPv4 va IPv6-ni qo'llab-quvvatlaydigan xostga ulanish uchun siz parametrni buyruq qatoriga qo'shishingiz mumkin -4 yoki -6 to'g'ri hal qilish uchun.

Yuqoridagi barcha parametrlar ixtiyoriydir, bundan tashqari remoteserver.

Konfiguratsiya faylidan foydalanish

Ko'pchilik fayl bilan tanish bo'lsa-da sshd_config, buyruq uchun mijoz konfiguratsiya fayli ham mavjud ssh. Standart qiymat ~/.ssh/config, lekin u variant uchun parametr sifatida belgilanishi mumkin -F.

Host *
     Port 2222

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

Yuqoridagi misol ssh konfiguratsiya faylida ikkita xost yozuvi mavjud. Birinchisi barcha hostlarni bildiradi, ularning barchasi Port 2222 konfiguratsiya parametridan foydalanadi, ikkinchisi esa xost uchun ekanligini aytadi. masofaviy server boshqa foydalanuvchi nomi, port, FQDN va IdentityFile dan foydalanish kerak.

Konfiguratsiya fayli ma'lum xostlarga ulanishda kengaytirilgan konfiguratsiyani avtomatik ravishda qo'llash imkonini berish orqali ko'p yozish vaqtini tejashi mumkin.

SCP yordamida SSH orqali fayllarni nusxalash

SSH mijozi fayllarni nusxalash uchun yana ikkita juda qulay vosita bilan birga keladi shifrlangan ssh ulanishi. Scp va sftp buyruqlaridan standart foydalanish misolini quyida ko'ring. E'tibor bering, ko'pgina ssh opsiyalari ushbu buyruqlarga ham tegishli.

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

Ushbu misolda fayl mypic.png ga ko'chirildi masofaviy server jildga /media/ma'lumotlar va nomini o'zgartirdi mypic_2.png.

Port parametridagi farq haqida unutmang. Bu erda ko'p odamlar ishga tushirilganda qo'lga olinadi scp buyruq satridan. Mana port parametri -P, va emas -p, xuddi ssh mijozidagi kabi! Siz unutasiz, lekin tashvishlanmang, hamma unutadi.

Konsol bilan tanish bo'lganlar uchun ftp, ko'pgina buyruqlar o'xshash sftp. Siz qila olasiz bosish, Qo'yish ΠΈ lsyurak hohlagandek.

sftp neo@remoteserver

Amaliy misollar

Ushbu misollarning ko'pchiligida natijalarga turli usullar yordamida erishish mumkin. Hammamizda bo'lgani kabi darsliklar va misollar, o'z vazifasini bajaradigan amaliy misollarga ustunlik beriladi.

1. SSH paypoq proksi

SSH proksi xususiyati yaxshi sababga ko'ra 1-raqamdir. Bu ko'pchilik tushunganidan kuchliroq va sizga masofaviy server kirish imkoniga ega bo'lgan har qanday tizimga deyarli har qanday ilovadan foydalanish imkonini beradi. Ssh mijozi bitta oddiy buyruq bilan SOCKS proksi-server orqali trafikni tunnel qilishi mumkin. Masofaviy tizimlarga trafik uzoq serverdan kelishini tushunish muhim, bu veb-server jurnallarida ko'rsatiladi.

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

Bu erda biz TCP 8888 portida paypoq proksi-serverini ishga tushiramiz, ikkinchi buyruq portning tinglash rejimida faolligini tekshiradi. 127.0.0.1 xizmat faqat localhost-da ishlashini bildiradi. Biz barcha interfeyslarni, jumladan chekilgan yoki Wi-Fi-ni tinglash uchun biroz boshqacha buyruqdan foydalanishimiz mumkin, bu bizning tarmog'imizdagi boshqa ilovalarga (brauzerlar va boshqalar) ssh socks proksi-server orqali proksi-serverga ulanish imkonini beradi.

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

Endi biz brauzerni paypoq proksi-serveriga ulanish uchun sozlashimiz mumkin. Firefox-da tanlang Sozlamalar | Asosiy | Tarmoq sozlamalari. Ulanish uchun IP-manzil va portni belgilang.

Amaliy maslahatlar, misollar va SSH tunnellari

Iltimos, brauzeringizning DNS soβ€˜rovlari SOCKS proksi-server orqali oβ€˜tishi uchun shaklning pastki qismidagi variantga e’tibor bering. Agar siz mahalliy tarmog'ingizdagi veb-trafikni shifrlash uchun proksi-serverdan foydalanayotgan bo'lsangiz, DNS so'rovlarini SSH ulanishi orqali tunnel qilish uchun ushbu variantni tanlashni xohlaysiz.

Chrome brauzerida paypoq proksi-serverini faollashtirish

Muayyan buyruq qatori parametrlari bilan Chrome-ni ishga tushirish paypoq proksi-serverini faollashtiradi, shuningdek, brauzerdan DNS so'rovlarini tunnel qiladi. Ishon lekin tekshir. Foydalanish tcpdump DNS so'rovlari endi ko'rinmasligini tekshirish uchun.

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

Proksi-server bilan boshqa ilovalardan foydalanish

Shuni yodda tutingki, ko'plab boshqa ilovalar ham paypoq proksi-serverlaridan foydalanishi mumkin. Veb-brauzer shunchaki ularning eng mashhuridir. Ba'zi ilovalarda proksi-serverni yoqish uchun konfiguratsiya opsiyalari mavjud. Boshqalar yordamchi dastur bilan ozgina yordamga muhtoj. Masalan, proksi zanjirlar paypoq proksi-server Microsoft RDP orqali ishlash imkonini beradi, va hokazo.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Paypoq proksi konfiguratsiyasi parametrlari proksi zanjiri konfiguratsiya faylida o'rnatiladi.

Maslahat: agar siz Windows-da Linux-dan masofaviy ish stolidan foydalansangiz? Mijozni sinab ko'ring FreeRDP. Bu ko'proq zamonaviy amalga oshirish rdesktop, ancha yumshoq tajriba bilan.

Paypoq proksi orqali SSH-dan foydalanish imkoniyati

Siz kafe yoki mehmonxonada o'tiribsiz - va juda ishonchsiz WiFi-dan foydalanishga majbursiz. Biz noutbukdan mahalliy ssh proksi-serverini ishga tushiramiz va mahalliy Rasberry Pi-da uy tarmog'iga ssh tunnelini o'rnatamiz. Socks proksi-server uchun sozlangan brauzer yoki boshqa ilovalardan foydalanib, biz uy tarmog'imizdagi istalgan tarmoq xizmatlariga kirishimiz yoki uy ulanishimiz orqali Internetga kirishimiz mumkin. Noutbuk va uy serveringiz orasidagi hamma narsa (Wi-Fi va internet orqali uyingizga) SSH tunnelida shifrlangan.

2. SSH tunneli (portni yo'naltirish)

Eng oddiy shaklda, SSH tunneli tunnelning boshqa uchidagi boshqa portga ulanadigan mahalliy tizimingizda portni ochadi.

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

Parametrni ko'rib chiqaylik -L. Buni tinglashning mahalliy tomoni deb hisoblash mumkin. Shunday qilib, yuqoridagi misolda 9999 porti localhost tomonida tinglaydi va 80 port orqali masofaviy serverga uzatiladi. Iltimos, 127.0.0.1 masofaviy serverdagi localhost-ga tegishli ekanligini unutmang!

Keling, yuqoriga chiqaylik. Quyidagi misol tinglash portlarini mahalliy tarmoqdagi boshqa xostlar bilan bog'laydi.

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

Ushbu misollarda biz veb-serverdagi portga ulanyapmiz, lekin bu proksi-server yoki boshqa TCP xizmati bo'lishi mumkin.

3. Uchinchi tomon xostiga SSH tunnel

Xuddi shu parametrlardan tunnelni masofaviy serverdan uchinchi tizimda ishlaydigan boshqa xizmatga ulash uchun foydalanishimiz mumkin.

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

Ushbu misolda biz tunnelni masofaviy serverdan 10.10.10.10 da ishlaydigan veb-serverga yo'naltirmoqdamiz. Masofaviy serverdan 10.10.10.10 gacha trafik endi SSH tunnelida emas. 10.10.10.10 da veb-server masofaviy serverni veb-so'rovlar manbai deb hisoblaydi.

4. Teskari SSH tunnel

Bu erda biz uzoq serverdagi tinglash portini sozlaymiz, u bizning localhost (yoki boshqa tizim)dagi mahalliy portga qayta ulanadi.

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

Ushbu SSH seansi masofaviy serverdagi 1999-portdan mahalliy mijozimizdagi 902-portga ulanishni o'rnatadi.

5. SSH teskari proksi

Bunday holda, biz ssh ulanishimizda paypoq proksi-serverini o'rnatmoqdamiz, ammo proksi-server serverning uzoq uchida tinglayapti. Ushbu masofaviy proksi-serverga ulanishlar endi tunneldan mahalliy xostimizdan trafik sifatida ko'rinadi.

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

Masofaviy SSH tunnellari bilan bog'liq muammolarni bartaraf etish

Masofaviy SSH opsiyalarining ishlashi bilan bog'liq muammolar mavjud bo'lsa, bu bilan tekshiring netstat, tinglash porti yana qanday interfeyslarga ulangan. Garchi biz misollarda 0.0.0.0 ni ko'rsatgan bo'lsak-da, lekin qiymat bo'lsa Gateway portlari Π² sshd_config sozlang Yo'q, keyin tinglovchi faqat localhost (127.0.0.1) bilan bog'lanadi.

Xavfsizlik haqida ogohlantirish

Tunnel va paypoq proksi-serverlarini ochish orqali ichki tarmoq resurslariga ishonchsiz tarmoqlar (masalan, Internet!) kirishi mumkinligini unutmang. Bu jiddiy xavfsizlik xavfi bo'lishi mumkin, shuning uchun tinglovchi nima ekanligini va ular nimaga kirishi mumkinligini tushunganingizga ishonch hosil qiling.

6. VPNni SSH orqali o'rnatish

Hujum usullari (pentesters va boshqalar) bo'yicha mutaxassislar orasida keng tarqalgan atama "tarmoqdagi tayanch nuqtasi" dir. Bitta tizimda ulanish o'rnatilgandan so'ng, ushbu tizim tarmoqqa keyingi kirish uchun shlyuzga aylanadi. Kenglikda harakatlanish imkonini beruvchi tayanch nuqtasi.

Bunday tayanch uchun biz SSH proksi-serveridan foydalanishimiz mumkin va proksi zanjirlar, ammo ba'zi cheklovlar mavjud. Masalan, rozetkalar bilan to'g'ridan-to'g'ri ishlash mumkin bo'lmaydi, shuning uchun biz tarmoq ichidagi portlarni skanerdan o'tkaza olmaymiz. Nmap SYN.

Ushbu yanada rivojlangan VPN opsiyasidan foydalanib, ulanish qisqartiriladi 3-daraja. Keyin standart tarmoq marshrutidan foydalangan holda tunnel orqali trafikni oddiygina yo'naltirishimiz mumkin.

Usul foydalanadi ssh, iptables, tun interfaces va marshrutlash.

Avval siz ushbu parametrlarni o'rnatishingiz kerak sshd_config. Biz masofaviy va mijoz tizimlarining interfeyslariga o'zgartirish kiritayotganimiz sababli, biz har ikki tomonda ham ildiz huquqlari kerak.

PermitRootLogin yes
PermitTunnel yes

Keyin tun qurilmalarini ishga tushirishni talab qiladigan parametr yordamida ssh ulanishini o'rnatamiz.

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

Endi interfeyslarni ko'rsatishda bizda tun qurilmasi bo'lishi kerak (# ip a). Keyingi qadam tunnel interfeyslariga IP manzillarini qo'shadi.

SSH mijoz tomoni:

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

SSH Server tomoni:

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

Endi bizda boshqa xostga to'g'ridan-to'g'ri yo'l bor (route -n ΠΈ ping 10.10.10.10).

Siz istalgan pastki tarmoqni boshqa tarafdagi xost orqali yo'naltirishingiz mumkin.

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

Masofaviy tomonda siz yoqishingiz kerak 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

Bom! 3-tarmoq darajasida SSH tunnel orqali VPN. Endi bu g'alaba.

Agar biron bir muammo yuzaga kelsa, foydalaning tcpdump ΠΈ pingsababini aniqlash uchun. Biz 3-qatlamda o'ynaganimiz sababli, bizning icmp paketlarimiz ushbu tunnel orqali o'tadi.

7. SSH kalitidan nusxa oling (ssh-copy-id)

Buning bir necha yo'li bor, lekin bu buyruq fayllarni qo'lda nusxa ko'chirmaslik orqali vaqtni tejaydi. U oddiygina ~/.ssh/id_rsa.pub (yoki standart kalit)ni tizimingizdan nusxa ko'chiradi ~/.ssh/authorized_keys uzoq serverda.

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

8. Buyruqlarni masofadan turib bajarish (interaktiv bo'lmagan)

jamoa ssh Umumiy, qulay interfeys uchun boshqa buyruqlar bilan bog'lanishi mumkin. Qo'shtirnoq ichidagi oxirgi parametr sifatida masofaviy xostda ishga tushirmoqchi bo'lgan buyruqni qo'shing.

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

Ushbu misolda grep log ssh kanali orqali yuklab olingandan so'ng mahalliy tizimda bajariladi. Agar fayl katta bo'lsa, uni ishlatish qulayroqdir grep masofaviy tomonda ikkala buyruqni ham qo'sh tirnoq ichiga olish orqali.

Boshqa misol xuddi shu funktsiyani bajaradi ssh-copy-id 7-misoldan.

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

9. Wireshark-da paketlarni masofadan tortib olish va ko'rish

Bizdan birini oldim tcpdump misollari. Undan paketlarni masofadan turib olish va natijalarni to'g'ridan-to'g'ri mahalliy Wireshark GUI-da ko'rsatish uchun foydalaning.

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

10. Mahalliy papkani SSH orqali uzoq serverga nusxalash

Foydalanishda papkani siqib chiqaradigan yoqimli hiyla bzip2 (bu buyruqdagi -j variantidir tar) va keyin oqimni oladi bzip2 boshqa tomondan, uzoq serverda dublikat papka yaratish.

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

11. SSH X11 Forwarding bilan masofaviy GUI ilovalari

Agar X mijozga va masofaviy serverga o'rnatilgan bo'lsa, siz mahalliy ish stolingizdagi oyna bilan GUI buyrug'ini masofadan turib bajarishingiz mumkin. Bu xususiyat uzoq vaqtdan beri mavjud, ammo hali ham juda foydali. Men ushbu misoldagi kabi masofaviy veb-brauzerni yoki hatto VMWawre Workstation konsolini ishga tushiring.

localhost:~$ ssh -X remoteserver vmware

Majburiy qator X11Forwarding yes faylda sshd_config.

12. Rsync va SSH yordamida faylni masofadan nusxalash

rsync ancha qulayroq scp, agar sizga katalogning, ko'p sonli fayllarning yoki juda katta hajmdagi fayllarning davriy zaxira nusxalari kerak bo'lsa. O'tkazmadagi nosozlikni tiklash va faqat o'zgartirilgan fayllarni nusxalash funktsiyasi mavjud, bu trafik va vaqtni tejaydi.

Ushbu misol siqishni ishlatadi gzip (-z) va arxivlash rejimi (-a), bu rekursiv nusxa ko'chirish imkonini beradi.

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

13. Tor tarmog'i orqali SSH

Anonim Tor tarmog'i buyruq yordamida SSH trafigini tunnel qilishi mumkin torsocks. Quyidagi buyruq ssh proksi-serverini Tor orqali o'tkazadi.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Torsoklar proksi uchun localhost-da 9050 portidan foydalanadi. Har doimgidek, Tor-dan foydalanayotganda siz qanday trafik tunnel qilinayotganini va boshqa operatsion xavfsizlik (opsec) muammolarini jiddiy tekshirishingiz kerak. DNS so'rovlaringiz qayerga ketadi?

14. SSH dan EC2gacha

EC2 nusxasiga ulanish uchun sizga shaxsiy kalit kerak. Uni (.pem kengaytmasi) Amazon EC2 boshqaruv panelidan yuklab oling va ruxsatlarni oβ€˜zgartiring (chmod 400 my-ec2-ssh-key.pem). Kalitni xavfsiz joyda saqlang yoki uni shaxsiy papkangizga joylashtiring ~/.ssh/.

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

Parametr -i shunchaki ssh mijoziga ushbu kalitdan foydalanishni aytadi. Fayl ~/.ssh/config ec2 xostiga ulanishda kalitlardan foydalanishni avtomatik sozlash uchun ideal.

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

15. VIM yordamida ssh/scp orqali matnli fayllarni tahrirlash

Barcha sevuvchilar uchun vim Ushbu maslahat biroz vaqtni tejaydi. Yordamida vim fayllar scp orqali bitta buyruq bilan tahrirlanadi. Ushbu usul oddiygina faylni mahalliy sifatida yaratadi /tmpva biz uni saqlaganimizdan keyin uni qaytadan nusxa ko'chiradi vim.

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

Eslatma: format odatdagidan biroz farq qiladi scp. Mezbondan keyin bizda dubl bor //. Bu mutlaq yo'l havolasi. Bitta chiziq uy papkangizga nisbatan yo'lni ko'rsatadi users.

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

Agar siz ushbu xatoni ko'rsangiz, buyruq formatini ikki marta tekshiring. Bu odatda sintaksis xatosini bildiradi.

16. Masofaviy SSH-ni SSHFS bilan mahalliy papka sifatida o'rnatish

Yordamida sshfs - fayl tizimi mijozi ssh - biz shifrlangan seansda barcha fayllar bilan o'zaro aloqalar bilan mahalliy katalogni uzoq manzilga ulashimiz mumkin ssh.

localhost:~$ apt install sshfs

Paketni Ubuntu va Debian-ga o'rnating sshfs, va keyin shunchaki masofaviy manzilni tizimimizga o'rnating.

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

17. ControlPath bilan SSH multiplekslash

Odatiy bo'lib, masofaviy serverga ulanish mavjud bo'lsa ssh yordamida ikkinchi ulanish ssh yoki scp qo'shimcha autentifikatsiya bilan yangi sessiya o'rnatadi. Variant ControlPath mavjud seansni barcha keyingi ulanishlar uchun ishlatishga imkon beradi. Bu jarayonni sezilarli darajada tezlashtiradi: ta'sir hatto mahalliy tarmoqda ham sezilarli bo'ladi va undan ham uzoqroq resurslarga ulanishda.

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

ControlPath faol seans mavjudligini ko'rish uchun yangi ulanishlarni tekshirish uchun rozetkani belgilaydi ssh. Oxirgi variant konsoldan chiqqaningizdan keyin ham mavjud seans 10 daqiqa ochiq qoladi, shuning uchun shu vaqt ichida siz mavjud rozetkaga qayta ulanishingiz mumkin. Qo'shimcha ma'lumot olish uchun yordamga qarang. ssh_config man.

18. VLC va SFTP yordamida SSH orqali videoni uzating

Hatto uzoq vaqtdan beri foydalanuvchilar ssh ΠΈ vlc (Video Lan Client) siz haqiqatan ham tarmoq orqali video tomosha qilishingiz kerak bo'lganda, bu qulay variantni har doim ham bilishmaydi. Sozlamalarda Fayl | Tarmoq oqimini oching dasturlari vlc sifatida joylashuvni kiritishingiz mumkin sftp://. Agar parol kerak bo'lsa, so'rov paydo bo'ladi.

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

19. Ikki faktorli autentifikatsiya

Bank hisobingiz yoki Google hisobingiz bilan bir xil ikki faktorli autentifikatsiya SSH xizmati uchun amal qiladi.

Albatta, ssh dastlab ikki faktorli autentifikatsiya funksiyasiga ega, bu parol va SSH kalitini bildiradi. Apparat tokeni yoki Google Authenticator ilovasining afzalligi shundaki, u odatda boshqa jismoniy qurilmadir.

Bizning 8 daqiqalik qo'llanmamizga qarang Google Authenticator va SSH yordamida.

20. ssh va -J bilan sakrash xostlari

Agar tarmoq segmentatsiyasi yakuniy tarmoqqa kirish uchun bir nechta ssh xostlari orqali o'tish kerakligini anglatsa, -J yorlig'i vaqtni tejaydi.

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

Bu erda tushunish kerak bo'lgan asosiy narsa, bu buyruq bilan bir xil emas ssh host1, keyin user@host1:~$ ssh host2 va hokazo. -J opsiyasi localhostni zanjirdagi keyingi xost bilan seans o'rnatishga majburlash uchun yo'naltirishdan oqilona foydalanadi. Shunday qilib, yuqoridagi misolda bizning localhost host4-ga autentifikatsiya qilingan. Ya'ni, bizning localhost kalitlarimiz ishlatiladi va localhost-dan host4-ga bo'lgan seans to'liq shifrlangan.

Bunday imkoniyat uchun ssh_config konfiguratsiya opsiyasini belgilang ProxyJump. Agar siz muntazam ravishda bir nechta xostlardan o'tishingiz kerak bo'lsa, unda konfiguratsiya orqali avtomatlashtirish ko'p vaqtni tejaydi.

21. Iptables yordamida SSH qo'pol kuch urinishlarini bloklash

SSH xizmatini boshqargan va jurnallarni ko'rib chiqqan har bir kishi har kuni har soatda sodir bo'ladigan qo'pol kuchga urinishlar sonini biladi. Jurnallardagi shovqinni kamaytirishning tezkor usuli SSHni nostandart portga o'tkazishdir. Faylga o'zgartirishlar kiriting sshd_config konfiguratsiya parametri orqali Port##.

Yordamida iptables Bundan tashqari, ma'lum bir chegaraga yetganingizda portga ulanishga urinishlarni osongina bloklashingiz mumkin. Buning oson yo'li - foydalanish OSSEC, chunki u nafaqat SSH-ni bloklaydi, balki boshqa host nomiga asoslangan tajovuzni aniqlash (HIDS) choralarini ham amalga oshiradi.

22. Portni yo'naltirishni o'zgartirish uchun SSH Escape

Va bizning oxirgi misolimiz ssh mavjud seans ichida portni yo'naltirishni tezda o'zgartirish uchun mo'ljallangan ssh. Ushbu stsenariyni tasavvur qiling. Siz tarmoqda chuqursiz; Ehtimol, yarim o'ndan ortiq xostlarni o'tkazib yuborgan va eski Windows 2003 tizimining Microsoft SMB-ga uzatiladigan ish stantsiyasida mahalliy port kerak (har kim ms08-67 ni eslaydi?).

Bosish enter, konsolga kirib ko'ring ~C. Bu mavjud ulanishga o'zgartirishlar kiritish imkonini beruvchi seansni boshqarish ketma-ketligi.

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.

Bu erda biz mahalliy 1445 portimizni ichki tarmoqda topgan Windows 2003 xostiga yo'naltirganimizni ko'rishingiz mumkin. Endi faqat yugur msfconsole, va siz davom etishingiz mumkin (agar siz ushbu xostdan foydalanishni rejalashtirsangiz).

Tugatish

Bu misollar, maslahatlar va buyruqlar ssh boshlang'ich nuqtasini berishi kerak; Har bir buyruq va imkoniyatlar haqida qo'shimcha ma'lumot man sahifalarida mavjud (man ssh, man ssh_config, man sshd_config).

Dunyoning istalgan nuqtasida tizimlarga kirish va buyruqlarni bajarish qobiliyati meni doim hayratga solgan. kabi vositalar yordamida ko'nikmalaringizni rivojlantirish orqali ssh har qanday o'yinda samaraliroq bo'lasiz.

Manba: www.habr.com

a Izoh qo'shish