ఆచరణాత్మక చిట్కాలు, ఉదాహరణలు మరియు 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. వైర్‌షార్క్‌లో రిమోట్ ప్యాకెట్ క్యాప్చర్ మరియు వీక్షణ
  10. SSH ద్వారా స్థానిక ఫోల్డర్‌ను రిమోట్ సర్వర్‌కి కాపీ చేస్తోంది
  11. SSH X11 ఫార్వార్డింగ్‌తో రిమోట్ GUI అప్లికేషన్‌లు
  12. rsync మరియు SSH ఉపయోగించి రిమోట్ ఫైల్ కాపీ చేయడం
  13. టోర్ నెట్‌వర్క్ ద్వారా SSH
  14. SSH నుండి EC2 ఉదాహరణ
  15. ssh/scp ద్వారా VIMని ఉపయోగించి టెక్స్ట్ ఫైల్‌లను సవరించడం
  16. SSHFSతో రిమోట్ SSHని స్థానిక ఫోల్డర్‌గా మౌంట్ చేయండి
  17. కంట్రోల్‌పాత్‌తో మల్టీప్లెక్సింగ్ SSH
  18. VLC మరియు SFTPని ఉపయోగించి SSH ద్వారా వీడియోను ప్రసారం చేయండి
  19. రెండు-కారకాల ప్రమాణీకరణ
  20. SSH మరియు -Jతో జంపింగ్ హోస్ట్‌లు
  21. iptables ఉపయోగించి SSH బ్రూట్ ఫోర్స్ ప్రయత్నాలను నిరోధించడం
  22. పోర్ట్ ఫార్వార్డింగ్‌ని మార్చడానికి SSH ఎస్కేప్

మొదట ప్రాథమిక అంశాలు

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 సేవ లోకల్ హోస్ట్‌లో మాత్రమే నడుస్తుందని సూచిస్తుంది. మేము ఈథర్‌నెట్ లేదా వైఫైతో సహా అన్ని ఇంటర్‌ఫేస్‌లలో వినడానికి కొద్దిగా భిన్నమైన ఆదేశాన్ని ఉపయోగించవచ్చు, ఇది మా నెట్‌వర్క్‌లోని ఇతర అప్లికేషన్‌లను (బ్రౌజర్‌లు మొదలైనవి) ssh సాక్స్ ప్రాక్సీ ద్వారా ప్రాక్సీ సేవకు కనెక్ట్ చేయడానికి అనుమతిస్తుంది.

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

సాక్స్ ప్రాక్సీ కాన్ఫిగరేషన్ పారామితులు ప్రాక్సీచైన్స్ కాన్ఫిగరేషన్ ఫైల్‌లో సెట్ చేయబడ్డాయి.

సూచన: మీరు Windowsలో Linux నుండి రిమోట్ డెస్క్‌టాప్ ఉపయోగిస్తుంటే? క్లయింట్‌ని ప్రయత్నించండి FreeRDP. ఇది మరింత ఆధునిక అమలు rdesktop, చాలా సున్నితమైన అనుభవంతో.

సాక్స్ ప్రాక్సీ ద్వారా SSHని ఉపయోగించడానికి ఎంపిక

మీరు కేఫ్ లేదా హోటల్‌లో కూర్చున్నారు - మరియు నమ్మదగని WiFiని ఉపయోగించాల్సి వస్తుంది. మేము ల్యాప్‌టాప్ నుండి స్థానికంగా ssh ప్రాక్సీని ప్రారంభించాము మరియు స్థానిక రాస్‌బెర్రీ పైలో హోమ్ నెట్‌వర్క్‌లోకి 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 కనెక్షన్‌లో సాక్స్ ప్రాక్సీని సెటప్ చేస్తున్నాము, అయితే సర్వర్ రిమోట్ ఎండ్‌లో ప్రాక్సీ వింటోంది. ఈ రిమోట్ ప్రాక్సీకి కనెక్షన్‌లు ఇప్పుడు సొరంగం నుండి మా లోకల్ హోస్ట్ నుండి ట్రాఫిక్‌గా కనిపిస్తాయి.

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

రిమోట్ SSH టన్నెల్స్‌తో సమస్యలను పరిష్కరించడం

రిమోట్ SSH ఎంపికలు పని చేయడంలో మీకు సమస్యలు ఉంటే, దీన్ని తనిఖీ చేయండి netstat, లిజనింగ్ పోర్ట్ ఏ ఇతర ఇంటర్‌ఫేస్‌లకు కనెక్ట్ చేయబడింది. మేము ఉదాహరణలలో 0.0.0.0ని సూచించినప్పటికీ, విలువ అయితే గేట్‌వే పోర్టులు в 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

