Практик зөвлөмж, жишээ, SSH хонгил

Практик зөвлөмж, жишээ, SSH хонгил
Практик жишээнүүд SSH, энэ нь таны алсын системийн администраторын ур чадварыг шинэ түвшинд гаргах болно. Тушаал, зөвлөмжүүд нь зөвхөн ашиглахад туслах болно SSH, гэхдээ сүлжээг илүү чадварлаг удирдах боломжтой.

Хэд хэдэн заль мэхийг мэддэг ssh системийн администратор, сүлжээний инженер эсвэл аюулгүй байдлын мэргэжилтэнд хэрэгтэй.

SSH-ийн практик жишээ

  1. SSH оймс прокси
  2. SSH туннель (порт дамжуулах)
  3. Гурав дахь хост руу SSH хонгил
  4. Урвуу SSH туннель
  5. SSH урвуу прокси
  6. SSH-ээр VPN суулгаж байна
  7. SSH түлхүүрийг хуулж байна (ssh-copy-id)
  8. Алсын тушаалын гүйцэтгэл (интерактив бус)
  9. Wireshark дээр алсаас пакет барих, үзэх
  10. Дотоод фолдерыг SSH-ээр дамжуулан алсын сервер рүү хуулж байна
  11. SSH X11 дамжуулалттай алсын GUI програмууд
  12. Rsync болон SSH ашиглан зайнаас файл хуулах
  13. Tor сүлжээгээр SSH
  14. SSH-аас EC2-н инстанц
  15. VIM ашиглан ssh/scp ашиглан текст файлуудыг засварлах
  16. Алсын SSH-г SSHFS-тэй дотоод хавтас болгон холбоно уу
  17. ControlPath ашиглан SSH-г үржүүлэх
  18. VLC болон SFTP ашиглан SSH-ээр видео дамжуулаарай
  19. Хоёр хүчин зүйлийн гэрчлэл
  20. SSH болон -J-тэй хосууд үсэрч байна
  21. iptables ашиглан SSH харгис хүчний оролдлогыг блоклох
  22. Порт дамжуулалтыг өөрчлөхийн тулд SSH Escape

Эхлээд суурь

SSH командын мөрийг задлан шинжилж байна

Дараах жишээнд алсын серверт холбогдох үед ихэвчлэн тохиолддог нийтлэг параметрүүдийг ашигладаг SSH.

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

  • -v: Дибаг хийх гаралт нь баталгаажуулалтын асуудалд дүн шинжилгээ хийх үед ялангуяа ашигтай байдаг. Нэмэлт мэдээллийг харуулахын тулд олон удаа ашиглах боломжтой.
  • - p 22: холболтын порт алсын SSH сервер рүү. 22-ыг зааж өгөх шаардлагагүй, учир нь энэ нь өгөгдмөл утга боловч хэрэв протокол өөр порт дээр байгаа бол бид параметрийг ашиглан үүнийг зааж өгнө. -p. Сонсох портыг файлд зааж өгсөн болно sshd_config форматаар Port 2222.
  • -C: Холболтын шахалт. Хэрэв та удаан холболттой эсвэл олон текст хардаг бол энэ нь холболтыг хурдасгах болно.
  • neo@: @ тэмдэгтийн өмнөх мөр нь алсын сервер дээр баталгаажуулах хэрэглэгчийн нэрийг заана. Хэрэв та үүнийг зааж өгөөгүй бол энэ нь таны одоо нэвтэрсэн бүртгэлийн хэрэглэгчийн нэрээр (~$whoami) өгөгдмөл болно. Хэрэглэгчийг мөн параметр ашиглан тодорхойлж болно -l.
  • remoteserver: холбогдох хостын нэр ssh, энэ нь бүрэн хангасан домэйн нэр, IP хаяг эсвэл локал хост файлын аль ч хост байж болно. IPv4 болон IPv6-г дэмждэг хосттой холбогдохын тулд командын мөрөнд параметрийг нэмж болно -4 буюу -6 зөв шийдвэрлэхийн тулд.

Дээрх бүх параметрүүдээс бусад нь сонголттой байдаг remoteserver.

Тохируулгын файлыг ашиглах

