Практикалық кеңестер, мысалдар және 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 прокси мүмкіндігі жақсы себеппен №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, әлдеқайда тегіс тәжірибемен.

Socks прокси арқылы 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. Кері SSH туннелі

Мұнда қашықтағы сервердегі тыңдау портын конфигурациялаймыз, ол жергілікті хосттағы (немесе басқа жүйедегі) жергілікті портқа қайта қосылады.

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 қосылымында socks проксиін орнатып жатырмыз, бірақ прокси сервердің қашықтағы соңында тыңдауда. Осы қашықтағы проксиге қосылымдар енді туннельден жергілікті хосттан келген трафик ретінде пайда болады.

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 деп орнатыңыз жоқ, содан кейін тыңдаушы тек жергілікті хостқа (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

Енді интерфейстерді көрсету кезінде бізде 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. Келесі пәрмен Tor арқылы ssh проксиін өткізеді.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Торсақтар жергілікті хостта прокси үшін 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. ssh/scp арқылы VIM көмегімен мәтіндік файлдарды өңдеу

Барлық ғашықтар үшін 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 мультиплекстеу

Әдепкі бойынша, пайдаланып қашықтағы серверге бар қосылым болса 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 опциясы жергілікті хостты тізбектегі келесі хостпен сеанс орнатуға мәжбүрлеу үшін қайта жіберуді ақылмен пайдаланады. Сонымен, жоғарыда келтірілген мысалда біздің жергілікті хост 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 ssh, man ssh_config, man sshd_config).

Жүйеге қол жеткізу және әлемнің кез келген жерінде командаларды орындау мүмкіндігі мені әрқашан қызықтырды. сияқты құралдармен дағдыларыңызды дамыту арқылы ssh сіз кез келген ойында тиімдірек бола аласыз.

Ақпарат көзі: www.habr.com

пікір қалдыру