ఇంటర్‌ఫేస్‌లను చూపుతున్నప్పుడు మనకు ఇప్పుడు ట్యూన్ పరికరం ఉండాలి (# 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. వైర్‌షార్క్‌లో రిమోట్ ప్యాకెట్ క్యాప్చర్ మరియు వీక్షణ

మాది ఒకటి తీసుకున్నాను tcpdump ఉదాహరణలు. రిమోట్‌గా ప్యాకెట్‌లను క్యాప్చర్ చేయడానికి మరియు ఫలితాలను నేరుగా స్థానిక వైర్‌షార్క్ 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 వర్క్‌స్టేషన్ కన్సోల్‌ను కూడా ప్రారంభించండి.

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

అనామక టోర్ నెట్‌వర్క్ ఆదేశాన్ని ఉపయోగించి SSH ట్రాఫిక్‌ను సొరంగం చేయగలదు torsocks. కింది ఆదేశం Tor ద్వారా ssh ప్రాక్సీని పంపుతుంది.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

టోర్సాక్స్ ప్రాక్సీ కోసం లోకల్ హోస్ట్‌లో పోర్ట్ 9050ని ఉపయోగిస్తుంది. ఎప్పటిలాగే, టోర్‌ని ఉపయోగిస్తున్నప్పుడు మీరు ఏ ట్రాఫిక్ టన్నెల్ చేయబడుతుందో మరియు ఇతర కార్యాచరణ భద్రతా (opsec) సమస్యలను తీవ్రంగా తనిఖీ చేయాలి. మీ DNS ప్రశ్నలు ఎక్కడికి వెళ్తాయి?

14. SSH నుండి EC2 ఉదాహరణ

EC2 ఉదాహరణకి కనెక్ట్ చేయడానికి, మీకు ప్రైవేట్ కీ అవసరం. Amazon EC2 నియంత్రణ ప్యానెల్ నుండి దీన్ని (.pem పొడిగింపు) డౌన్‌లోడ్ చేయండి మరియు అనుమతులను మార్చండి (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. SSHFSతో స్థానిక ఫోల్డర్‌గా రిమోట్ SSHని మౌంట్ చేయడం

సహాయంతో sshfs - ఫైల్ సిస్టమ్ క్లయింట్ ssh - మేము గుప్తీకరించిన సెషన్‌లో అన్ని ఫైల్ పరస్పర చర్యలతో రిమోట్ స్థానానికి స్థానిక డైరెక్టరీని కనెక్ట్ చేయవచ్చు ssh.

localhost:~$ apt install sshfs

ఉబుంటు మరియు డెబియన్‌లో ప్యాకేజీని ఇన్‌స్టాల్ చేయండి sshfs, ఆపై రిమోట్ స్థానాన్ని మా సిస్టమ్‌కు మౌంట్ చేయండి.

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

17. కంట్రోల్‌పాత్‌తో 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 (వీడియో లాన్ క్లయింట్) మీరు నిజంగా నెట్‌వర్క్‌లో వీడియోను చూడవలసి వచ్చినప్పుడు ఈ అనుకూలమైన ఎంపిక గురించి ఎల్లప్పుడూ తెలియదు. సెట్టింగ్‌లలో ఫైల్ | నెట్‌వర్క్ స్ట్రీమ్‌ని తెరవండి కార్యక్రమాలు 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కి ప్రమాణీకరించబడింది. అంటే, మా లోకల్ హోస్ట్ కీలు ఉపయోగించబడతాయి మరియు లోకల్ హోస్ట్ నుండి హోస్ట్4 వరకు సెషన్ పూర్తిగా ఎన్‌క్రిప్ట్ చేయబడింది.

అటువంటి అవకాశం కోసం ssh_config కాన్ఫిగరేషన్ ఎంపికను పేర్కొనండి ప్రాక్సీజంప్. మీరు క్రమం తప్పకుండా అనేక హోస్ట్‌ల ద్వారా వెళ్ళవలసి వస్తే, కాన్ఫిగరేషన్ ద్వారా ఆటోమేషన్ చాలా సమయాన్ని ఆదా చేస్తుంది.

21. iptables ఉపయోగించి SSH బ్రూట్ ఫోర్స్ ప్రయత్నాలను నిరోధించండి

SSH సర్వీస్‌ని మేనేజ్ చేసిన మరియు లాగ్‌లను చూసే ఎవరికైనా, ప్రతిరోజూ ప్రతి గంటకు జరిగే బ్రూట్ ఫోర్స్ ప్రయత్నాల సంఖ్య గురించి తెలుసు. లాగ్‌లలో శబ్దాన్ని తగ్గించడానికి త్వరిత మార్గం SSHని ప్రామాణికం కాని పోర్ట్‌కి తరలించడం. ఫైల్‌లో మార్పులు చేయండి sshd_config కాన్ఫిగరేషన్ పరామితి ద్వారా పోర్ట్##.

సహాయంతో iptables మీరు నిర్దిష్ట థ్రెషోల్డ్‌ను చేరుకున్న తర్వాత పోర్ట్‌కి కనెక్ట్ చేసే ప్రయత్నాలను కూడా సులభంగా నిరోధించవచ్చు. దీన్ని చేయడానికి సులభమైన మార్గం ఉపయోగించడం OSSEC, ఎందుకంటే ఇది SSHని నిరోధించడమే కాకుండా, ఇతర హోస్ట్‌నేమ్-ఆధారిత చొరబాటు గుర్తింపు (HIDS) చర్యలను చేస్తుంది.

22. పోర్ట్ ఫార్వార్డింగ్‌ని మార్చడానికి SSH ఎస్కేప్

మరియు మా చివరి ఉదాహరణ 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 ssh, man ssh_config, man sshd_config).

ప్రపంచంలో ఎక్కడైనా సిస్టమ్‌లను యాక్సెస్ చేయగల మరియు ఆదేశాలను అమలు చేయగల సామర్థ్యంతో నేను ఎల్లప్పుడూ ఆకర్షితుడయ్యాను. వంటి సాధనాలతో మీ నైపుణ్యాలను అభివృద్ధి చేయడం ద్వారా ssh మీరు ఆడే ఏ గేమ్‌లోనైనా మీరు మరింత ప్రభావవంతంగా ఉంటారు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి