Linux VPS मा SSH कसरी सुरक्षित गर्ने
इन्टरनेटमा खुला VPS मा सुरु भएको केही मिनेटभित्रै स्वचालित login प्रयासहरू आउन थाल्छन्। यी चरणहरूले SSH लाई आक्रमण गर्न धेरै कठिन बनाउँछन्। यी निर्देशनहरू Ubuntu वा Debian का लागि लेखिएका हुन्; यदि तपाईंले अहिलेसम्म सर्भर बनाउनुभएको छैन भने, तपाईं Linux VPS भाडामा लिन सक्नुहुन्छ र सफा image बाट सुरु गर्न सक्नुहुन्छ। नयाँ सेटिङ दोस्रो विन्डोबाट परीक्षण नगरेसम्म हालको SSH session खुला राख्नुहोस्।
1. sudo सहित सामान्य user बनाउनुहोस्
adduser deploy
usermod -aG sudo deploy2. Password को सट्टा SSH key प्रयोग गर्नुहोस्
आफ्नो कम्प्युटरमा:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPPassword बन्द गर्नु अघि key ले काम गर्छ कि भनेर एक पटक key बाट login गरेर पुष्टि गर्नुहोस्।
3. Password र root login बन्द गर्नुहोस्
/etc/ssh/sshd_config.d/99-hardening.conf फाइल बनाउनुहोस्:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Syntax जाँच गरेर service reload गर्नुहोस्। Ubuntu र Debian मा service को नाम ssh हो, र RHEL-based प्रणालीमा sshd:
sudo sshd -t && sudo systemctl reload sshदोस्रो terminal खोलेर फेरि login गर्नुहोस्। त्यसपछि मात्र पुरानो session बन्द गर्नुहोस्।
4. Firewall सक्षम गर्नुहोस्
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseआवश्यक पर्ने port मात्र खोल्नुहोस्, जस्तै web server का लागि 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 ले सुरक्षित गर्नुहोस् र यसकोब्याकअप सुरक्षित ठाउँमा राख्नुहोस्।
lastरsudo journalctl -u ssh --since todayप्रयोग गरेर login हरू समीक्षा गर्नुहोस्।- सर्भर कन्फिगर भएपछि snapshot लिनुहोस्, ताकि सफा आधार अवस्थामा फर्कन सकियोस्।
यदि तपाईं सर्भरबाट बाहिर लक हुनुभयो भने, configuration मिलाउन आफ्नो cloud panel मा रहेको browser console प्रयोग गरेर login गर्नुहोस्। अर्को तहको सुरक्षाबारे जान्न DDoS सुरक्षा गाइड हेर्नुहोस्।
बारम्बार सोधिने प्रश्नहरू
root login बन्द गर्नु सुरक्षित हो?
हो, यदि पहिले sudo user बनाएर त्यसको key काम गर्छ कि भनेर परीक्षण गरिएको छ भने। sudo प्रयोग गरेर प्रशासनिक आदेशहरू अझै चलाउन सकिन्छ।
यदि केवल key प्रयोग गर्छु भने Fail2ban चाहिन्छ?
यो वैकल्पिक हो। Password login बन्द भएपछि brute force सफल हुन सक्दैन, तर Fail2ban ले log मा हुने आवाज र लोड घटाउँछ।
मैले SSH key गुमाएँ भने के गर्ने?
आफ्नो cloud panel को console प्रयोग गरेर login गर्नुहोस्, नयाँ public key लाई ~/.ssh/authorized_keys मा थप्नुहोस् र पुरानो key हटाउनुहोस्।