Хэдийгээр олон хүн энэ файлыг мэддэг sshd_config, командын үйлчлүүлэгчийн тохиргооны файл бас байдаг ssh. Өгөгдмөл утга ~/.ssh/config, гэхдээ үүнийг сонголтын параметр болгон тодорхойлж болно -F.

Host *
     Port 2222

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

Дээрх жишээний ssh ​​тохиргооны файлд хоёр хостын оруулга байна. Эхнийх нь Порт 2222 тохиргооны параметрийг ашигладаг бүх хостуудыг хэлнэ. Хоёр дахь нь хостын хувьд гэсэн үг. алсын сервер өөр хэрэглэгчийн нэр, порт, FQDN болон IdentityFile ашиглах ёстой.

Тохируулгын файл нь тодорхой хостуудтай холбогдох үед дэвшилтэт тохиргоог автоматаар хэрэгжүүлэх боломжийг олгосноор бичих цагийг ихээхэн хэмнэнэ.

SCP ашиглан SSH дээр файл хуулж байна

SSH клиент нь файл хуулах өөр хоёр хэрэглүүртэй ирдэг шифрлэгдсэн ssh холболт. scp болон sftp командуудын стандарт хэрэглээний жишээг доороос үзнэ үү. Эдгээр командуудад олон ssh сонголтууд бас хамаатай гэдгийг анхаарна уу.

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

Энэ жишээнд файл mypic.png руу хуулсан алсын сервер хавтас руу /хэвлэл мэдээлэл/өгөгдөл гэж өөрчилсөн mypic_2.png.

Портын параметрийн ялгааг бүү мартаарай. Энд олон хүн хөөргөхдөө баригддаг scp тушаалын мөрөөс. Энд портын параметр байна -P, үгүй ​​ээ -p, яг ssh клиент шиг! Чи мартах болно, гэхдээ санаа зовох хэрэггүй, бүгд мартдаг.

Консолыг мэддэг хүмүүст зориулав ftp, олон тушаалууд нь ижил төстэй байна sftp. Та чадна түлхэх, тавих и lsзүрх хүссэнээрээ.

sftp neo@remoteserver

Практик жишээнүүд

Эдгээр жишээнүүдийн ихэнх нь янз бүрийн аргыг ашиглан үр дүнд хүрч болно. Манай бүхний нэгэн адил сурах бичиг болон жишээнүүдийн хувьд зүгээр л ажлаа хийдэг практик жишээг илүүд үздэг.

1. SSH оймс прокси

SSH Proxy функц нь сайн шалтгаанаар 1-р байр юм. Энэ нь олон хүний ​​ойлгосноос илүү хүчтэй бөгөөд танд алсын сервер хандах боломжтой аливаа системд нэвтрэх боломжийг олгодог бөгөөд бараг ямар ч програмыг ашиглана. ssh үйлчлүүлэгч нь нэг энгийн командын тусламжтайгаар SOCKS проксигоор дамжуулан траффикийг туннел хийх боломжтой. Алсын систем рүү чиглэсэн урсгал нь алсын серверээс ирэх болно гэдгийг ойлгох нь чухал бөгөөд үүнийг вэб серверийн бүртгэлд зааж өгөх болно.

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

Энд бид TCP порт 8888 дээр оймс прокси ажиллуулдаг бөгөөд хоёр дахь тушаал нь сонсох горимд порт идэвхтэй байгаа эсэхийг шалгадаг. 127.0.0.1 үйлчилгээ нь зөвхөн localhost дээр ажилладаг болохыг харуулж байна. Бид ethernet эсвэл wifi гэх мэт бүх интерфэйсүүдийг сонсохын тулд арай өөр командыг ашиглаж болох бөгөөд энэ нь манай сүлжээн дэх бусад програмуудыг (хөтөч гэх мэт) ssh socks прокси ашиглан прокси үйлчилгээнд холбох боломжийг олгоно.

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

Одоо бид хөтчийг оймс прокситэй холбохоор тохируулж болно. Firefox дээр сонгоно уу Тохиргоо | Үндсэн | Сүлжээний тохиргоо. Холбох IP хаяг болон портыг зааж өгнө үү.

Практик зөвлөмж, жишээ, SSH хонгил

