ఈ రోజుల్లో, హోస్టింగ్లో సర్వర్ని పెంచడం అనేది రెండు నిమిషాలు మరియు కొన్ని మౌస్ క్లిక్ల విషయం. కానీ ప్రారంభించిన వెంటనే, అతను ప్రతికూల వాతావరణంలో తనను తాను కనుగొంటాడు, ఎందుకంటే అతను రాకర్ డిస్కోలో అమాయక అమ్మాయిలా మొత్తం ఇంటర్నెట్కు తెరిచి ఉంటాడు. స్కానర్లు దీన్ని త్వరగా కనుగొంటాయి మరియు దుర్బలత్వాలు మరియు తప్పు కాన్ఫిగరేషన్ల కోసం వెతుకుతున్న నెట్వర్క్ను శోధించే వేలాది స్వయంచాలకంగా స్క్రిప్ట్ చేయబడిన బాట్లను గుర్తిస్తాయి. ప్రాథమిక రక్షణను నిర్ధారించడానికి ప్రారంభించిన వెంటనే మీరు చేయవలసిన కొన్ని విషయాలు ఉన్నాయి.
మొదటి దశ మీ కోసం నాన్-రూట్ వినియోగదారుని సృష్టించడం. విషయం ఏమిటంటే వినియోగదారు root సిస్టమ్లో సంపూర్ణ అధికారాలు, మరియు మీరు అతనిని రిమోట్ అడ్మినిస్ట్రేషన్ను అనుమతించినట్లయితే, మీరు హ్యాకర్ కోసం సగం పనిని చేస్తారు, అతనికి చెల్లుబాటు అయ్యే వినియోగదారు పేరును వదిలివేస్తారు.
అందువల్ల, మీరు మరొక వినియోగదారుని సృష్టించాలి మరియు రూట్ కోసం SSH ద్వారా రిమోట్ పరిపాలనను నిలిపివేయాలి.
కమాండ్ ద్వారా కొత్త వినియోగదారు ప్రారంభించబడతారు useradd:
useradd [options] <username>
అప్పుడు కమాండ్తో దాని కోసం పాస్వర్డ్ జోడించబడుతుంది passwd:
passwd <username>
చివరగా, ఈ వినియోగదారుని ఉన్నత అధికారాలతో ఆదేశాలను అమలు చేసే హక్కు ఉన్న సమూహానికి జోడించబడాలి sudo. Linux పంపిణీని బట్టి, ఇవి వేర్వేరు సమూహాలుగా ఉండవచ్చు. ఉదాహరణకు, CentOS మరియు Red Hatలో, వినియోగదారు సమూహానికి జోడించబడతారు wheel:
usermod -aG wheel <username>
ఉబుంటులో ఇది సమూహానికి జోడించబడింది sudo:
usermod -aG sudo <username>
SSH పాస్వర్డ్లకు బదులుగా కీలు
బ్రూట్ ఫోర్స్ లేదా పాస్వర్డ్ లీక్లు ఒక ప్రామాణిక దాడి వెక్టర్, కాబట్టి SSH (సెక్యూర్ షెల్)లో పాస్వర్డ్ ప్రమాణీకరణను నిలిపివేయడం మరియు బదులుగా కీ ప్రామాణీకరణను ఉపయోగించడం ఉత్తమం.
SSH ప్రోటోకాల్ను అమలు చేయడానికి వివిధ ప్రోగ్రామ్లు ఉన్నాయి lsh и డ్రాప్ బేర్, కానీ అత్యంత ప్రజాదరణ పొందినది OpenSSH. ఉబుంటులో OpenSSH క్లయింట్ను ఇన్స్టాల్ చేస్తోంది:
ప్రతి బూట్లో స్వయంచాలకంగా డెమోన్ను ప్రారంభించండి:
sudo systemctl enable sshd
OpenSSH సర్వర్ భాగం క్లయింట్ భాగాన్ని కలిగి ఉందని గమనించాలి. అంటే, ద్వారా openssh-server మీరు ఇతర సర్వర్లకు కనెక్ట్ చేయవచ్చు. అంతేకాకుండా, మీ క్లయింట్ మెషీన్ నుండి, మీరు రిమోట్ సర్వర్ నుండి థర్డ్-పార్టీ హోస్ట్కి ఒక SSH టన్నెల్ను ప్రారంభించవచ్చు, ఆపై థర్డ్-పార్టీ హోస్ట్ రిమోట్ సర్వర్ని అభ్యర్థనల మూలంగా పరిగణిస్తుంది. మీ సిస్టమ్ను మాస్కింగ్ చేయడానికి చాలా సులభ ఫీచర్. మరిన్ని వివరాల కోసం కథనాన్ని చూడండి "ప్రాక్టికల్ చిట్కాలు, ఉదాహరణలు మరియు SSH టన్నెల్స్".
క్లయింట్ మెషీన్లో, కంప్యూటర్కు (భద్రతా కారణాల దృష్ట్యా) రిమోట్ కనెక్షన్ని నిరోధించడానికి పూర్తి స్థాయి సర్వర్ను ఇన్స్టాల్ చేయడం సాధారణంగా అర్ధమే కాదు.
కాబట్టి, మీ కొత్త వినియోగదారు కోసం, మీరు ముందుగా సర్వర్ని యాక్సెస్ చేసే కంప్యూటర్లో SSH కీలను రూపొందించాలి:
ssh-keygen -t rsa
పబ్లిక్ కీ ఫైల్లో నిల్వ చేయబడుతుంది .pub మరియు మొదలయ్యే యాదృచ్ఛిక అక్షరాల స్ట్రింగ్ లాగా కనిపిస్తుంది ssh-rsa.
ఆపై, రూట్ కింద నుండి, వినియోగదారు హోమ్ డైరెక్టరీలో సర్వర్లో SSH డైరెక్టరీని సృష్టించండి మరియు ఫైల్కి SSH పబ్లిక్ కీని జోడించండి authorized_keys, Vim వంటి టెక్స్ట్ ఎడిటర్ని ఉపయోగించడం:
క్లయింట్ వైపు, మీరు ప్రమాణీకరణ కోసం రహస్య కీ యొక్క స్థానాన్ని పేర్కొనాలి:
ssh-add DIR_PATH/keylocation
ఇప్పుడు మీరు ఈ కీని ఉపయోగించి వినియోగదారు పేరుతో సర్వర్కు లాగిన్ చేయవచ్చు:
ssh [username]@hostname
అధికారం తర్వాత, మీరు ఫైళ్లను కాపీ చేయడానికి scp ఆదేశాన్ని ఉపయోగించవచ్చు, యుటిలిటీ sshfs ఫైల్ సిస్టమ్ లేదా డైరెక్టరీలను రిమోట్గా మౌంట్ చేయడానికి.
ప్రైవేట్ కీ యొక్క అనేక బ్యాకప్ కాపీలను తయారు చేయడం మంచిది, ఎందుకంటే మీరు పాస్వర్డ్ ప్రమాణీకరణను నిలిపివేసి, దానిని పోగొట్టుకుంటే, మీ స్వంత సర్వర్లోకి లాగిన్ అవ్వడానికి మీకు ఎటువంటి మార్గం ఉండదు.
పైన చెప్పినట్లుగా, SSHలో మీరు రూట్ కోసం ప్రమాణీకరణను నిలిపివేయాలి (ఈ కారణంగా మేము కొత్త వినియోగదారుని సృష్టించాము).
CentOS/Red Hatలో మనం లైన్ను కనుగొంటాము PermitRootLogin yes కాన్ఫిగరేషన్ ఫైల్లో /etc/ssh/sshd_config మరియు దానిని మార్చండి:
PermitRootLogin no
ఉబుంటులో పంక్తిని జోడించండి PermitRootLogin no config ఫైల్కి 10-my-sshd-settings.conf:
కొత్త వినియోగదారు వారి కీతో ప్రమాణీకరిస్తున్నారని ధృవీకరించిన తర్వాత, పాస్వర్డ్ లీకేజ్ లేదా బ్రూట్ ఫోర్స్ ప్రమాదాన్ని తొలగించడానికి మీరు పాస్వర్డ్ ప్రమాణీకరణను నిలిపివేయవచ్చు. ఇప్పుడు, సర్వర్ని యాక్సెస్ చేయడానికి, దాడి చేసే వ్యక్తి ప్రైవేట్ కీని పొందవలసి ఉంటుంది.
CentOS/Red Hatలో మనం లైన్ను కనుగొంటాము PasswordAuthentication yes కాన్ఫిగరేషన్ ఫైల్లో /etc/ssh/sshd_config మరియు దానిని ఈ క్రింది విధంగా మార్చండి:
PasswordAuthentication no
ఉబుంటులో పంక్తిని జోడించండి PasswordAuthentication no ఫైల్ చేయడానికి 10-my-sshd-settings.conf:
SSH ద్వారా రెండు-కారకాల ప్రమాణీకరణను ప్రారంభించే సూచనల కోసం, చూడండి ఇక్కడ.
ఫైర్వాల్
మీరు నేరుగా అనుమతించే పోర్ట్లలోని ట్రాఫిక్ మాత్రమే సర్వర్కి వెళ్లేలా ఫైర్వాల్ నిర్ధారిస్తుంది. ఇది ఇతర సేవలతో అనుకోకుండా ప్రారంభించబడిన పోర్ట్ల దోపిడీకి వ్యతిరేకంగా రక్షిస్తుంది, ఇది దాడి ఉపరితలాన్ని బాగా తగ్గిస్తుంది.
ఫైర్వాల్ను ఇన్స్టాల్ చేసే ముందు, మీరు SSH మినహాయింపు జాబితాలో చేర్చబడిందని మరియు బ్లాక్ చేయబడదని నిర్ధారించుకోవాలి. లేకపోతే, ఫైర్వాల్ని ప్రారంభించిన తర్వాత, మేము సర్వర్కి కనెక్ట్ చేయలేరు.
ఉబుంటు పంపిణీ సంక్లిష్టత లేని ఫైర్వాల్తో వస్తుంది (ufw), మరియు CentOS/Red Hatతో - firewalld.
సేవ ఫెయిల్ 2 బాన్ సర్వర్ లాగ్లను విశ్లేషిస్తుంది మరియు ప్రతి IP చిరునామా నుండి యాక్సెస్ ప్రయత్నాల సంఖ్యను గణిస్తుంది. సెట్టింగులు నిర్దిష్ట వ్యవధిలో ఎన్ని యాక్సెస్ ప్రయత్నాలు అనుమతించబడతాయనే నిబంధనలను పేర్కొంటాయి - దీని తర్వాత ఈ IP చిరునామా నిర్దిష్ట వ్యవధిలో బ్లాక్ చేయబడుతుంది. ఉదాహరణకు, మేము 5 గంటల వ్యవధిలో SSH ద్వారా 2 విఫలమైన ప్రమాణీకరణ ప్రయత్నాలను అనుమతిస్తాము, ఆ తర్వాత మేము ఈ IP చిరునామాను 12 గంటల పాటు బ్లాక్ చేస్తాము.
CentOS మరియు Red Hatలో Fail2Banని ఇన్స్టాల్ చేస్తోంది:
SSHతో పాటు, Fail2Ban nginx లేదా Apache వెబ్ సర్వర్లో ఇతర సేవలను రక్షించగలదు.
స్వయంచాలక భద్రతా నవీకరణలు
మీకు తెలిసినట్లుగా, అన్ని ప్రోగ్రామ్లలో కొత్త దుర్బలత్వాలు నిరంతరం కనిపిస్తాయి. సమాచారం ప్రచురించబడిన తర్వాత, జనాదరణ పొందిన దోపిడీ ప్యాక్లకు దోపిడీలు జోడించబడతాయి, వీటిని వరుసగా అన్ని సర్వర్లను స్కాన్ చేస్తున్నప్పుడు హ్యాకర్లు మరియు యువకులు ఎక్కువగా ఉపయోగిస్తారు. అందువల్ల, భద్రతా నవీకరణలు కనిపించిన వెంటనే వాటిని ఇన్స్టాల్ చేయడం చాలా ముఖ్యం.
ఉబుంటు సర్వర్లో, ఆటోమేటిక్ సెక్యూరిటీ అప్డేట్లు డిఫాల్ట్గా ప్రారంభించబడతాయి, కాబట్టి తదుపరి చర్య అవసరం లేదు.
CentOS/Red Hatలో మీరు అప్లికేషన్ను ఇన్స్టాల్ చేయాలి dnf-ఆటోమేటిక్ మరియు టైమర్ను ఆన్ చేయండి:
టెల్నెట్ (పోర్ట్ 1995) మరియు ftp (పోర్ట్ 23) స్థానంలో SSH 21లో అభివృద్ధి చేయబడింది, కాబట్టి ప్రోగ్రామ్ రచయిత, టాటు ఇల్టోనెన్ డిఫాల్ట్గా పోర్ట్ 22 ఎంచుకోబడింది, మరియు IANAచే ఆమోదించబడింది.
సహజంగానే, SSH ఏ పోర్ట్లో రన్ అవుతుందో దాడి చేసే వారందరికీ తెలుసు - మరియు సాఫ్ట్వేర్ వెర్షన్ను కనుగొనడానికి, ప్రామాణిక రూట్ పాస్వర్డ్లను తనిఖీ చేయడానికి మరియు మొదలైన వాటిని ఇతర ప్రామాణిక పోర్ట్లతో పాటు స్కాన్ చేయండి.
ప్రామాణిక పోర్ట్లను మార్చడం - అస్పష్టత - అనేక సార్లు చెత్త ట్రాఫిక్ మొత్తాన్ని తగ్గిస్తుంది, లాగ్ల పరిమాణం మరియు సర్వర్పై లోడ్, మరియు దాడి ఉపరితలాన్ని కూడా తగ్గిస్తుంది. కొన్ని ఉన్నప్పటికీ "అస్పష్టత ద్వారా రక్షణ" యొక్క ఈ పద్ధతిని విమర్శించండి (అస్పష్టత ద్వారా భద్రత). కారణం ఈ టెక్నిక్ ప్రాథమికానికి వ్యతిరేకం నిర్మాణ రక్షణ. కాబట్టి, ఉదాహరణకు, US నేషనల్ ఇన్స్టిట్యూట్ ఆఫ్ స్టాండర్డ్స్ అండ్ టెక్నాలజీ ఇన్ "సర్వర్ సెక్యూరిటీ గైడ్" ఓపెన్ సర్వర్ ఆర్కిటెక్చర్ అవసరాన్ని సూచిస్తుంది: "సిస్టమ్ యొక్క భద్రత దాని భాగాల అమలు యొక్క గోప్యతపై ఆధారపడకూడదు" అని పత్రం పేర్కొంది.
సిద్ధాంతపరంగా, డిఫాల్ట్ పోర్ట్లను మార్చడం ఓపెన్ ఆర్కిటెక్చర్ అభ్యాసానికి విరుద్ధం. కానీ ఆచరణలో, హానికరమైన ట్రాఫిక్ మొత్తం వాస్తవానికి తగ్గించబడుతుంది, కాబట్టి ఇది సరళమైన మరియు సమర్థవంతమైన కొలత.
డైరెక్టివ్ను మార్చడం ద్వారా పోర్ట్ నంబర్ను కాన్ఫిగర్ చేయవచ్చు Port 22 config ఫైల్లో / Etc / ssh / sshd_config. ఇది పారామీటర్ ద్వారా కూడా సూచించబడుతుంది -p <port> в sshd. SSH క్లయింట్ మరియు ప్రోగ్రామ్లు SFTP ఎంపికకు కూడా మద్దతు ఇస్తుంది -p <port>.
పరామితి -p <port> కమాండ్తో కనెక్ట్ చేస్తున్నప్పుడు పోర్ట్ నంబర్ను పేర్కొనడానికి ఉపయోగించవచ్చు ssh linux లో. IN SFTP и scp పరామితి ఉపయోగించబడుతుంది -P <port> (రాజధాని P). కమాండ్ లైన్ సూచన కాన్ఫిగరేషన్ ఫైల్లలో ఏదైనా విలువను భర్తీ చేస్తుంది.
అనేక సర్వర్లు ఉంటే, Linux సర్వర్ను రక్షించడానికి దాదాపుగా ఈ చర్యలన్నీ స్క్రిప్ట్లో స్వయంచాలకంగా చేయబడతాయి. కానీ ఒకే సర్వర్ ఉంటే, ప్రక్రియను మాన్యువల్గా నియంత్రించడం మంచిది.
ప్రకటనల హక్కులపై
ఆర్డర్ చేయండి మరియు వెంటనే ప్రారంభించండి! VDS సృష్టి ఏదైనా కాన్ఫిగరేషన్ మరియు ఏదైనా ఆపరేటింగ్ సిస్టమ్తో నిమిషంలోపు. గరిష్ట కాన్ఫిగరేషన్ మిమ్మల్ని పూర్తి స్థాయికి రావడానికి అనుమతిస్తుంది - 128 CPU కోర్లు, 512 GB RAM, 4000 GB NVMe. ఇతిహాసం 🙂