కొత్త VPS సెటప్ మొదటి 10 నిమిషాలు
కొత్త VPS పబ్లిక్ IP పొందగానే స్కానర్ల లక్ష్యమవుతుంది. ఈ రన్బుక్లో sudo యూజర్ సృష్టించడం, SSH keys సెటప్, root లాగిన్ డిసేబుల్, ఫైర్వాల్ ఆన్ చేయడం ఉన్నాయి.
మీ సర్వర్ ఎంత సురక్షితమో తీర్మానించేది మొదటి 10 నిమిషాలే
కొత్త VPS సురక్షితం కాదు. అది పబ్లిక్ IP పొందిన క్షణం నుండి, స్కానర్లు లాగిన్ అవ్వడానికి ప్రయత్నిస్తున్నాయి. డిఫాల్ట్ ఇమేజ్ వాటికి పెద్ద లక్ష్యాన్ని అందిస్తుంది: root తరచుగా చేరుకోగలుగుతుంది, పాస్వర్డ్లు తరచుగా అనుమతించబడతాయి, ఫైర్వాల్ ఉండదు, షెడ్యూల్ ప్రకారం ప్యాచ్ చేయబడినదేమీ లేదు. మంచి వార్త ఏమిటంటే, అన్నీ మూసివేయడానికి పది నిమిషాలు, కొన్ని కమాండ్లు సరిపోతాయి. నేను దేనినైనా ఉంచడానికి ముందు ప్రతి కొత్త సర్వర్లో అమలు చేసే రన్బుక్ ఇదే.
దీన్ని క్రమం ప్రకారం చేయండి, ఎందుకంటే ప్రతి దశ ఒకదానిపై ఒకటి ఆధారపడి ఉంటుంది. ప్రతి దశకు దాని స్వంత గైడ్ ఉంది, మీరు వెళ్తున్నప్పుడు లింక్ చేయబడుతుంది; ఈ పేజీ వాటన్నింటినీ కలిపే వేగవంతమైన మార్గం.
నిమిషం 1: ప్రతిదీ అప్డేట్ చేయండి
మీ ప్రొవైడర్ ఇచ్చిన ఆధారాలతో root వలె లాగిన్ అవ్వండి. మరేదైనా చేయడానికి ముందు సిస్టమ్ను పూర్తిగా అప్డేట్ చేయండి:
apt update && apt upgrade -yప్యాచ్ చేయబడని బాక్స్ అత్యంత సులభమైన లక్ష్యం, కాబట్టి ఇది ముందు వస్తుంది. అది పూర్తయ్యాక, ఆటోమేటిక్ సెక్యూరిటీ అప్డేట్లను సెటప్ చేయండి. అప్పుడు మీరు గుర్తుంచుకోవలసిన అవసరం లేకుండా సిస్టమ్ ప్యాచ్ చేయబడి ఉంటుంది.
నిమిషం 2: sudoతో సాధారణ యూజర్ను సృష్టించండి
root వలె పని చేయడం కొనసాగించవద్దు. మీ కోసం ఒక యూజర్ను సృష్టించండి. ఆ యూజర్కు sudo అనుమతి ఇవ్వండి:
adduser matt
usermod -aG sudo mattఇక మీరు ఈ యూజర్గా లాగిన్ అవుతారు. అడ్మిన్ పనుల కోసం sudo ఉపయోగిస్తారు. ఎల్లప్పుడూ root వలె అమలు చేయడం అంటే ప్రతి పొరపాటు, ప్రతి రాజీపోవడం అనంతమైన అధికారంతో జరుగుతుంది. దీన్ని నివారించడానికే అన్ప్రివిలేజ్డ్ యూజర్గా అమలు చేయడం ఉద్దేశించబడింది.
నిమిషం 4: SSH కీలను సెటప్ చేయండి
పాస్వర్డ్లను ఊహించవచ్చు; కీలను కాదు. మీ స్వంత ల్యాప్టాప్లో, మీకు ఇప్పటికే కీ లేకపోతే, ఒకదాన్ని సృష్టించండి:
ssh-keygen -t ed25519తర్వాత పబ్లిక్ హాఫ్ను సర్వర్కు కాపీ చేయండి:
ssh-copy-id matt@YOUR_SERVERssh-copy-idకు కొత్త యూజర్ కోసం పాస్వర్డ్ లాగిన్ ఆన్లో ఉండాలి; అది ఇప్పటికే ఆఫ్లో ఉంటే, root ~/.ssh/authorized_keysను /home/matt/.ssh/authorized_keysలోకి కాపీ చేయండి (matt యాజమాన్యంలో), లేదా మీ పబ్లిక్ కీని చేతితో ఆ ఫైల్లోకి అతికించండి.
ఈ దశ వెనుక ఉన్న మోడల్, ప్రతి పరికరానికి ఒక కీ, కీ లాగిన్ను విచ్ఛిన్నం చేసే అనుమతులు, పోగొట్టుకున్న కీని ఉపసంహరించడం SSH కీ నిర్వహణ ప్రాథమికాలులో వివరించబడింది.
లాగౌట్ అవ్వండి. కీని ఉపయోగించి mattగా తిరిగి లాగిన్ అవ్వండి. తదుపరి దశను తాకడానికి ముందు అది పనిచేస్తుందని నిర్ధారించుకోండి. మీరు కీతో లోపలికి రాకముందే SSHను లాక్ చేయడం వల్ల మీరు బయటకు లాక్ అవుతారు.
నిమిషం 6: root లాగిన్ మరియు పాస్వర్డ్లను ఆఫ్ చేయండి
ఇప్పుడు మీ కీ పనిచేస్తున్నందున, స్కానర్లు ఆధారపడే రెండు తలుపులను మూసివేయండి. ప్యాకేజ్ అప్గ్రేడ్లు దాన్ని ఓవర్రైట్ చేయకుండా ఉండటానికి డ్రాప్-ఇన్ ఫైల్ను ఉపయోగించండి. దానికి 00- అని పేరు పెట్టండి, తద్వారా అది 50-cloud-init.conf కంటే ముందు క్రమపరుస్తుంది, దీన్ని ఉబుంటు క్లౌడ్ ఇమేజ్లు PasswordAuthentication yesతో షిప్ చేస్తాయి; sshd ఇది చదివే మొదటి విలువను ఉంచుతుంది, కాబట్టి తర్వాత క్రమపరచబడే ఫైల్ నిశ్శబ్దంగా కోల్పోతుంది:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noతర్వాత SSHను రీలోడ్ చేయండి:
sudo systemctl restart sshఅప్పుడు sshd నిజంగా ఉపయోగించే సెట్టింగ్లను తనిఖీ చేయండి, తద్వారా కోల్పోయే డ్రాప్-ఇన్ మిమ్మల్ని మోసం చేయలేదు:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'పాస్వర్డ్లు ఆఫ్లో ఉండటం, root లాగిన్ పోవడంతో, మీ సర్వర్పై నిరంతర బ్రూట్-ఫోర్స్ ట్రాఫిక్ విఫలమవుతుంది. ఐచ్ఛిక పోర్ట్ మార్పుతో సహా పూర్తి వివరాలు VPSలో SSH హార్డెనింగ్లో ఉన్నాయి.
నిమిషం 8: ఫైర్వాల్ను ఆన్ చేయండి
ఇన్బౌండ్గా వచ్చే ప్రతిదాన్ని డిఫాల్ట్గా తిరస్కరించండి. తర్వాత మీకు అవసరమైనవాటిని మాత్రమే అనుమతించండి. దాన్ని ఎనేబుల్ చేయడానికి ముందు SSHను అనుమతించండి, లేదంటే మీ కనెక్షన్ కట్ అవుతుంది:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableమీరు నిజంగా అమలు చేసే ప్రతి సర్వీస్ కోసం allow నియమాలను జోడించండి, ఉదాహరణకు వెబ్సైట్ కోసం 80/tcp మరియు 443/tcp. IPv4 మరియు IPv6 రెండూ కవర్ అయ్యాయో లేదో తనిఖీ చేయండి, ఎందుకంటే IPv4ను మాత్రమే ఫిల్టర్ చేసే ఫైర్వాల్ IPv6 వైపును విస్తృతంగా తెరిచి వదులుతుంది. పూర్తి వాక్త్రూ VPSలో ఫైర్వాల్స్ 101లో ఉంది.
నిమిషం 10: Fail2banతో స్కానర్లను మందగించండి
చివరగా, మీ పోర్టులను తట్టే చిరునామాలను బహిష్కరించడానికి Fail2banను జోడించండి:
sudo apt install -y fail2banఉబుంటు 24.04లో స్టాక్ ఇన్స్టాల్ మొదటి బూట్ నుండి SSHను రక్షిస్తుంది. కీలు ఇప్పటికే అవసరం కాబట్టి, ఇది మీ ప్రధాన రక్షణ కాదు; లాగ్ నాయిస్ను తగ్గించి, పునరావృత దోర్మారులను నిరోధించే బ్యాక్స్టాప్ మాత్రమే.
మీ చెక్లిస్ట్
అది రన్బుక్. ప్రతి కంట్రోల్ను టిక్ చేయడానికి మరియు ప్రతి దశకు సరైన కమాండ్తో సహా సర్వర్తో ఉంచడానికి దిగువ జనరేటర్ను ఉపయోగించండి:
ప్రతి కొత్త సర్వర్కు ఒకసారి దీన్ని పని చేయండి. మొత్తం విషయం కండర జ్ఞాపకంగా మారుతుంది. ఇప్పుడు పది నిమిషాలు ఖర్చు చేయడం వల్ల సర్వర్ హ్యాక్ అయిన తర్వాత వచ్చే చాలా చెత్త మధ్యాహ్నం మీకు ఆదా అవుతుంది.
అవసరమైనవి ఒకసారి స్థాపితమైతే, ఉబుంటులో ఆటోమేటిక్ సెక్యూరిటీ అప్డేట్లు మీరు తిరిగి లాగిన్ అవ్వాల్సిన అవసరం లేకుండా సర్వర్ను నవీకరణలో ఉంచుతాయి.
FAQ
కొత్త VPSలో నేను ముందుగా ఏమి చేయాలి?
apt update && apt upgrade -yతో సిస్టమ్ను అప్డేట్ చేయండి. తర్వాత sudoతో సాధారణ యూజర్ను సృష్టించండి. root వలె పని చేయడం ఆపండి. అక్కడ నుండి, SSH కీలను సెటప్ చేయండి, root లాగిన్ మరియు పాస్వర్డ్ ప్రామాణీకరణను డిసేబుల్ చేయండి, డిఫాల్ట్-డినై ఫైర్వాల్ను ఎనేబుల్ చేయండి, Fail2banను ఇన్స్టాల్ చేయండి. ఆ క్రమంలో చేయడం అంటే ప్రతి దశ సురక్షితంగా ఉంటుంది, మీరు బయటకు లాక్ అవ్వరు.
SSH హార్డెనింగ్ చేసేటప్పుడు నాకు నన్ను నేను బయటకు లాక్ అవ్వకుండా ఎలా నివారించగలను?
పాస్వర్డ్లు లేదా rootను డిసేబుల్ చేయడానికి ముందు మీ SSH కీ లాగిన్ను సెటప్ చేసి టెస్ట్ చేయండి. అది పనిచేస్తుందని నిర్ధారించుకోవడానికి లాగౌట్ అవ్వండి, కీతో తిరిగి లాగిన్ అవ్వండి. అప్పుడు మాత్రమే PasswordAuthentication మరియు PermitRootLoginను ఆఫ్ చేయండి. మీరు ఫైర్వాల్ను ఎనేబుల్ చేసినప్పుడు, ufw enable అమలు చేయడానికి ముందు పోర్ట్ 22ను అనుమతించండి. మీరు లాక్ అయితే, మీ ప్రొవైడర్ వెబ్ కన్సోల్ SSH లేకుండా మిమ్మల్ని తిరిగి లోపలికి తీసుకువస్తుంది.
చిన్న సర్వర్లో కూడా నాకు ఇవన్నీ నిజంగా అవసరమా?
అవును, ఎందుకంటే స్కానర్లు మీ సర్వర్ ఎంత చిన్నదో పట్టించుకోవు. అవి ప్రతి పబ్లిక్ IPను ఒకే విధంగా ప్రయత్నిస్తాయి. మొత్తం రన్బుక్కు పది నిమిషాలు పడుతుంది. సులభమైన మార్గాలను తొలగిస్తుంది: root లాగిన్ లేదు, పాస్వర్డ్ ఊహించడం లేదు, మీరు ఎంచుకోని దేనికీ బహిర్గతం లేదు, తెలిసిన బగ్లు ఆటోమేటిక్గా ప్యాచ్ చేయబడతాయి.
అత్యంత ముఖ్యమైన దశ ఏది?
root లాగిన్ డిసేబుల్తో కీ-ఓన్లీ SSH. కొత్త VPSపై దాడులలో చాలావరకు rootకి వ్యతిరేకంగా ఆటోమేటెడ్ పాస్వర్డ్ అంచనాలు ఉంటాయి. రెండింటినీ ఆఫ్ చేయడం దాడుల యొక్క ఆ మొత్తం వర్గాన్ని అసాధ్యం చేస్తుంది. ఫైర్వాల్ మరియు Fail2ban అప్పుడు బహిర్గతమైన వాటిని పరిమితం చేస్తాయి, మిగిలిన వాటిని మందగిస్తాయి.
సర్వర్ నిజంగా లాక్డౌన్ అయిందని నేను ఎలా నిర్ధారించుకోవచ్చు?
మీరు నమ్మడానికి ముందు మూడు విషయాలను చేతితో తనిఖీ చేయండి. sudo ss -tlnp అమలు చేయండి. మీరు తెరవాలనుకున్న పోర్టులు మాత్రమే పబ్లిక్ చిరునామాపై లిజనింగ్లో ఉన్నాయని నిర్ధారించుకోండి, మీరు మర్చిపోయిన ఏ 0.0.0.0 లేదా [::] సర్వీస్ లేదని కూడా చూసుకోండి. sudo ufw status verbose అమలు చేయండి. డిఫాల్ట్ ఇన్కమింగ్ పాలసీ denyగా ఉందని, ప్లెయిన్ మరియు (v6) నియమాలు రెండూ ఉన్నాయని నిర్ధారించుకోండి. మరియు మీరు మొదటిదాన్ని మూసివేయడానికి ముందు ఎల్లప్పుడూ రెండవ SSH సెషన్ను తెరవండి, తద్వారా SSH కాన్ఫిగరేషన్లో పొరపాటు మిమ్మల్ని సర్వర్ నుండి బయటకు లాక్ చేయలేదు. మూడూ సరైనవిగా కనిపిస్తే, ప్రాథమికాలు స్థాపితమయ్యాయి.