Таны хөтчийн DNS хүсэлтийг SOCKS прокси-ээр дамжуулж өгөхийн тулд маягтын доод талд байгаа сонголтыг анхаарна уу. Хэрэв та өөрийн дотоод сүлжээн дэх вэб траффикийг шифрлэхийн тулд прокси сервер ашиглаж байгаа бол DNS хүсэлтийг SSH холболтоор дамжуулахын тулд энэ сонголтыг сонгохыг хүсэх байх.

Chrome-д оймс проксиг идэвхжүүлж байна

Тодорхой командын мөрийн параметрүүдтэй Chrome-г ажиллуулснаар оймс прокси-г идэвхжүүлэхээс гадна хөтөчөөс DNS хүсэлтийг туннел хийх боломжтой болно. Итгэ, гэхдээ шалга. Ашиглах tcpdump DNS асуулга харагдахаа больсон эсэхийг шалгах.

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

Прокси ашиглан бусад програмуудыг ашиглах

Бусад олон програмууд бас оймс прокси ашиглаж болно гэдгийг санаарай. Вэб хөтөч бол тэдний хамгийн алдартай нь юм. Зарим програмууд нь прокси серверийг идэвхжүүлэх тохиргооны сонголттой байдаг. Бусад нь туслах хөтөлбөрт бага зэрэг тусламж хэрэгтэй байна. Жишээлбэл, прокси сүлжээнүүд оймс прокси Microsoft RDP гэх мэтээр дамжуулан ажиллуулах боломжийг танд олгоно.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Оймс прокси тохиргооны параметрүүдийг proxychains тохиргооны файлд тохируулсан болно.

Зөвлөмж: Хэрэв та Windows дээр Linux-аас алсын ширээний компьютер ашигладаг бол? Үйлчлүүлэгчийг туршиж үзээрэй FreeRDP. Энэ нь илүү орчин үеийн хэрэгжилт юм rdesktop, илүү зөөлөн туршлагатай.

Оймс прокси ашиглан SSH ашиглах сонголт

Та кафе эсвэл зочид буудалд сууж байгаа тул найдваргүй WiFi ашиглахаас өөр аргагүй болно. Бид зөөврийн компьютерээсээ ssh прокси-г дотооддоо ажиллуулж, орон нутгийн Rasberry Pi дээр гэрийн сүлжээнд ssh туннелийг суулгадаг. Хөтөч эсвэл оймс проксид тохируулсан бусад программыг ашигласнаар бид гэрийн сүлжээн дэх сүлжээний дурын үйлчилгээнд хандах эсвэл гэрийн холболтоор интернетэд холбогдох боломжтой. Таны зөөврийн компьютер болон гэрийн серверийн хоорондох бүх зүйл (Wi-Fi болон таны гэрт интернетээр дамжуулан) SSH туннелд шифрлэгдсэн байдаг.

2. SSH туннель (порт дамжуулах)

Хамгийн энгийнээр хэлбэл, SSH туннель нь хонгилын нөгөө үзүүрт байгаа өөр порттой холбогдох локал систем дээрх портыг нээдэг.

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

Параметрийг харцгаая -L. Үүнийг сонсохын орон нутгийн тал гэж ойлгож болно. Дээрх жишээн дээр порт 9999 нь localhost тал дээр сонсож, 80 портоор дамжуулан алсын сервер рүү дамжуулдаг. 127.0.0.1 нь алсын сервер дээрх localhost-ыг хэлнэ гэдгийг анхаарна уу!

Алхам дээшээ гарцгаая. Дараах жишээ нь дотоод сүлжээн дэх бусад хостуудтай сонсох портуудыг харуулдаг.

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

Эдгээр жишээн дээр бид вэб серверийн порт руу холбогдож байгаа боловч энэ нь прокси сервер эсвэл бусад TCP үйлчилгээ байж болно.

3. Гуравдагч талын хост руу SSH туннель

Бид ижил параметрүүдийг ашиглан алсын серверээс гуравдагч систем дээр ажиллаж байгаа өөр үйлчилгээ рүү хонгил холбох боломжтой.

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

Энэ жишээнд бид туннелийг алсын серверээс 10.10.10.10 дээр ажиллаж байгаа вэб сервер рүү дахин чиглүүлж байна. Алсын серверээс 10.10.10.10 хүртэлх урсгал SSH хонгилд байхаа больсон. 10.10.10.10 дээрх вэб сервер нь алсын серверийг вэб хүсэлтийн эх сурвалж гэж үзэх болно.

