SSH లేదా సురక్షిత షెల్ ప్రోటోకాల్ రిమోట్గా మెషీన్లోకి లాగిన్ చేయడానికి మరియు రిమోట్ మెషీన్లో ఆదేశాలను అమలు చేయడానికి ఉపయోగించబడుతుంది. SSH ప్రోటోకాల్ ఉపయోగించి బదిలీ చేయబడిన డేటా ప్రత్యేక అల్గారిథమ్లతో గుప్తీకరించబడింది, ఇది టెల్నెట్ కంటే SSHని మరింత సురక్షితంగా చేస్తుంది. ప్రాథమికంగా, OpenSSH అనేది ఈ ప్రోటోకాల్ను అమలు చేసే సాధనం.
మేము ఏమి కవర్ చేస్తాము?
ఈ గైడ్లో, మేము OpenSSH సర్వర్ కాన్ఫిగరేషన్ ఫైల్ యొక్క విభిన్న అంశాలను అన్వేషిస్తాము. ఇప్పుడు ప్రారంభిద్దాం.
OpenSSH కాన్ఫిగరేషన్ ఫైల్స్
OpenSSH క్లయింట్ మరియు సర్వర్ రెండింటికీ కొన్ని కోర్ ఫైల్లు ఉన్నాయి. ఇది రెండు రకాల కాన్ఫిగరేషన్ ఫైల్లను కలిగి ఉంది:
1. క్లయింట్ వైపు సంబంధించిన ఫైల్లు: ఫైల్లలో ఒకటి ssh_config. ఇది సిస్టమ్-వైడ్ కాన్ఫిగరేషన్ ఫైల్. ఈ ఫైల్ ఇక్కడ ఉంది /etc/ssh/ssh_config.
ఇతర ఫైల్ config, ఇది $HOME/.ssh/config వద్ద ఉన్న వినియోగదారు-నిర్దిష్ట కాన్ఫిగరేషన్ ఫైల్.
హోస్ట్లోని SSH ప్రోగ్రామ్ ఈ ఫైల్ల నుండి లేదా కమాండ్ లైన్ ఇంటర్ఫేస్ ద్వారా కాన్ఫిగరేషన్ను తీసుకుంటుంది. గతంలో పేర్కొన్న ఫైల్ల విషయంలో, సిస్టమ్-వైడ్ కాన్ఫిగరేషన్ ఫైల్, ఇది ssh_config, వినియోగదారు-నిర్దిష్ట “కాన్ఫిగరేషన్” ఫైల్ కంటే ప్రాధాన్యత ఇవ్వబడుతుంది.
2. sshd_config: ఇది సర్వర్ వైపుకు సంబంధించినది. ఓపెన్ఎస్ఎస్హెచ్ సర్వర్ ఈ ఫైల్ను ప్రారంభించినప్పుడు చదువుతుంది.
అన్వేషించడం sshd కాన్ఫిగరేషన్ ఫైల్
sshd config ఫైల్ అనేక నిర్దేశకాలను కలిగి ఉంది, వీటిని కూడా అనుకూలీకరించవచ్చు. ఈ ఫైల్ యొక్క డిఫాల్ట్ లేఅవుట్ని చూద్దాం:
$ పిల్లి / మొదలైనవి / ssh / sshd_config
# ఇది sshd సర్వర్ సిస్టమ్-వైడ్ కాన్ఫిగరేషన్ ఫైల్. చూడండి
మరింత సమాచారం కోసం # sshd_config(5).
పోర్ట్ 222ListenAddress 0.0.0.0
వినండి చిరునామా ::
హోస్ట్కీ / మొదలైనవి / ssh / ssh_host_key
సర్వర్కీబిట్స్ 768
లాగిన్ గ్రేస్ టైమ్ 600
కీ పునరుత్పత్తి విరామం 3600
PermitRootLogin అవును
Rhostsని విస్మరించండి అవును
కఠినమైన మోడ్లు అవును
X11 ఫార్వార్డింగ్ నం
AllowTcpForwarding No
అనుమతించుTTY నం
X11DisplayOffset 10
PrintMotd అవును
ప్రాణాలతో ఉండనివ్వండి అవును
SyslogFacility AUTH
లాగ్లెవల్ సమాచారం
RhostsAuthentication నం
RhostsRSAA ధృవీకరణ నం
RSAA ప్రమాణీకరణ అవును
పాస్వర్డ్ ప్రమాణీకరణ అవును
AllowEmptyPasswords సంఖ్య
చెక్ మెయిల్ నెం
“#”తో ప్రారంభమయ్యే ఏదైనా పంక్తి వ్యాఖ్యగా తీసుకోబడుతుంది. ఇవ్వబడిన కొన్ని పారామితులను అన్వేషిద్దాం:
1. పోర్ట్ డైరెక్టివ్ పోర్ట్ నంబర్ను నిర్దేశిస్తుంది. ఇది పోర్ట్ నంబర్ sshd కనెక్షన్ల కోసం వింటుంది. ఈ పోర్ట్ యొక్క డిఫాల్ట్ విలువ 22, ఇది ప్రామాణికమైనది. అయితే, మా విషయంలో, మేము దానిని 222కి మార్చాము.
అలాగే, మేము ఒకటి కంటే ఎక్కువ పోర్ట్ డైరెక్టివ్లను పేర్కొనవచ్చు. ఈ విధంగా, మేము sshd కనెక్షన్లలో వినడానికి బహుళ పోర్ట్లను ఉపయోగించవచ్చు.
2. ListenAddress వినడానికి IP చిరునామాను కలిగి ఉంటుంది. సర్వర్కు కట్టుబడి ఉన్న అన్ని IP చిరునామాలను వినడం డిఫాల్ట్ చర్య. పోర్ట్ డైరెక్టివ్ తప్పనిసరిగా ListenAddress ఆదేశాన్ని విజయవంతం చేయాలని కూడా గమనించండి.
3. ప్రైవేట్ RSA హోస్ట్ కీ ఫైల్ యొక్క పూర్తి అర్హత కలిగిన మార్గం HostKey డైరెక్టివ్ ద్వారా పేర్కొనబడింది. మునుపటి సందర్భంలో, మార్గం /etc/ssh/ssh_host_key .
4. PermitRootLogin డైరెక్టివ్ sshd కోసం రూట్ లాగిన్ని అవును అని సెట్ చేసినప్పుడు అనుమతిస్తుంది. sshd యాక్సెస్ని పరిమితం చేయడానికి hosts.allow మరియు hosts.deny ఫైల్లు ఉపయోగించబడకపోతే ఇది noకి సెట్ చేయబడాలి.
5. X11ఫార్వార్డింగ్ డైరెక్టివ్ అవును అని సెట్ చేసినప్పుడు X విండో సిస్టమ్ ఫార్వార్డింగ్ను అనుమతిస్తుంది.
6. ఏ Syslog సౌకర్యం sshd ఉపయోగించాలి అనేది SyslogFacility డైరెక్టివ్ ఉపయోగించి పేర్కొనబడింది. డిఫాల్ట్ విలువను అలాగే ఉంచండి.
7. Syslog కోసం లాగింగ్ స్థాయి LogLevel డైరెక్టివ్ ఉపయోగించి పేర్కొనబడింది.
మార్చడం sshd పోర్ట్
డిఫాల్ట్గా, ది sshd లేదా OpenSSH సర్వర్ డెమోన్ TCP ప్రోటోకాల్ యొక్క పోర్ట్ 22ని ఉపయోగిస్తుంది. పరీక్షా వాతావరణంలో ఈ పోర్ట్ నంబర్ని వేరే విలువకు మార్చాలని సిఫార్సు చేయబడింది. సర్వర్ కనెక్టివిటీ అన్ని సమయాలలో అందుబాటులో ఉంటుందని ఇది మాకు హామీ ఇస్తుంది.
అలాగే, కొత్త sshd_config ఫైల్ని ఉపయోగించే ముందు దాని కాన్ఫిగరేషన్ యొక్క సింటాక్స్ని తనిఖీ చేయడం మంచి పద్ధతి, అది ఏ పోర్ట్లో నడుస్తుందో దానితో సంబంధం లేకుండా. వాక్యనిర్మాణాన్ని తనిఖీ చేయడానికి, మేము కింది ఆదేశాన్ని ఉపయోగించవచ్చు:
$ sshd -టి
రూట్ వినియోగదారు మాత్రమే ఈ ఫైల్ను చదవగలరు మరియు వ్రాయగలరు అని కూడా గమనించడం ముఖ్యం. దీనర్థం sshd_config కాన్ఫిగరేషన్ ఫైల్ సరిగ్గా భద్రపరచబడి ఉంటే, మునుపటి ఆదేశాన్ని అమలు చేయడానికి రూట్ అధికారం అవసరం.
మునుపటి సింటాక్స్ వెరిఫైయింగ్ కమాండ్ని రన్ చేస్తున్నప్పుడు అవుట్పుట్ కనిపించకపోతే, ఫైల్ ఓకే అని అర్థం.
డిఫాల్ట్ కాన్ఫిగరేషన్ ఫైల్ మరియు పోర్ట్ను సవరిస్తోంది
కొన్ని సందర్భాల్లో, మేము కొత్త ఉదాహరణను అమలు చేయాలనుకుంటున్నాము sshd వేరే పోర్ట్లో. పోర్ట్ 22 ఇప్పటికే వాడుకలో ఉన్నందున లేదా ఉత్పత్తి వాతావరణంలో ఈ పోర్ట్ను మార్చడంలో కొన్ని ప్రమాద ప్రాంతాలు ఉండవచ్చు. అటువంటి పరిస్థితులలో, మేము మా సర్వర్ కోసం ప్రత్యామ్నాయ కాన్ఫిగరేషన్ ఫైల్ను సృష్టించవచ్చు.
కొత్త sshd_config ఫైల్ని sshd_config_newగా సృష్టిద్దాం. ఈ ఫైల్ కొన్ని విభిన్న సర్వర్ పారామితుల కోసం ఉపయోగించవచ్చు. ఇప్పుడు, ఈ ఫైల్ని పోర్ట్ నంబర్ 100లో కొత్త సర్వర్ కాన్ఫిగరేషన్ ఫైల్గా పరిగణించాలని నిర్దేశిద్దాం:
$ సుడో / usr / sbin / sshd -ఎఫ్ / మొదలైనవి / ssh / sshd_config_new -p 100
sshd డెమోన్ ఇప్పుడు పోర్ట్ 100లో వింటుంది. మనం ఏదైనా పోర్ట్ విలువను ఉపయోగించవచ్చు కానీ ఇప్పటికే వాడుకలో ఉన్న దానిని కాదు.
ఇప్పుడు, మా కొత్త పోర్ట్ కోరుకున్నట్లు పని చేస్తుందో లేదో తనిఖీ చేద్దాం. దీని కోసం, మనం ssh క్లయింట్ ప్రోగ్రామ్ను ఉపయోగించాలి మరియు కింది ఆదేశాన్ని అమలు చేయాలి:
$ / usr / డబ్బా / ssh -p 100 < ip సర్వర్ యొక్క >
“-p” ఎంపిక రిమోట్ సర్వర్లో ఉపయోగించాల్సిన పోర్ట్ 100ని నిర్దేశిస్తుంది. ఒకవేళ మేము స్థానికంగా పరీక్షిస్తున్నట్లయితే, మేము సర్వర్ IPని స్థానిక హోస్ట్ IPగా ఉపయోగించవచ్చు:
OpenSSH కాన్ఫిగరేషన్ ట్రబుల్షూటింగ్
కొన్నిసార్లు, మా సర్వర్ కోరుకున్నట్లు పనిచేయదు. అటువంటి సందర్భాలలో, OpenSSH సర్వర్ కాన్ఫిగరేషన్ను పరిష్కరించడానికి మేము “-d” ఫ్లాగ్ని ఉపయోగించవచ్చు. “-d” ఫ్లాగ్ని ఉపయోగించి, సర్వర్ డీబగ్ మోడ్లోకి ప్రవేశిస్తుంది మరియు ఒకే కనెక్షన్ని మాత్రమే నిర్వహిస్తుంది.
డీబగ్ మోడ్లో ఉత్పత్తి చేయబడిన అవుట్పుట్ వెర్బోస్గా ఉంటుంది. డీబగ్గింగ్ స్థాయిని పెంచడానికి మేము మరిన్ని “-d” ఫ్లాగ్లను ఉపయోగించవచ్చు. కొత్త కాన్ఫిగరేషన్ ఫైల్ని ఉపయోగించి మా సర్వర్లో డీబగ్ కమాండ్ను అమలు చేద్దాం:
$ / usr / sbin / sshd -డి -p 100 -ఎఫ్ / మొదలైనవి / ssh / sshd_config_new
మునుపటి కమాండ్ నుండి అవుట్పుట్ syslogd యొక్క AUTH సౌకర్యాన్ని ఉపయోగించకుండా stderrకి లాగ్ చేస్తుంది.
ముగింపు
OpenSSH డెమోన్ లేదా sshd అనేది అనేక అడ్మినిస్ట్రేషన్ ఇన్ఫ్రాస్ట్రక్చర్లలో కీలకమైన భాగం. అలాగే, సరైన ఆపరేషన్ కోసం దీన్ని నిర్వహించడానికి నైపుణ్యం అవసరం. ఈ కథనంలో, మేము sshd_config వంటి OpenSSH సర్వర్ కాన్ఫిగరేషన్ ఫైల్ గురించి తెలుసుకున్నాము.