కొత్త VPSలో మొదటి 10 నిమిషాల్లో చేయాల్సినవి
కొత్త VPSకు public IP వచ్చిన నిమిషం నుంచే scanners login ప్రయత్నిస్తాయి. ఈ 10 నిమిషాల runbookలో user, SSH keys, root నిరోధం, firewall ఏర్పాటు చేయండి.
మీ సర్వర్ ఎంత సురక్షితంగా ఉందో మొదటి 10 నిమిషాలే నిర్ణయిస్తాయి
కొత్తగా సృష్టించిన VPS సురక్షితంగా ఉండదు. దానికి public IP వచ్చిన వెంటనే scanners login చేయడానికి ప్రయత్నిస్తాయి. Default image వాటికి పెద్ద attack target ను అందిస్తుంది: root తరచుగా అందుబాటులో ఉంటుంది, passwords తరచుగా అనుమతించబడతాయి, firewall ఉండదు, ఏదీ schedule ప్రకారం patch చేయబడదు. అయితే ఇవన్నీ సరిచేయడానికి సుమారు పది నిమిషాలు మరియు కొన్ని commands చాలు. ఏదైనా ఉంచే ముందు ప్రతి కొత్త server పై నేను అమలు చేసే runbook ఇదే.
దీన్ని ఇచ్చిన క్రమంలోనే అనుసరించండి, ఎందుకంటే ప్రతి దశ ముందున్న దశపై ఆధారపడుతుంది. ప్రతి దశకు ప్రత్యేక guide ఉంది; ముందుకు సాగుతున్నప్పుడు దానికి link ఉంటుంది. ఈ పేజీ వాటన్నింటినీ అనుసంధానించే వేగవంతమైన మార్గం.
నిమిషం 1: అన్నింటినీ నవీకరించండి
మీ provider ఇచ్చిన credentials తో root గా login అవ్వండి. ఆ తర్వాత మరే పని చేయకముందే system ను పూర్తిగా తాజా స్థితికి తీసుకురండి:
apt update && apt upgrade -yPatches లేని system సులభంగా target అవుతుంది. అందుకే ఈ పని ముందుగా చేయాలి. ఇది పూర్తయిన తర్వాత automatic security updates ను ఏర్పాటు చేయండి. మీరు గుర్తుంచుకోకపోయినా system patched గా ఉంటుంది.
నిమిషం 2: sudoతో సాధారణ వినియోగదారుని సృష్టించండి
rootగా పని కొనసాగించవద్దు. మీ కోసం ఒక వినియోగదారుని సృష్టించి, దానికి sudo అనుమతి ఇవ్వండి:
adduser matt
usermod -aG sudo mattఇకపై ఈ వినియోగదారుగా login చేసి, పరిపాలనా పనుల కోసం sudo ఉపయోగించండి. ఎల్లప్పుడూ rootగా నడపడం వల్ల ప్రతి పొరపాటు మరియు ప్రతి breach అపరిమిత అధికారాలతో జరుగుతుంది. దీన్ని నివారించడానికే అధికారరహిత వినియోగదారుగా నడపడం ఉపయోగపడుతుంది.
నిమిషం 4: SSH keys ఏర్పాటు చేయండి
Passwords ఊహించి తెలుసుకోవచ్చు; keys ను అలా తెలుసుకోలేరు. మీ స్వంత laptopలో ఇప్పటికే key లేకపోతే, ఒకదాన్ని సృష్టించండి:
ssh-keygen -t ed25519తర్వాత public half ను server కు copy చేయండి:
ssh-copy-id matt@YOUR_SERVERకొత్త user కోసం ssh-copy-id లో password login తప్పనిసరిగా enabled అయి ఉండాలి; అది ఇప్పటికే disabled అయి ఉంటే, root యొక్క ~/.ssh/authorized_keys ను /home/matt/.ssh/authorized_keys లోకి copy చేయండి (దాని owner matt అయి ఉండాలి), లేదా మీ public key ను ఆ file లోకి manualగా paste చేయండి.
ఈ దశ వెనుక ఉన్న విధానం—ప్రతి device కు ఒక key, key login ను విఫలమయ్యే permissions, పోయిన key ను revoke చేయడం—SSH key management ప్రాథమికాలు లో వివరించబడింది.
Key ఉపయోగించి matt గా logout చేసి మళ్లీ login అవ్వండి. తర్వాతి దశను ప్రారంభించే ముందు అది పనిచేస్తోందని నిర్ధారించండి. Key తో login చేయగలరని నిర్ధారించకముందే SSH ను కఠినంగా పరిమితం చేస్తే, మీరే మీను server నుంచి బయటకు lock చేసుకునే ప్రమాదం ఉంది. ఆ login సమయంలో Permission denied (publickey) కనిపిస్తే, password కు తిరిగి వెళ్లకుండా ఇప్పుడే దాన్ని పరిష్కరించండి. ఎందుకంటే ఆ ఒక్క message ఐదు వేర్వేరు లోపాలను సూచించవచ్చు. ssh -v output లో వాటిలో మీకు ఏది ఉందో తెలుస్తుంది.
నిమిషం 6: root login మరియు passwords ను నిలిపివేయండి
ఇప్పుడు మీ key పనిచేస్తోంది. Scanners ఆధారపడే రెండు మార్గాలను మూసివేయండి. Package upgrades ఆ ఫైల్ను overwrite చేయకుండా ఉండేందుకు drop-in file ఉపయోగించండి. దానికి 00- అని పేరు పెట్టండి. అలా చేస్తే అది 50-cloud-init.conf కంటే ముందుగా sort అవుతుంది. Ubuntu cloud images లో PasswordAuthentication yes ఉంటుంది. sshd తాను ముందుగా చదివిన value నే ఉంచుతుంది. అందువల్ల తర్వాత sort అయ్యే file నిశ్శబ్దంగా ప్రభావం కోల్పోతుంది:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noతర్వాత SSH ను reload చేయండి:
sudo systemctl restart sshతర్వాత sshd వాస్తవంగా ఉపయోగిస్తున్న settings ను తనిఖీ చేయండి. ఇలా చేస్తే ప్రభావం కోల్పోయిన drop-in file మిమ్మల్ని తప్పుదారి పట్టించదు:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'Passwords నిలిపివేయబడి, root login తొలగించబడిన తర్వాత, మీ server పై నిరంతరం జరిగే brute-force traffic విజయవంతం కాలేదు. Optional port change తో సహా పూర్తి వివరాలు VPS పై SSH hardening లో ఉన్నాయి.
నిమిషం 8: ఫైర్వాల్ను ప్రారంభించండి
ఇన్బౌండ్ ట్రాఫిక్ను డిఫాల్ట్గా పూర్తిగా నిరాకరించండి. అవసరమైన వాటిని మాత్రమే అనుమతించండి. ఫైర్వాల్ను ప్రారంభించే ముందు SSHను అనుమతించండి. లేకపోతే మీ స్వంత కనెక్షన్ను మీరు తెంచుకుంటారు:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableమీరు నిజంగా నడుపుతున్న ప్రతి సేవకు allow నియమాలను జోడించండి. ఉదాహరణకు, వెబ్సైట్ కోసం 80/tcp మరియు 443/tcp వంటి నియమాలను జోడించాలి. దీని తరువాత కొత్త SSH సెషన్ కనెక్ట్ కాకపోతే, ఏదైనా మార్చే ముందు error ను చదవండి. ఎందుకంటే నిరాకరణ అంటే sshd స్పందించిందని, timeout సాధారణంగా ఫైర్వాల్ packet ను అడ్డుకుందని అర్థం. IPv4 మరియు IPv6 రెండూ కవర్ అయ్యాయో తనిఖీ చేయండి. IPv4ను మాత్రమే filter చేసే ఫైర్వాల్ IPv6 భాగాన్ని పూర్తిగా తెరిచి ఉంచుతుంది. పూర్తి వివరణను VPSలలో Firewalls 101 లో చూడండి. ఈ ufw commands Ubuntu లేదా Debian కోసం ఉద్దేశించినవి. Rocky లేదా AlmaLinux సిస్టమ్లో default-deny లక్ష్యం ఇదే అయినప్పటికీ, ఉపయోగించే tool firewalld. అందువల్ల ఈ దశకు సంబంధించిన firewalld వెర్షన్ ప్రకారం కొనసాగండి.
నిమిషం 10: Fail2ban తో స్కానర్ల వేగాన్ని తగ్గించండి
చివరిగా, మీ ports పై పదేపదే దాడి చేసే addresses ను తొలగించడానికి Fail2ban ను జోడించండి:
sudo apt install -y fail2banUbuntu 24.04 లోని డిఫాల్ట్ install మొదటి boot నుంచే SSH ను రక్షిస్తుంది. ఇప్పటికే keys తప్పనిసరి చేసినందున, ఇది మీ ప్రధాన రక్షణ కాకుండా logs లోని అనవసరమైన నమోదులను తగ్గించి, పదేపదే దాడి చేసే addresses ను block చేసే అదనపు రక్షణగా పనిచేస్తుంది.
మీ checklist
ఇదే runbook. క్రింద ఉన్న generator ను ఉపయోగించి ప్రతి control ను గుర్తించండి. ప్రతి దశకు సంబంధించిన ఖచ్చితమైన command తో, server వద్ద ఉంచుకోగల వ్యక్తిగత checklist ను రూపొందించండి:
ప్రతి కొత్త server కోసం దీన్ని ఒకసారి అనుసరించండి. తరువాత మొత్తం ప్రక్రియ సులభంగా గుర్తుండిపోతుంది. ఇప్పుడు వెచ్చించే పది నిమిషాలు, server breached అయిన తర్వాత ఎదురయ్యే అత్యంత సమస్యాత్మకమైన మధ్యాహ్నాన్ని నివారిస్తాయి.
అవసరమైన ప్రాథమిక ఏర్పాట్లు పూర్తయిన తర్వాత, Ubuntuలో automatic security updates మీరు మళ్లీ login చేయకుండానే server ను తాజా స్థితిలో ఉంచుతాయి. మీరు అమలు చేసే ప్రతి service కు ప్రత్యేక పరిశీలన అవసరం. బలహీనతలు మారుతూ ఉంటాయి: self-hosted password vault విషయంలో server plaintext ను ఎప్పుడూ నిల్వ చేయదు. అందువల్ల Vaultwarden యొక్క నిజమైన ప్రమాదాలు admin token మరియు backup file కు సంబంధించినవే.
FAQ
కొత్త VPSలో నేను మొదట ఏమి చేయాలి?
apt update && apt upgrade -y తో systemను update చేయండి. తరువాత sudo హక్కులు ఉన్న సాధారణ userను సృష్టించి, rootగా పని చేయడం ఆపండి. ఆ తర్వాత SSH keysను configure చేయండి, root login మరియు password authenticationను disable చేయండి, default-deny firewallను enable చేయండి, Fail2banను install చేయండి. ఈ క్రమంలో చేస్తే మిమ్మల్ని మీరు server నుంచి lock out చేసుకోకుండా ప్రతి దశను సురక్షితంగా అమలు చేయవచ్చు.
SSHను harden చేస్తున్నప్పుడు నన్ను నేను lock out చేసుకోకుండా ఎలా ఉండాలి?
Passwords లేదా rootను disable చేయడానికి ముందు SSH key loginను configure చేసి test చేయండి. Keyతో logout చేసి మళ్లీ login చేసి అది పనిచేస్తోందని నిర్ధారించండి. ఆ తర్వాత మాత్రమే PasswordAuthentication మరియు PermitRootLogin ను disable చేయండి. Firewallను enable చేస్తున్నప్పుడు ufw enable ను run చేయడానికి ముందు port 22ను allow చేయండి. మీరు lock out అయితే, మీ provider అందించే web console ద్వారా SSH లేకుండానే మళ్లీ serverలోకి ప్రవేశించవచ్చు.
చిన్న serverలో ఇవన్నీ నిజంగా అవసరమా?
అవును. మీ server ఎంత చిన్నదో scanners పట్టించుకోవు. అవి ప్రతి public IPపై ఒకే విధంగా ప్రయత్నిస్తాయి. మొత్తం runbookకు సుమారు పది నిమిషాలు పడుతుంది. దీనివల్ల సులభమైన దాడి మార్గాలు తొలగిపోతాయి: root login ఉండదు, password guessing సాధ్యం కాదు, మీరు ఉద్దేశపూర్వకంగా తెరవని సేవ ఏదీ బయటకు కనిపించదు, తెలిసిన bugs స్వయంచాలకంగా patch అవుతాయి.
అన్నింటికంటే ముఖ్యమైన ఒక్క దశ ఏమిటి?
Root login disable చేసి key-only SSHను ఉపయోగించడం. కొత్త VPSలపై జరిగే చాలా దాడులు rootపై automated password guesses రూపంలో ఉంటాయి. ఈ రెండింటినీ disable చేస్తే ఆ మొత్తం దాడి వర్గం అసాధ్యమవుతుంది. Firewall మరియు Fail2ban బయటకు కనిపించే అంశాలను పరిమితం చేసి, మిగిలిన ప్రయత్నాలను నెమ్మదింపజేస్తాయి.
Server నిజంగా locked down అయిందని ఎలా నిర్ధారించాలి?
దానిపై నమ్మకం ఉంచే ముందు మూడు విషయాలను చేతితో తనిఖీ చేయండి. sudo ss -tlnp ను run చేసి, public addressపై మీరు తెరవాలని ఉద్దేశించిన ports మాత్రమే listeningలో ఉన్నాయని నిర్ధారించండి. మీరు మర్చిపోయిన 0.0.0.0 లేదా [::] service ఏదీ ఉండకూడదు. sudo ufw status verbose ను run చేసి, default incoming policy deny అని నిర్ధారించండి. Plain rules మరియు (v6) rules రెండూ ఉన్నాయో కూడా చూడండి. మొదటి SSH sessionను మూసే ముందు ఎల్లప్పుడూ రెండో SSH sessionను open చేయండి. అప్పుడు SSH configurationలోని పొరపాటు వల్ల మీరు server నుంచి lock out కాలేరు. ఈ మూడు తనిఖీలూ సరిగ్గా ఉంటే, ప్రాథమిక భద్రతా ఏర్పాట్లు పూర్తయ్యాయి.