4. Урвуу SSH хонгил

Энд бид алсын сервер дээрх сонсох портыг тохируулах бөгөөд энэ нь манай localhost (эсвэл өөр систем) дээрх дотоод порт руу буцаж холбогдох болно.

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

Энэхүү SSH сесс нь алсын сервер дээрх 1999 портоос манай локал клиент дээрх 902 порт руу холболт үүсгэдэг.

5. SSH урвуу прокси

Энэ тохиолдолд бид ssh холболт дээрээ оймс прокси суулгаж байгаа боловч прокси серверийн алсын төгсгөлд сонсож байна. Энэхүү алсын прокситэй холбогдох холболтууд одоо хонгилоос манай локал хостоос ирсэн урсгал болж харагдана.

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

Алсын SSH хонгилын алдааг олж засварлах

Хэрэв танд алсын SSH сонголтууд ажиллахад асуудал байгаа бол холбогдоно уу netstat, сонсох порт өөр ямар интерфэйсүүдтэй холбогдсон байна. Хэдийгээр бид жишээнүүдэд 0.0.0.0-ийг заасан боловч хэрэв утга нь байвал Gateway портууд в sshd_config тохируулагдсан Үгүй, тэгвэл сонсогч зөвхөн localhost (127.0.0.1)-тэй холбогдоно.

Аюулгүй байдлын анхааруулга

Туннель болон оймс проксиг нээснээр дотоод сүлжээний нөөцөд найдвартай бус сүлжээнд (Интернет гэх мэт) хандах боломжтой болохыг анхаарна уу. Энэ нь аюулгүй байдлын ноцтой эрсдэл байж болох тул сонсогч гэж юу болох, юунд хандах боломжтойг сайтар ойлгоорой.

6. SSH-ээр VPN суулгаж байна

Довтолгооны аргын мэргэжилтнүүдийн дунд түгээмэл хэрэглэгддэг нэр томъёо (пентестер гэх мэт) бол "сүлжээний тулгуур цэг" юм. Нэг систем дээр холболт тогтоосны дараа тэр систем нь сүлжээнд цааш нэвтрэх гарц болдог. Өргөнөөр шилжих боломжийг олгодог тулгуур цэг.

Ийм тулгуурын хувьд бид SSH прокси ашиглаж болно прокси сүлжээнүүд, гэхдээ зарим хязгаарлалтууд байдаг. Жишээлбэл, залгууруудтай шууд ажиллах боломжгүй тул бид сүлжээн дэх портуудыг сканнердах боломжгүй болно. Nmap SYN.

Энэхүү илүү дэвшилтэт VPN сонголтыг ашигласнаар холболтыг багасгасан түвшин 3. Дараа нь бид стандарт сүлжээний чиглүүлэлтийн тусламжтайгаар туннелээр траффикийг чиглүүлэх боломжтой.

Арга ашигладаг ssh, iptables, tun interfaces болон чиглүүлэлт.

Эхлээд та эдгээр параметрүүдийг тохируулах хэрэгтэй sshd_config. Бид алсын болон үйлчлүүлэгчийн системийн интерфэйсүүдэд өөрчлөлт хийж байгаа тул бид хоёр талдаа root эрх хэрэгтэй.

PermitRootLogin yes
PermitTunnel yes

Дараа нь бид tun төхөөрөмжүүдийг эхлүүлэхийг хүссэн параметрийг ашиглан ssh холболт үүсгэнэ.

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

