Практикалык кеңештер, мисалдар жана SSH туннелдери

Практикалык кеңештер, мисалдар жана SSH туннелдери
Практикалык мисалдар SSH, ал алыскы система администратору катары жөндөмүңүздү жаңы деңгээлге көтөрөт. Буйруктар жана кеңештер колдонууга гана эмес, жардам берет SSH, бирок ошондой эле тармакта сабаттуу багыттоо.

Бир нече амалдарды билүү ssh каалаган система администратору, тармак инженери же коопсуздук боюнча адис үчүн пайдалуу.

Практикалык SSH мисалдары

  1. SSH байпак прокси
  2. SSH туннели (портту багыттоо)
  3. Үчүнчү хостко SSH туннели
  4. Reverse 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 кызмат жергиликтүү хостто гана иштей турганын көрсөтөт. Биз бардык интерфейстерде, анын ичинде ethernet же wifi, угуу үчүн бир аз башкача буйрукту колдоно алабыз, бул биздин тармагыбыздагы башка тиркемелерге (браузерлерге ж.б.) ssh socks прокси аркылуу прокси кызматына туташуу мүмкүнчүлүгүн берет.

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

Эми биз браузерди байпак проксиге туташуу үчүн конфигурациялай алабыз. Firefox-та, тандаңыз Орнотуулар | Негизги | Тармак орнотуулары. Туташуу үчүн IP даректи жана портту көрсөтүңүз.

Практикалык кеңештер, мисалдар жана SSH туннелдери

Браузериңиздин DNS сурамдары SOCKS прокси аркылуу өтүшү үчүн форманын ылдый жагындагы параметрге көңүл буруңуз. Эгер сиз жергиликтүү тармагыңыздагы веб-трафикти шифрлөө үчүн прокси серверди колдонуп жатсаңыз, DNS сурамдары SSH туташуусу аркылуу туннелдештирилиши үчүн бул параметрди тандагыңыз келет.

Chrome'до socks прокси иштетилүүдө

Chrome'ду белгилүү бир буйрук сабынын параметрлери менен ишке киргизүү байпак проксисин иштетет, ошондой эле серепчиден DNS сурамдарын туннелдейт. Ишен, бирок текшер. Колдонуу tcpdump DNS сурамдары көрүнбөй калганын текшерүү үчүн.

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

Прокси менен башка колдонмолорду колдонуу

Көптөгөн башка колдонмолор да байпак проксилерин колдонушу мүмкүн экенин эстен чыгарбаңыз. Веб браузер алардын эң популярдуусу. Кээ бир колдонмолордо прокси серверди иштетүү үчүн конфигурация параметрлери бар. Башкалар жардамчы программасы менен бир аз жардамга муктаж. Мисалы, прокси чейндер байпак прокси Microsoft RDP аркылуу иштетүүгө мүмкүндүк берет, ж.б.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Socks прокси конфигурациясынын параметрлери 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 порт локалдык хост тарабында угуп жатат жана 80 порт аркылуу алыскы серверге жөнөтүлөт. Сураныч, 127.0.0.1 алыскы сервердеги локалдык хостко тиешелүү экенин эске алыңыз!

тепкичке чыгалы. Төмөнкү мисал локалдык тармактагы башка хосттор менен угуу портторун байланыштырат.

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. Reverse 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 Reverse Proxy

Бул учурда, биз ssh байланышыбызда байпак проксисин орнотуп жатабыз, бирок прокси сервердин алыскы четинде угуп жатат. Бул алыскы проксиге туташуулар азыр туннелден биздин локалдык хосттон келген трафик катары көрүнөт.

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

Алыскы SSH туннелдериндеги көйгөйлөрдү чечүү

Эгер сизде алыскы SSH параметрлери менен көйгөйлөр бар болсо, текшериңиз netstat, угуу порту башка кандай интерфейстерге туташтырылган. Биз мисалдарда 0.0.0.0 көрсөткөнүбүз менен, бирок мааниси болсо GatewayPorts в sshd_config коюу жок, анда угуучу localhost менен гана байланат (127.0.0.1).

