Գործնական խորհուրդներ, օրինակներ և SSH թունելներ

Գործնական խորհուրդներ, օրինակներ և SSH թունելներ
Գործնական օրինակներ SSH, որը հեռակա համակարգի ադմինիստրատորի ձեր հմտությունները նոր մակարդակի կբարձրացնի: Հրամաններն ու խորհուրդները կօգնեն ոչ միայն օգտագործել SSH, այլեւ ավելի գրագետ նավարկեք ցանցում։

Իմանալով մի քանի հնարքներ ssh օգտակար է ցանկացած համակարգի ադմինիստրատորի, ցանցային ինժեների կամ անվտանգության մասնագետի համար:

Գործնական SSH օրինակներ

  1. SSH գուլպաների վստահված անձ
  2. SSH թունել (պորտի վերահասցեավորում)
  3. SSH թունել դեպի երրորդ հյուրընկալող
  4. Հակադարձ SSH թունել
  5. SSH հակադարձ վստահված անձ
  6. VPN-ի տեղադրում SSH-ով
  7. SSH բանալի պատճենում (ssh-copy-id)
  8. Հրամանի հեռակա կատարում (ոչ ինտերակտիվ)
  9. Փաթեթների հեռակառավարում և դիտում Wireshark-ում
  10. Տեղական թղթապանակի պատճենումը հեռավոր սերվերի վրա SSH-ի միջոցով
  11. Հեռակա GUI հավելվածներ SSH X11 վերահասցեավորումով
  12. Հեռակա ֆայլի պատճենում rsync-ի և SSH-ի միջոցով
  13. SSH Tor ցանցի միջոցով
  14. SSH դեպի EC2 օրինակ
  15. Տեքստային ֆայլերի խմբագրում VIM-ի միջոցով ssh/scp-ի միջոցով
  16. Տեղադրեք հեռավոր SSH-ը որպես տեղական թղթապանակ SSHFS-ով
  17. SSH-ի բազմապատկում ControlPath-ով
  18. Հեռարձակեք տեսանյութը SSH-ի միջոցով՝ օգտագործելով VLC և SFTP
  19. Երկու գործոնով վավերացում
  20. Թռիչք տանտերերը SSH-ով և -J-ով
  21. SSH կոպիտ ուժի փորձերի արգելափակում՝ օգտագործելով iptables
  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 հասցե կամ տեղական hosts ֆայլի ցանկացած հոսթ: Հոսթին միանալու համար, որն աջակցում է և՛ 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 կազմաձևման ֆայլում կա երկու հոսթ մուտք: Առաջինը նշանակում է բոլոր հոսթերները, բոլորն օգտագործում են Port 2222 կոնֆիգուրացիայի պարամետրը: Երկրորդն ասում է, որ հոսթի համար հեռակառավարիչ պետք է օգտագործվի այլ օգտվողի անուն, նավահանգիստ, FQDN և IdentityFile:

Կազմաձևման ֆայլը կարող է շատ ժամանակ խնայել մուտքագրման ժամանակ՝ թույլ տալով, որ առաջադեմ կազմաձևումն ինքնաբերաբար կիրառվի հատուկ հոսթներին միանալու ժամանակ:

Ֆայլերի պատճենում SSH-ով SCP-ի միջոցով

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

Այստեղ մենք գործարկում ենք socks proxy-ը TCP 8888 պորտի վրա, երկրորդ հրամանը ստուգում է, որ նավահանգիստն ակտիվ է լսելու ռեժիմում: 127.0.0.1-ը ցույց է տալիս, որ ծառայությունն աշխատում է միայն localhost-ում: Մենք կարող ենք օգտագործել մի փոքր այլ հրաման՝ լսելու բոլոր ինտերֆեյսները, ներառյալ ethernet-ը կամ wifi-ը, դա թույլ կտա մեր ցանցի այլ հավելվածներին (բրաուզերներ և այլն) միանալ վստահված անձի ծառայությանը ssh socks proxy-ի միջոցով:

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"

Այլ ծրագրերի օգտագործում վստահված անձի հետ

Հիշեք, որ շատ այլ հավելվածներ կարող են նաև օգտագործել գուլպաների վստահված սարքեր: Վեբ զննարկիչը պարզապես նրանցից ամենահայտնին է: Որոշ հավելվածներ ունեն կոնֆիգուրացիայի ընտրանքներ՝ պրոքսի սերվերը միացնելու համար: Մյուսները մի փոքր օգնության կարիք ունեն օգնական ծրագրի հետ: Օրինակ, proxychains թույլ է տալիս վազել Microsoft RDP-ի գուլպաների վստահված անձի միջոցով և այլն:

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Socks proxy-ի կազմաձևման պարամետրերը սահմանված են proxychains-ի կազմաձևման ֆայլում:

Հուշում. եթե դուք Windows-ում օգտագործում եք Linux-ից հեռակա աշխատասեղան: Փորձեք հաճախորդին Տգոն. Սա ավելի ժամանակակից իրականացում է, քան rdesktop, շատ ավելի հարթ փորձով:

SSH-ի օգտագործման տարբերակ գուլպաների վստահված անձի միջոցով