Интерфэйсийг харуулахдаа бид одоо tun төхөөрөмжтэй байх ёстой (# ip a). Дараагийн алхам нь хонгилын интерфейсүүдэд IP хаягуудыг нэмэх болно.

SSH үйлчлүүлэгч тал:

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

SSH серверийн тал:

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

Одоо бид өөр хост руу шууд замтай байна (route -n и ping 10.10.10.10).

Та ямар ч дэд сүлжээг нөгөө талын хостоор дамжуулж болно.

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

Алсын талд та идэвхжүүлэх ёстой 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

Өсөлт! Сүлжээний 3-р түвшний SSH туннелээр VPN. Одоо энэ бол ялалт.

Ямар нэгэн асуудал гарвал хэрэглээрэй tcpdump и pingшалтгааныг тодорхойлох. Бид 3-р давхарга дээр тоглож байгаа тул бидний icmp пакетууд энэ хонгилоор дамжих болно.

7. SSH түлхүүрийг хуулах (ssh-copy-id)

Үүнийг хийх хэд хэдэн арга байдаг ч энэ команд нь файлуудыг гараар хуулахгүйгээр цаг хэмнэдэг. Энэ нь зүгээр л ~/.ssh/id_rsa.pub (эсвэл өгөгдмөл түлхүүр) -ийг таны системээс хуулдаг ~/.ssh/authorized_keys алсын сервер дээр.

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

8. Алсын тушаалын гүйцэтгэл (интерактив бус)

баг ssh Нийтлэг, хэрэглэгчдэд ээлтэй интерфэйсийн хувьд бусад тушаалуудтай холбогдож болно. Алсын хост дээр ажиллуулах командаа хашилтын хамгийн сүүлийн параметр болгон нэмнэ үү.

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

Энэ жишээнд grep бүртгэлийг ssh сувгаар татаж авсны дараа локал систем дээр гүйцэтгэгдэнэ. Хэрэв файл том бол түүнийг ажиллуулахад илүү тохиромжтой grep хоёр тушаалыг давхар хашилтанд оруулах замаар алсын талд.

Өөр нэг жишээ нь ижил функцийг гүйцэтгэдэг ssh-copy-id 7-р жишээнээс.

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

9. Wireshark дээр алсаас пакет авах, үзэх

Би манай нэгийг авсан tcpdump жишээнүүд. Үүнийг ашиглан пакетуудыг алсаас авч, үр дүнг локал Wireshark GUI дээр шууд харуулаарай.

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

10. Дотоод хавтасыг SSH-ээр алсын сервер рүү хуулах

Фолдерыг ашиглан шахдаг сайхан заль мэх bzip2 (энэ нь командын -j сонголт юм tar), дараа нь дамжуулалтыг сэргээнэ bzip2 нөгөө талд, алсын сервер дээр давхардсан хавтас үүсгэх.

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

11. SSH X11 дамжуулалттай алсын GUI програмууд

Хэрэв X нь клиент болон алсын сервер дээр суулгасан бол та өөрийн дотоод ширээний компьютер дээрх цонхоор GUI командыг алсаас гүйцэтгэх боломжтой. Энэ функц нь удаан хугацааны туршид байсаар ирсэн боловч маш хэрэгтэй хэвээр байна. Миний энэ жишээн дээрх шиг алсын вэб хөтөч эсвэл VMWawre Workstation консолыг ажиллуулаарай.

localhost:~$ ssh -X remoteserver vmware

Шаардлагатай мөр X11Forwarding yes файлд sshd_config.

12. Rsync болон SSH ашиглан зайнаас файл хуулах

rsync хамаагүй илүү тохиромжтой scp, хэрэв танд лавлах, олон тооны файлууд эсвэл маш том файлуудыг үе үе нөөцлөх шаардлагатай бол. Дамжуулалтын алдааг сэргээх, зөвхөн өөрчилсөн файлуудыг хуулах функц байдаг бөгөөд энэ нь ачаалал, цагийг хэмнэдэг.

Энэ жишээ нь шахалтыг ашигладаг gzip (-z) болон архивлах горим (-a) нь рекурсив хуулбарлах боломжтой.

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

13. Tor сүлжээгээр дамжуулан SSH

Нэргүй Tor сүлжээ нь командыг ашиглан SSH урсгалыг туннел хийх боломжтой torsocks. Дараах тушаал нь ssh проксиг Tor-оор дамжуулна.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Их бие прокси хувьд localhost дээр 9050 портыг ашиглах болно. Ердийнх шиг, Tor ашиглахдаа та ямар траффик туннел хийж байгаа болон бусад үйлдлийн аюулгүй байдлын (opsec) асуудлуудыг нухацтай шалгах хэрэгтэй. Таны DNS асуулга хаашаа явдаг вэ?

14. SSH-аас EC2-ийн инстанц

EC2 инстанттай холбогдохын тулд танд хувийн түлхүүр хэрэгтэй. Үүнийг (.pem өргөтгөл) Amazon EC2 хяналтын самбараас татаж аваад зөвшөөрлийг өөрчилнө үү (chmod 400 my-ec2-ssh-key.pem). Түлхүүрийг аюулгүй газар хадгалах эсвэл өөрийн хавтсанд байрлуул ~/.ssh/.

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

Үзүүлэлт -i зүгээр л ssh үйлчлүүлэгчид энэ түлхүүрийг ашиглахыг хэлдэг. Файл ~/.ssh/config ec2 хосттой холбогдох үед түлхүүрийн ашиглалтыг автоматаар тохируулахад тохиромжтой.

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

15. VIM ашиглан ssh/scp ашиглан текст файлуудыг засварлах

Бүх хайрлагчиддаа зориулав vim Энэхүү зөвлөгөө нь цаг хугацаа хэмнэх болно. Ашиглах замаар vim файлуудыг scp-ээр нэг тушаалаар засдаг. Энэ арга нь файлыг дотооддоо үүсгэдэг /tmpдараа нь бид үүнийг хадгалсны дараа буцааж хуулна vim.

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

Анхаарна уу: формат нь ердийнхөөс арай өөр байна scp. Хөтлөгчийн дараа бид давхар байна //. Энэ бол үнэмлэхүй замын лавлагаа юм. Нэг налуу зураас нь таны гэрийн хавтастай холбоотой замыг заана users.

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

Хэрэв та энэ алдааг олж харвал тушаалын форматыг давхар шалгана уу. Энэ нь ихэвчлэн синтаксийн алдаа гэсэн үг.

16. Алсын SSH-г SSHFS-тэй дотоод хавтас болгон холбох

Тусламжийн тусламжтайгаар sshfs - файлын системийн үйлчлүүлэгч ssh - бид шифрлэгдсэн сесс дотор бүх файлын харилцан үйлчлэл бүхий локал лавлахыг алслагдсан байршилд холбож болно ssh.

localhost:~$ apt install sshfs

Багцыг Ubuntu болон Debian дээр суулгана уу sshfs, дараа нь зүгээр л алсын байршлыг манай системд холбоно уу.

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

17. ControlPath ашиглан SSH Multiplexing

Анхдагчаар, ашиглаж байгаа алсын серверт холболт байгаа бол ssh ашиглан хоёр дахь холболт ssh буюу scp нэмэлт баталгаажуулалт бүхий шинэ сесс үүсгэнэ. Сонголт ControlPath одоо байгаа сессийг дараагийн бүх холболтод ашиглах боломжийг олгодог. Энэ нь үйл явцыг ихээхэн хурдасгах болно: үр нөлөө нь локал сүлжээнд ч мэдэгдэхүйц бөгөөд алсын нөөцтэй холбогдох үед бүр илүү их байдаг.

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

ControlPath нь идэвхтэй сесс байгаа эсэхийг шалгахын тулд шинэ холболтуудыг шалгах сокетыг зааж өгдөг ssh. Сүүлийн сонголт нь таныг консолоос гарсны дараа ч гэсэн одоо байгаа сесс 10 минутын турш нээлттэй хэвээр байх тул энэ хугацаанд та одоо байгаа залгуур дээр дахин холбогдох боломжтой гэсэн үг юм. Дэлгэрэнгүй мэдээллийг тусламжаас үзнэ үү. ssh_config man.

18. VLC болон SFTP ашиглан SSH-ээр видеог дамжуулах

Урт хугацааны хэрэглэгчид ч гэсэн ssh и vlc (Video Lan Client) нь сүлжээгээр видео үзэх шаардлагатай үед энэ тохиромжтой сонголтыг үргэлж мэддэггүй. Тохиргоонд Файл | Сүлжээний урсгалыг нээх хөтөлбөр vlc гэж байршлыг оруулж болно sftp://. Хэрэв нууц үг шаардлагатай бол сануулга гарч ирнэ.

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

19. Хоёр хүчин зүйлийн баталгаажуулалт

Таны банкны данс эсвэл Google данстай ижил хоёр хүчин зүйлийн баталгаажуулалт SSH үйлчилгээнд хамаарна.

Мэдээжийн хэрэг, ssh Эхэндээ хоёр хүчин зүйлийн баталгаажуулалтын функцтэй бөгөөд энэ нь нууц үг болон SSH түлхүүр гэсэн үг юм. Техник хангамжийн токен эсвэл Google Authenticator програмын давуу тал нь ихэвчлэн өөр физик төхөөрөмж байдаг.

Манай 8 минутын гарын авлагыг үзнэ үү Google Authenticator болон SSH ашиглан.

20. ssh болон -J-тэй хосууд үсрэх

Сүлжээний сегментчилэл нь эцсийн хүрэх сүлжээнд хүрэхийн тулд олон ssh хостоор дамжих шаардлагатай гэсэн үг бол -J товчлол нь таны цагийг хэмнэх болно.

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

Энд ойлгох ёстой гол зүйл бол энэ нь тушаалтай ижил зүйл биш юм ssh host1дараа нь user@host1:~$ ssh host2 гэх мэт. -J сонголт нь localhost-ыг гинжин хэлхээний дараагийн хосттой сесс байгуулахад хүчээр дамжуулахын тулд ухаалгаар ашигладаг. Тэгэхээр дээрх жишээн дээр манай localhost нь host4-д баталгаажсан байна. Өөрөөр хэлбэл, манай localhost түлхүүрүүдийг ашигладаг бөгөөд localhost-ээс host4 хүртэлх сесс бүрэн шифрлэгдсэн байдаг.

Ийм боломжийн хувьд ssh_config тохиргооны сонголтыг зааж өгнө үү ProxyJump. Хэрэв та хэд хэдэн хостоор тогтмол дамжих шаардлагатай бол тохиргоогоор дамжуулан автоматжуулалт нь маш их цаг хэмнэх болно.

21. iptables ашиглан SSH brute force оролдлогыг блоклох

SSH үйлчилгээг удирдаж, бүртгэлийг үзсэн хэн бүхэн өдөр бүр цаг тутамд тохиолддог хэрцгий хүчний оролдлогуудын тоог мэддэг. Лог дахь дуу чимээг багасгах хурдан арга бол SSH-ийг стандарт бус порт руу шилжүүлэх явдал юм. Файлд өөрчлөлт оруулах sshd_config тохиргооны параметрээр дамжуулан Порт##.

Тусламжийн тусламжтайгаар iptables Мөн та тодорхой босго хүрэх үед порт руу холбогдох оролдлогыг хялбархан хааж болно. Үүнийг хийх хялбар арга бол ашиглах явдал юм OSSEC, учир нь энэ нь зөвхөн SSH-г блоклоод зогсохгүй бусад хостын нэрэнд суурилсан халдлагыг илрүүлэх (HIDS) арга хэмжээг гүйцэтгэдэг.

22. Порт дамжуулалтыг өөрчлөхийн тулд SSH Escape

Мөн бидний сүүлчийн жишээ ssh Одоо байгаа сесс дотор порт дамжуулахыг өөрчлөхөд зориулагдсан ssh. Энэ хувилбарыг төсөөлөөд үз дээ. Та сүлжээнд гүнзгий орсон; Магадгүй хагас арав гаруй хостуудыг ажиллуулж, хуучин Windows 2003 системийн Microsoft SMB руу дамжуулдаг ажлын станц дээр локал порт хэрэгтэй байж магадгүй (хүн ms08-67 санаж байна уу?).

Дарж байна enter, консол руу орж үзнэ үү ~C. Энэ нь одоо байгаа холболтод өөрчлөлт оруулах боломжийг олгодог сессийн удирдлагын дараалал юм.

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.

Эндээс бид дотоод сүлжээнээс олсон Windows 1445 хост руу локал порт 2003-ыг дамжуулсан болохыг харж болно. Одоо зүгээр л гүй msfconsole, мөн та үргэлжлүүлж болно (та энэ хостыг ашиглахаар төлөвлөж байгаа гэж үзвэл).

Дуусгавар болгох

Эдгээр жишээ, зөвлөмж, тушаалууд ssh эхлэх цэгийг өгөх ёстой; Тушаал болон чадвар тус бүрийн талаарх дэлгэрэнгүй мэдээллийг man хуудаснаас авах боломжтой (man ssh, man ssh_config, man sshd_config).

Дэлхийн хаана ч байсан системд нэвтэрч, командуудыг гүйцэтгэх чадвар нь миний сэтгэлийг үргэлж татсаар ирсэн. гэх мэт хэрэгслээр ур чадвараа хөгжүүлснээр ssh Та тоглох ямар ч тоглоомд илүү үр дүнтэй байх болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх