नवीन VPS सुरक्षित करण्यासाठी 10 मिनिटे
नवीन VPS सुरक्षित करण्यासाठी 10 मिनिटांचा मार्गदर्शक. यामध्ये root युजर बंद करणे, SSH keys सेट करणे आणि firewall सक्षम करणे या महत्त्वाच्या स्टेप्स दिल्या आहेत.
पहिले 10 मिनिटे तुमच्या सर्व्हरची सुरक्षा ठरवतात
नवीन VPS सुरक्षित नसते. सार्वजनिक IP मिळाल्यापासून, स्कॅनर्स लॉग इन करण्याचा प्रयत्न करू लागतात आणि डिफॉल्ट इमेज त्यांना एक मोठे लक्ष्य देते: root सहसा पोहोचण्यायोग्य असते, पासवर्ड्स सहसा परवानगी असलेले असतात, फायरवॉल नसते आणि काहीही शेड्यूलनुसार पॅच केलेले नसते. चांगली बातमी म्हणजे हे सर्व बंद करण्यासाठी फक्त दहा मिनिटे आणि काही कमांड्स लागतात. मी कोणत्याही नवीन सर्व्हरवर काहीही ठेवण्यापूर्वी हीच रनबुक वापरतो.
हे क्रमाने पूर्ण करा, कारण प्रत्येक स्टेप पुढच्या स्टेपसाठी आधार ठरते. प्रत्येक स्टेपसाठी स्वतःची मार्गदर्शिका (guide) दिली आहे, जी तुम्ही पुढे जाताना पाहू शकता; हे पेज त्यांना एकत्र जोडणारा एक जलद मार्ग आहे.
Minute 1: सर्व काही अपडेट करा
तुमच्या प्रोव्हायडरने दिलेल्या क्रेडेंशियल्ससह root म्हणून लॉग इन करा आणि इतर काही करण्यापूर्वी सिस्टम पूर्णपणे अपडेट करा:
apt update && apt upgrade -yअनपॅच्ड (unpatched) बॉक्स हे सर्वात सोपे लक्ष्य असते, म्हणून हे सर्वात आधी करा. प्रक्रिया पूर्ण झाल्यावर, ऑटोमॅटिक सिक्युरिटी अपडेट्स सेट करा जेणेकरून तुम्हाला लक्षात ठेवण्याची गरज न पडता ते पॅच्ड राहील.
Minute 2: sudo सह एक सामान्य युजर तयार करा
root म्हणून काम करणे सुरू ठेवू नका. स्वतःसाठी एक युजर तयार करा आणि त्याला sudo द्या:
adduser matt
usermod -aG sudo mattयेथून तुम्ही या युजरने लॉग इन करू शकता आणि ॲडमिन कामांसाठी sudo वापरू शकता. सतत root म्हणून काम करणे म्हणजे प्रत्येक चूक आणि प्रत्येक कॉम्प्रमाईज (compromise) अमर्यादित अधिकारांसह होतो, जे unprivileged user म्हणून काम करणे रोखण्यासाठी अस्तित्वात आहे.
Minute 4: SSH keys सेट करा
पासवर्ड्सचा अंदाज लावला जाऊ शकतो; की (keys) नाही. तुमच्या स्वतःच्या लॅपटॉपवर, जर तुमच्याकडे आधीच की नसेल, तर एक तयार करा:
ssh-keygen -t ed25519त्यानंतर पब्लिक हाफ सर्व्हरवर कॉपी करा:
ssh-copy-id matt@YOUR_SERVERनवीन युजरसाठी ssh-copy-id मध्ये पासवर्ड लॉगिन चालू असणे आवश्यक आहे; जर ते आधीच बंद असेल, तर root ची ~/.ssh/authorized_keys फाईल /home/matt/.ssh/authorized_keys (जी matt कडून मालकीची आहे) मध्ये कॉपी करा, किंवा तुमची पब्लिक की त्या फाईलमध्ये मॅन्युअली पेस्ट करा.
या स्टेपमधील मॉडेल, म्हणजेच प्रति डिव्हाइस एक की, की लॉगिन मोडित करणारे परमिशन्स आणि हरवलेली की रद्द करणे, हे SSH key management basics मध्ये कव्हर केले आहे.
लॉग आउट करा आणि की वापरून matt म्हणून पुन्हा लॉग इन करा, आणि पुढच्या स्टेपला स्पर्श करण्यापूर्वी ते काम करते याची खात्री करा. की वापरून आत येण्यापूर्वी SSH लॉक करणे, यामुळे लोक स्वतःला लॉक आउट (lock out) करतात.
Minute 6: root लॉगिन आणि पासवर्ड्स बंद करा
आता तुमची की काम करत असल्याने, स्कॅनर्स ज्या दोन दारांवर अवलंबून असतात ते बंद करा. ड्रॉप-इन फाईल वापरा जेणेकरून पॅकेज अपग्रेड्समुळे ती ओव्हरराईट होणार नाही. तिला 00- असे नाव द्या जेणेकरून ती 50-cloud-init.conf च्या आधी सॉर्ट होईल, जे Ubuntu क्लाउड इमेजेसमध्ये 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 लॉगिन निघून गेल्यामुळे, तुमच्या सर्व्हरवर होणारा सततचा ब्रूट-फोर्स ट्रॅफिक यशस्वी होऊ शकत नाही. एक पर्यायी पोर्ट बदल सह पूर्ण प्रक्रिया SSH hardening on a VPS मध्ये आहे.
Minute 8: फायरवॉल चालू करा
इनबाउंडसाठी सर्व काही डिफॉल्ट-डिनाय (deny) करा, आणि नंतर फक्त तुम्हाला आवश्यक असलेल्या गोष्टींना परवानगी द्या. फायरवॉल सुरू करण्यापूर्वी SSH ला परवानगी द्या, अन्यथा तुमचे स्वतःचे कनेक्शन कापले जाईल:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableतुम्ही प्रत्यक्षात चालवत असलेल्या कोणत्याही सर्व्हिससाठी allow रूल्स जोडा, जसे की वेबसाइटसाठी 80/tcp आणि 443/tcp. IPv4 आणि IPv6 दोन्ही कव्हर झाले आहेत याची खात्री करा, कारण जो फायरवॉल फक्त IPv4 फिल्टर करतो तो IPv6 बाजू पूर्णपणे उघडी ठेवतो. पूर्ण माहिती Firewalls 101 on a VPS मध्ये आहे.
Minute 10: Fail2ban ने स्कॅनर्सचा वेग कमी करा
शेवटी, तुमच्या पोर्ट्सवर हल्ला करणाऱ्या ॲड्रेसना काढून टाकण्यासाठी Fail2ban जोडा:
sudo apt install -y fail2banUbuntu 24.04 वर, स्टँडर्ड इन्स्टॉलेशन पहिल्या बूटपासून SSH चे संरक्षण करते. की आधीच आवश्यक असल्याने, हे तुमचे मुख्य संरक्षण नसून लॉग नॉईज कमी करणारे आणि वारंवार हल्ला करणाऱ्यांना ब्लॉक करणारे एक बॅकस्टॉप आहे.
तुमची चेकलिस्ट
हीच रनबुक आहे. प्रत्येक कंट्रोल तपासायला आणि सर्व्हरसोबत ठेवता येईल अशी वैयक्तिक चेकलिस्ट तयार करण्यासाठी खालील जनरेटर वापरा, ज्यामध्ये प्रत्येक स्टेपसाठी नेमकी कमांड असेल:
प्रत्येक नवीन सर्व्हरसाठी हे एकदा करा आणि सर्व गोष्टी सवयीचा भाग बनतील. आताचे दहा मिनिटे तुम्हाला सर्व्हर हॅक झाल्यानंतर येणाऱ्या अत्यंत वाईट दुपारपासून वाचवू शकतात.
एकदा आवश्यक गोष्टी सेट झाल्या की, Ubuntu वरील automatic security updates तुम्हाला पुन्हा लॉग इन न करता सर्व्हर अपडेट ठेवतात.
FAQ
नवीन VPS वर मी सर्वात आधी काय केले पाहिजे?
apt update && apt upgrade -y ने सिस्टम अपडेट करा, त्यानंतर sudo सह एक सामान्य युजर तयार करा आणि root म्हणून काम करणे थांबवा. तिथून, SSH keys सेट करा, root लॉगिन आणि पासवर्ड ऑथेंटिकेशन डिसेबल करा, डिफॉल्ट-डिनाय फायरवॉल सक्षम करा आणि Fail2ban इन्स्टॉल करा. हे क्रमाने केल्यामुळे स्वतःला लॉक आउट न करता प्रत्येक स्टेप सुरक्षितपणे घेता येते.
SSH हार्डनिंग करताना मी स्वतःला लॉक आउट होण्यापासून कसे वाचवू?
पासवर्ड किंवा root डिसेबल करण्यापूर्वी तुमची SSH की लॉगिन सेट आणि टेस्ट करा. की वापरून लॉग आउट आणि पुन्हा लॉग इन करून ते काम करते याची खात्री करा, आणि त्यानंतरच PasswordAuthentication आणि PermitRootLogin बंद करा. जेव्हा तुम्ही फायरवॉल सक्षम करता, तेव्हा ufw enable चालवण्यापूर्वी पोर्ट 22 ला परवानगी द्या. जर तुम्ही लॉक आउट झालात, तर तुमच्या प्रोव्हायडरचे वेब कन्सोल तुम्हाला SSH शिवाय पुन्हा प्रवेश मिळवून देते.
मला खरोखर या सर्व गोष्टींची गरज आहे का?
हो, कारण स्कॅनर्सना तुमचा सर्व्हर किती लहान आहे याशी काहीही देणेघेणे नसते. ते प्रत्येक सार्वजनिक IP वर सारख्याच पद्धतीने प्रयत्न करतात. संपूर्ण रनबुकला सुमारे दहा मिनिटे लागतात आणि ते सोपे मार्ग काढून टाकते: no root login, no password guessing, तुम्ही निवडता त्याव्यतिरिक्त काहीही उघडे नाही, आणि ज्ञात बग्स आपोआप पॅच केले जातात.
सर्वात महत्त्वाची स्टेप कोणती आहे?
root लॉगिन डिसेबलसह फक्त की-ओन्ली (Key-only) SSH. नवीन VPS वरील बहुतेक हल्ले हे root विरुद्ध स्वयंचलित पासवर्ड गेसिंग असतात, आणि दोन्ही बंद केल्यामुळे हल्ल्याची ही संपूर्ण श्रेणी अशक्य होते. त्यानंतर फायरवॉल आणि Fail2ban उघड्या असलेल्या गोष्टी मर्यादित करतात आणि उरलेल्या गोष्टींचा वेग कमी करतात.
सर्व्हर खरोखर सुरक्षित (locked down) आहे याची मी खात्री कशी करू?
त्यावर विश्वास ठेवण्यापूर्वी मॅन्युअली तीन गोष्टी तपासा. sudo ss -tlnp चालवा आणि खात्री करा की फक्त तुम्ही उघडायचे ठरवलेले पोर्ट्स सार्वजनिक पत्त्यावर लिसनिंग (listening) करत आहेत, आणि 0.0.0.0 किंवा [::] सारखी तुम्ही विसरलेली कोणतीही सर्व्हिस नाही. sudo ufw status verbose चालवा आणि खात्री करा की डिफॉल्ट इनकमिंग पॉलिसी deny आहे आणि साध्या आणि (v6) दोन्ही रूल्स उपलब्ध आहेत. आणि पहिली सेशन बंद करण्यापूर्वी नेहमी दुसरी SSH सेशन उघडा, जेणेकरून SSH कॉन्फिगरेशनमधील चुकीमुळे तुम्ही सर्व्हरमधून लॉक आउट होऊ नये. जर या तिन्ही गोष्टी बरोबर असतील, तर मूलभूत गोष्टी सेट आहेत.