Դուք նստած եք սրճարանում կամ հյուրանոցում և ստիպված եք օգտվել բավականին անվստահելի WiFi-ից: Մենք գործարկում ենք ssh պրոքսի լոկալ նոութբուքից և տեղադրում ենք ssh թունել տնային ցանցում՝ տեղական Rasberry Pi-ի վրա: Օգտագործելով բրաուզեր կամ այլ հավելվածներ, որոնք կազմաձևված են գուլպաների վստահված անձի համար, մենք կարող ենք մուտք գործել ցանկացած ցանցային ծառայություններ մեր տնային ցանցում կամ մուտք գործել ինտերնետ մեր տնային կապի միջոցով: Ձեր նոութբուքի և տնային սերվերի միջև եղած ամեն ինչ (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:~$ 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 Reverse Proxy

Այս դեպքում մենք տեղադրում ենք socks proxy մեր ssh կապի վրա, բայց վստահված անձը լսում է սերվերի հեռավոր ծայրում: Այս հեռավոր վստահված անձի հետ կապերն այժմ հայտնվում են թունելից՝ որպես մեր լոկալ հոսթի տրաֆիկ:

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

Հեռավոր SSH թունելների հետ կապված խնդիրների լուծում

Եթե ​​խնդիրներ ունեք հեռավոր SSH ընտրանքների հետ, ստուգեք netstat, ինչ այլ ինտերֆեյսների հետ է միացված լսողական պորտը: Թեև օրինակներում նշել ենք 0.0.0.0, բայց եթե արժեքը Gateway Ports в sshd_config սահմանված է ոչ, ապա լսողը կապվելու է միայն localhost-ին (127.0.0.1):

Անվտանգության նախազգուշացում

Խնդրում ենք նկատի ունենալ, որ բացելով թունելներ և գուլպաներ պրոքսիներ, ցանցի ներքին ռեսուրսները կարող են հասանելի լինել անվստահելի ցանցերին (օրինակ՝ ինտերնետը): Սա կարող է անվտանգության լուրջ վտանգ լինել, այնպես որ համոզվեք, որ հասկանում եք, թե ինչ է ունկնդիրը և ինչն է նրան հասանելի:

6. VPN-ի տեղադրում SSH-ի միջոցով

Հարձակման մեթոդների մասնագետների շրջանում տարածված տերմինն է «հենակետ ցանցում»: Մեկ համակարգի վրա կապ հաստատվելուց հետո այդ համակարգը դառնում է ցանց հետագա մուտքի դարպաս: Հենակետ, որը թույլ է տալիս շարժվել լայնությամբ:

Նման հենակետի համար մենք կարող ենք օգտագործել SSH պրոքսի և proxychains, սակայն կան որոշ սահմանափակումներ։ Օրինակ, ուղղակիորեն հնարավոր չի լինի աշխատել վարդակների հետ, ուստի մենք չենք կարողանա սկանավորել նավահանգիստները ցանցի միջոցով: Nmap SYN.

Օգտագործելով այս ավելի առաջադեմ VPN տարբերակը, կապը կրճատվում է մակարդակ 3. Այնուհետև մենք կարող ենք պարզապես երթևեկել թունելի միջով՝ օգտագործելով ստանդարտ ցանցային երթուղավորում:

Մեթոդը օգտագործում է ssh, iptables, tun interfaces և երթուղավորում:

Նախ անհրաժեշտ է սահմանել այս պարամետրերը sshd_config. Քանի որ մենք փոփոխություններ ենք կատարում ինչպես հեռավոր, այնպես էլ հաճախորդի համակարգերի ինտերֆեյսներում, մենք անհրաժեշտ է արմատական ​​իրավունքներ երկու կողմից.

PermitRootLogin yes
PermitTunnel yes

Այնուհետև մենք կստեղծենք ssh կապ՝ օգտագործելով այն պարամետրը, որը պահանջում է tun սարքերի սկզբնավորումը:

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

Բում! VPN-ը SSH թունելի միջոցով ցանցային շերտ 3-ում. Հիմա դա հաղթանակ է:

Եթե ​​որևէ խնդիր առաջանա, օգտագործեք 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. Հեռակա GUI հավելվածներ SSH X11 վերահասցեավորումով

Եթե ​​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. SSH Tor ցանցի միջոցով

Անանուն Tor ցանցը կարող է թունել SSH երթևեկությունը՝ օգտագործելով հրամանը torsocks. Հետևյալ հրամանը ssh վստահված անձին կփոխանցի Tor-ի միջոցով:

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Իրաններ կօգտագործի 9050 նավահանգիստը localhost-ում վստահված անձի համար: Ինչպես միշտ, 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

Parameter -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. SSH բազմապատկում ControlPath-ով

Լռելյայն, եթե գոյություն ունի կապ հեռավոր սերվերի հետ, օգտագործելով 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. Հեռարձակեք տեսանյութը SSH-ի միջոցով՝ օգտագործելով VLC և SFTP

Նույնիսկ երկար ժամանակ օգտագործողներ ssh и vlc (Video Lan Client) միշտ չէ, որ տեղյակ են այս հարմար տարբերակի մասին, երբ դուք իսկապես կարիք ունեք տեսանյութ դիտելու ցանցով: Պարամետրերում Ֆայլ | Բացեք ցանցային հոսքը ծրագրեր vlc դուք կարող եք մուտքագրել գտնվելու վայրը որպես sftp://. Եթե ​​անհրաժեշտ է գաղտնաբառ, հուշում կհայտնվի:

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

19. Երկու գործոնով վավերացում

SSH ծառայության համար կիրառվում է նույն երկգործոն նույնականացումը, ինչ ձեր բանկային հաշիվը կամ Google հաշիվը:

Իհարկե, 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. Եթե ​​դուք պարբերաբար պետք է անցնեք մի քանի հոսթների միջով, ապա config-ի միջոցով ավտոմատացումը շատ ժամանակ կխնայի:

21. Արգելափակել SSH կոպիտ ուժի փորձերը՝ օգտագործելով iptables

Յուրաքանչյուր ոք, ով ղեկավարել է 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

Добавить комментарий