Коопсуздук эскертүүсү

Туннелдерди жана байпак проксилерин ачуу менен, ички тармак ресурстары ишенимсиз тармактарга (мисалы, Интернетке!) жеткиликтүү болушу мүмкүн экенин эске алыңыз. Бул олуттуу коопсуздук коркунучу болушу мүмкүн, андыктан угуучу эмне экенин жана алар эмнеге кире аларын түшүнгөнүңүздү текшериңиз.

6. SSH аркылуу VPN орнотуу

Чабуул ыкмалары боюнча адистердин арасында кеңири таралган термин (пентестер ж.б.) "тармактагы таяныч пункту" болуп саналат. Бир системада байланыш орнотулгандан кийин, ал система тармакка андан ары кирүү үчүн шлюз болуп калат. кеңдикте жылдырууга мүмкүндүк берүүчү таяныч пункту.

Мындай таяныч үчүн биз SSH прокси жана колдоно алабыз прокси чейндер, бирок кээ бир чектөөлөр бар. Мисалы, розеткалар менен түздөн-түз иштөө мүмкүн болбой калат, андыктан биз тармактын ичиндеги портторду сканерлей албайбыз. Nmap SYN.

Бул өнүккөн VPN опциясын колдонуу менен, байланыш төмөндөйт деңгээл 3. Андан кийин биз трафикти стандарттуу тармак багыттоосу аркылуу туннел аркылуу жөн эле багыттай алабыз.

Метод колдонот ssh, iptables, tun interfaces жана маршруттоо.

Биринчиден, сиз бул параметрлерди орнотуу керек sshd_config. Биз алыскы жана кардар системаларынын интерфейстерине өзгөртүүлөрдү киргизип жаткандыктан, биз эки тараптан тең тамыр укуктары керек.

PermitRootLogin yes
PermitTunnel yes

Андан кийин биз tun түзмөктөрүн инициализациялоону талап кылган параметрди колдонуу менен ssh байланышын орнотобуз.

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

Интерфейстерди көрсөтүүдө бизде тун түзмөгү болушу керек (# 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. Төмөнкү буйрук Tor аркылуу ssh проксисин өткөрөт.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Torsocks прокси үчүн localhost 9050 портун колдонот. Адаттагыдай эле, Торду колдонууда сиз трафиктин туннели болуп жатканын жана башка оперативдүү коопсуздук (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) тармак аркылуу видеону чындап көрүү керек болгондо, бул ыңгайлуу опцияны дайыма эле биле бербейт. Жөндөөлөрдөн File | Тармак агымын ачыңыз эмес програмдардын тили 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 хост4 үчүн аутентификацияланган. Башкача айтканда, биздин localhost ачкычтары колдонулат, ал эми localhostтан host4ке чейинки сессия толугу менен шифрленген.

Мындай мүмкүнчүлүк үчүн ssh_config конфигурация опциясын белгилеңиз ProxyJump. Эгер сиз дайыма бир нече хост аркылуу өтүшүңүз керек болсо, анда конфигурация аркылуу автоматташтыруу көп убакытты үнөмдөйт.

21. iptables колдонуп SSH катаал күч аракеттерин бөгөттөө

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.

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

айактоо

Бул мисалдар, кеңештер жана буйруктар ssh башталышын берүү керек; Ар бир буйруктар жана мүмкүнчүлүктөр жөнүндө көбүрөөк маалымат man беттеринде жеткиликтүү (man ssh, man ssh_config, man sshd_config).

Дүйнөнүн каалаган жеринде системаларга кирүү жана буйруктарды аткаруу жөндөмү мени ар дайым кызыктырчу. сыяктуу куралдар менен жөндөмүңүздү өнүктүрүү менен ssh сиз ойногон ар кандай оюнда эффективдүү болосуз.

Source: www.habr.com

Комментарий кошуу