SSH (सिक्योर शेल) का उपयोग करके सर्वर से कनेक्ट करना सिस्टम एडमिनिस्ट्रेटर और डेवलपर्स के लिए एक मौलिक कार्य है। जबकि SSH एक एन्क्रिप्टेड चैनल प्रदान करता है, आपके सर्वर को अनधिकृत पहुंच से बचाने के लिए इसे सुरक्षित रूप से कॉन्फ़िगर करना आवश्यक है। यह गाइड सुरक्षित SSH कनेक्शन के लिए प्रमुख प्रथाओं को कवर करती है।
1. SSH कुंजी-आधारित प्रमाणीकरण का उपयोग करें
SSH कुंजियाँ पासवर्ड की तुलना में काफी अधिक सुरक्षित होती हैं। इनमें क्रिप्टोग्राफ़िक कुंजियों का एक जोड़ा शामिल होता है: एक निजी कुंजी (आपके स्थानीय मशीन पर गुप्त रखी जाती है) और एक सार्वजनिक कुंजी (सर्वर पर रखी जाती है)।
- कुंजियाँ उत्पन्न करें: अपनी स्थानीय मशीन पर, एक कुंजी जोड़ी बनाने के लिए
ssh-keygenका उपयोग करें।bash ssh-keygen -t rsa -b 4096आपसे अपनी निजी कुंजी के लिए एक पासफ़्रेज़ दर्ज करने के लिए कहा जाएगा। एक मजबूत पासफ़्रेज़ का उपयोग करें। - सार्वजनिक कुंजी को सर्वर पर कॉपी करें: अपनी सार्वजनिक कुंजी को सर्वर पर आसानी से स्थानांतरित करने के लिए
ssh-copy-idका उपयोग करें।bash ssh-copy-id username@your_server_ipयह कमांड आपकी सार्वजनिक कुंजी को सर्वर पर~/.ssh/authorized_keysफ़ाइल में जोड़ता है।
2. पासवर्ड प्रमाणीकरण अक्षम करें
एक बार SSH कुंजी प्रमाणीकरण काम करने लगे, तो ब्रूट-फोर्स हमलों को रोकने के लिए पासवर्ड लॉगिन अक्षम करें।
- SSH कॉन्फ़िगरेशन संपादित करें: सर्वर पर SSH डेमन कॉन्फ़िगरेशन फ़ाइल खोलें।
bash sudo nano /etc/ssh/sshd_config - सेटिंग्स संशोधित करें: निम्नलिखित पंक्तियों को ढूंढें और बदलें:
PasswordAuthentication no # यदि आप रूट लॉगिन का उपयोग कर रहे हैं, तो सुनिश्चित करें कि यह भी अक्षम है: # PermitRootLogin no - SSH सेवा पुनः आरंभ करें: SSH सेवा को पुनः आरंभ करके परिवर्तनों को लागू करें।
bash sudo systemctl restart sshd
3. डिफ़ॉल्ट SSH पोर्ट बदलें
डिफ़ॉल्ट SSH पोर्ट (22) स्वचालित स्कैन के लिए एक सामान्य लक्ष्य है। इसे बदलने से अवांछित ट्रैफ़िक कम हो सकता है।
- SSH कॉन्फ़िगरेशन संपादित करें:
/etc/ssh/sshd_configमें,Port 22लाइन ढूंढें और22को किसी भिन्न, अप्रयुक्त पोर्ट नंबर (जैसे2222) से बदलें।Port 2222 - फ़ायरवॉल अपडेट करें: सुनिश्चित करें कि आपका फ़ायरवॉल नए पोर्ट पर ट्रैफ़िक की अनुमति देता है।
bash sudo ufw allow 2222/tcp sudo ufw delete allow ssh # पोर्ट 22 के लिए पुराना नियम हटाएं - SSH सेवा पुनः आरंभ करें:
bash sudo systemctl restart sshdकनेक्ट करते समय, आपको नया पोर्ट निर्दिष्ट करने की आवश्यकता होगी:ssh -p 2222 username@your_server_ip।
4. उपयोगकर्ता पहुंच सीमित करें
SSH पहुंच को केवल आवश्यक उपयोगकर्ताओं तक सीमित करें।
- रूट लॉगिन अक्षम करें:
/etc/ssh/sshd_configमेंPermitRootLogin noसेट करें। हमेशा एक नियमित उपयोगकर्ता के रूप में लॉग इन करें और प्रशासनिक कार्यों के लिएsudoका उपयोग करें। - विशिष्ट उपयोगकर्ताओं/समूहों की अनुमति दें: विशिष्ट खातों को श्वेतसूची में डालने के लिए
sshd_configमेंAllowUsersयाAllowGroupsनिर्देशों का उपयोग करें।AllowUsers your_user another_user
5. फ़ायरवॉल का उपयोग करें
केवल विश्वसनीय आईपी पतों या नेटवर्क से SSH कनेक्शन की अनुमति देने के लिए अपने सर्वर के फ़ायरवॉल (जैसे ufw) को कॉन्फ़िगर करें।
- UFW के साथ उदाहरण:
bash sudo ufw allow from trusted_ip_address to any port 2222 proto tcp # या किसी विशिष्ट सबनेट से अनुमति देने के लिए # sudo ufw allow from 192.168.1.0/24 to any port 2222 proto tcpअपने अनुप्रयोगों के लिए अन्य आवश्यक पोर्ट की अनुमति देना न भूलें।
6. Fail2Ban लागू करें
Fail2Ban लॉग फ़ाइलों को दुर्भावनापूर्ण गतिविधि (जैसे बार-बार असफल लॉगिन प्रयास) के लिए स्कैन करता है और आपत्तिजनक आईपी पतों को स्वचालित रूप से ब्लॉक करने के लिए फ़ायरवॉल नियमों को अपडेट करता है।
- Fail2Ban इंस्टॉल करें:
bash sudo apt install fail2ban - कॉन्फ़िगर करें: यह आमतौर पर SSH के लिए आउट-ऑफ़-द-बॉक्स काम करता है, लेकिन आप इसकी सेटिंग्स को
/etc/fail2ban/jail.localमें अनुकूलित कर सकते हैं।
7. सॉफ़्टवेयर अपडेट रखें
किसी भी ज्ञात भेद्यता को पैच करने के लिए नियमित रूप से अपने सर्वर के ऑपरेटिंग सिस्टम और SSH सॉफ़्टवेयर को अपडेट करें।
sudo apt update && sudo apt upgrade -y
इन प्रथाओं को लागू करके, आप अपने SSH कनेक्शन की सुरक्षा को काफी बढ़ा सकते हैं और अपने सर्वर को अनधिकृत पहुंच से बचा सकते हैं।