Linux VPS पर SSH कैसे सुरक्षित करें
सार्वजनिक VPS ऑनलाइन होने के कुछ ही मिनटों में स्वचालित लॉगिन प्रयास प्राप्त करने लगता है। नीचे दिए चरण SSH पर हमलों को कहीं ज़्यादा कठिन बनाते हैं। ये चरण Ubuntu या Debian के लिए लिखे गए हैं; अगर आपने अभी तक सर्वर नहीं बनाया है, तो आप Linux VPS किराये पर लें और एक साफ़ image से शुरुआत करें। नई सेटिंग्स को दूसरी विंडो से जांचने तक अपना मौजूदा SSH session खुला रखें।
1. sudo के साथ सामान्य उपयोगकर्ता बनाएं
adduser deploy
usermod -aG sudo deploy2. Password की जगह SSH keys इस्तेमाल करें
अपने कंप्यूटर पर:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPPassword बंद करने से पहले एक बार key से लॉगिन करके पुष्टि कर लें कि वह काम करती है।
3. Password और root login बंद करें
/etc/ssh/sshd_config.d/99-hardening.conf बनाएं:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Syntax जांचें और सेवा को reload करें। Ubuntu और Debian पर सेवा का नाम ssh है, जबकि RHEL-आधारित प्रणालियों पर sshd:
sudo sshd -t && sudo systemctl reload sshदूसरा terminal खोलकर फिर से लॉगिन करें। इसके बाद ही पुराना session बंद करें।
4. Firewall चालू करें
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseकेवल वही ports खोलें जिनकी आपको ज़रूरत है, जैसे वेब सर्वर के लिए 80 और 443। आप cloud console में firewall rule बनाकर SSH को अपने IP address तक सीमित भी कर सकते हैं।
5. Fail2ban से बार-बार होने वाली विफलताएं रोकें
sudo apt install -y fail2ban/etc/fail2ban/jail.local बनाएं:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. सुरक्षा अपडेट स्वचालित रूप से इंस्टॉल करें
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. वैकल्पिक अतिरिक्त कदम
- SSH port बदलने से log का शोर कम होता है, लेकिन यह अपने आप में सुरक्षा उपाय नहीं है।
- Private key को passphrase से सुरक्षित रखें और उसकी backup किसी सुरक्षित जगह रखें।
lastऔरsudo journalctl -u ssh --since todayसे लॉगिन की समीक्षा करें।- सर्वर कॉन्फ़िगर होने के बाद एक snapshot लें, ताकि आप साफ़ आधार-स्थिति पर वापस जा सकें।
अगर आप बाहर बंद हो गए हैं, तो अपने cloud panel के browser console से लॉगिन करके कॉन्फ़िगरेशन ठीक करें। अगली परत की सुरक्षा के लिए हमारी DDoS सुरक्षा मार्गदर्शिका देखें।
...
क्या root login बंद करना सुरक्षित है?
हाँ, अगर आपने पहले एक sudo उपयोगकर्ता बनाया हो और उसकी key का परीक्षण कर लिया हो। प्रशासनिक कमांड अब भी sudo से चलाए जा सकते हैं।
अगर मैं केवल keys इस्तेमाल करूं, तो क्या मुझे Fail2ban चाहिए?
यह वैकल्पिक है। Password लॉगिन बंद होने पर brute force सफल नहीं हो सकता, लेकिन Fail2ban log का शोर और लोड कम करता है।
अगर मेरी SSH key खो जाए तो?
अपने cloud panel के console से लॉगिन करें, ~/.ssh/authorized_keys में नई public key जोड़ें और पुरानी key हटा दें।