VPS मिलते ही पहला घंटा: नंगे सर्वर से सुरक्षित और इस्तेमाल-लायक बनने तक का पूरा इनिशियलाइज़ेशन गाइड (अपने OpenClaw को और सुरक्षित बनाओ)
नया खरीदा हुआ VPS बिल्कुल एक बिना ताले का दरवाज़ा है, दुनिया भर के स्क्रिप्ट किड्स इस पर दस्तक दे रहे हैं। ये लेख आपको दरवाज़ा सुरक्षित करना सिखाएगा। ताकि आपका लॉबस्टर (openclaw) यहाँ-वहाँ भागकर शैतानी न करे।
0、शुरुआत से पहले
अभी-अभी एक नया VPS खरीदा है, IP और root पासवर्ड मिलते ही आप उत्साह में हैं, फिर?
ज़्यादातर लोग क्या करते हैं: सीधे सॉफ्टवेयर इंस्टॉल करना और प्रोजेक्ट डिप्लॉय करना शुरू कर देते हैं।
ये एक खतरनाक आदत है।
आपके VPS का एक पब्लिक IP है, मतलब दुनिया में कोई भी इससे कनेक्ट करने की कोशिश कर सकता है। और डिफ़ॉल्ट कॉन्फ़िगरेशन में:
- पोर्ट पब्लिक रूप से खुला है 22
- यूज़रनेम सबको पता है: root
- बस एक पासवर्ड आपकी सुरक्षा कर रहा है
हर रोज़ अनगिनत ऑटोमेटेड स्क्रिप्ट IP रेंज स्कैन कर रही हैं और आम पासवर्ड से ब्रूट-फ़ोर्स अटैक करने की कोशिश कर रही हैं। आपका सर्वर जिस पल ऑनलाइन होता है, उसी पल से अटैक हो रहा है।
इसलिए, VPS मिलते ही सबसे पहला काम सॉफ्टवेयर इंस्टॉल करना नहीं, बल्कि सुरक्षा सेटअप करना है।
1、हमारा लक्ष्य
इस लेख का लक्ष्य ये है:
- ✅ Secure remote access सेटअप करना: SSH key लॉगिन + डिफ़ॉल्ट पोर्ट को बदलना
- ✅ एक नॉर्मल यूज़र बनाना: सीधे root का इस्तेमाल करने से बचें
- ✅ फ़ायरवॉल कॉन्फ़िगर करना: सिर्फ़ ज़रूरी पोर्ट ही खोलें
- ✅ नेटवर्क बूस्ट चालू करना: BBR से नेटवर्क को उड़ान दें
- ✅ ब्रूट-फ़ोर्स अटैक रोकना: fail2ban से खतरनाक IP अपने-आप बैन करें
ये सब कर लेने के बाद, आपके VPS की नींव एकदम मज़बूत हो जाएगी और फिर आप बेफ़िक्र होकर अपनी किसी भी सर्विस को डिप्लॉय कर सकते हैं।
2. प्लान और सोच
ये सब कॉन्फ़िगरेशन करने की ज़रूरत क्यों है?
नया ख़रीदा हुआ VPS बिल्कुल उसी तरह है जैसे किसी नए मकान का खाली कच्चा कमरा:
| डिफ़ॉल्ट स्थिति | जोखिम | हमारा समाधान |
|---|---|---|
| root यूज़र से सीधे लॉगिन | बहुत ज़्यादा परमिशन, गलती से बड़ा नुक़सान हो सकता है | नया नॉर्मल यूज़र बनाएं + sudo |
| पासवर्ड से लॉगिन | ब्रूट-फ़ोर्स अटैक हो सकता है | SSH की (key) से लॉगिन |
| डिफ़ॉल्ट पोर्ट 22 | स्कैनर इसे सबसे पहले टारगेट करते हैं | किसी नॉन-स्टैंडर्ड पोर्ट पर शिफ्ट करें |
| फ़ायरवॉल बंद | सारे पोर्ट बाहर की दुनिया के लिए खुले | UFW से सिर्फ़ ज़रूरी पोर्ट ही खोलें |
| नेटिव नेटवर्क | पैकेट लॉस ज़्यादा, लेटेंसी भी बढ़ी हुई | BBR कंजेशन कंट्रोल एल्गोरिदम |
पूरा प्रोसेस

हम इसी क्रम से सब कुछ सेट अप करेंगे, और हर स्टेप पर मैं आपको बताऊंगा कि ऐसा क्यों कर रहे हैं।
3. ऑपरेशन स्टेप्स
3.1 पहली बार लॉगिन और सिस्टम अपडेट
सर्वर का IP पता लें
VPS ख़रीदने के बाद, आपकी होस्टिंग प्रोवाइडर आपको ये चीज़ें देगी:
- IP address: Jaise ki
192.168.1.100 - Port: Aam taur par
22hota hai (kuch providers isse badal dete hain) - Username: Aam taur par
roothota hai - Password: Ek randomly generate kiya hua character string

SSH Connection
Mac / Linux users: Terminal kholo, aur direct type karo:
1 | ssh root@你的服务器IP |
Windows users:
- Windows 10/11 mein OpenSSH pehle se bana hota hai, toh aap upar wala command directly PowerShell ya CMD mein chala sakte ho
- Ya fir Termius, MobaXterm jaise tools use kar sakte ho
Pehli baar connect karne par fingerprint confirmation prompt dikhega:
1 | The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. |
Yeh basically pooch raha hai: “Main is machine ko nahi jaanta, kya tum sure ho ki tumhe isse connect karna hai?”
yes type karo aur Enter dabao. Uske baad password type karo (dhyaan rakhna: type karte waqt screen par kuch nahi dikhega, yeh normal security feature hai), aur Enter dabao.

Agar aapko is tarah ka prompt dikhe, toh iska matlab login successful hai:
1 | Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.x.x-x-generic x86_64) |
💡 Fingerprint confirm kyun zaroori hai?
Yeh “Man-in-the-Middle attack” se bachne ke liye hai. Pehli baar connect karte waqt server ka fingerprint note kar lijiye. Agar baad mein connect karne par fingerprint badal gaya hai, toh iska matlab hai ki shayad koi aapke server ka nakli roop dhaar kar raha hai.

Apne server se pehchaan karein
Login karne ke baad, pehle is machine ki basic haalat samajh lijiye:
1 | # 查看系统版本 |

Yi sab info yaad rakhiye, aage chal kar koi problem troubleshoot karne time kaam aayegi.
System Update
Server ki info check karne ke baad, sabse pehla kaam hai system ko update karna. Naya server purana image use kar raha ho sakta hai, aur is dauraan kai security patches release ho chuke honge:
1 | # 更新软件包列表 + 升级所有软件 + 清理 |
Parameters ka matlab:
apt update: Package index update karta haiapt full-upgrade: Saare software upgrade karta hai, kernel bhi isme shamil hai-y: Automatically confirm karta hai, manually ‘yes’ type karne ki zaroorat nahiapt autoremove: Jo dependencies ab zaroorat nahi unhe delete kar deta haiapt autoclean: Download kiye gaye install packages ke cache ko saaf kar deta hai

⏱️ Is step mein kuch minute lag sakte hain, depend karta hai kitne updates hain. Beech mein kabhi-kabhi confirm karne ko bole toh, basically jo uski logic ho wahi follow kar lijiye.
Reboot zaroorat check karein
Kernel update ke baad aam taur par effect dikhane ke liye reboot karna padta hai:
1 | # 检查是否需要重启 |

Agar reboot karne ko kahe:
1 | reboot |
Reboot ke baad aapko dobara SSH connection establish karna hoga.
Common tools install karein
1 | apt install -y sudo curl wget git vim htop tree unzip net-tools ufw fail2ban neofetch |
ये टूल्स किस काम आते हैं:
| टूल | काम | |
|---|---|---|
sudo |
सामान्य यूज़र्स को एडमिन कमांड चलाने दें | |
curl / wget |
फ़ाइलें डाउनलोड करना | |
git |
वर्शन कंट्रोल | |
vim |
टेक्स्ट एडिटर | |
htop |
बेहतरीन लगने वाला प्रोसेस मॉनिटर | |
tree |
डायरेक्टरी स्ट्रक्चर ट्री व्यू में दिखाना | |
net-tools |
नेटवर्क टूल्स (ifconfig, netstat आदि) | |
ufw |
आसान और बढ़िया फ़ायरवॉल | |
fail2ban |
ब्रूट-फ़ोर्स अटैक रोकना | |
neofetch |
सिस्टम जानकारी सुंदर तरीके से दिखाना | |
![]() |
3.2 Non-root user banayein
Root ka direct use kyun na karein?
Root user ke paas bohot zyada permissions hote hain, ek chhoti si galti se rm -rf / sab khatam ho sakta hai. Daily tasks ke liye ek normal user use karna chahiye, aur jab admin wali permissions ki zaroorat ho, tabhi sudo ka use karein.
Lobster (openclaw) toh ek monster hai, isko root access kaise de sakte hain?
User banayein
1 | # 创建用户(把 ittinker 换成你想要的用户名) |
System aapse password aur kuch aur details set karne ko kahega:
1 | New password: # 输入密码(不会显示) |

Sudo permissions dein
1 | # 把用户加入 sudo 组, ittinker 换成你自己上面创建的那个用户 |
Check kar lein:
1 | # 切换到新用户 ittinker 换成你自己上面创建的那个用户 |
Agar output root aata hai, toh iska matlab sudo successfully configure ho gaya hai.

💡 Pro Tip
exittype karke aap wapas root user mein switch kar sakte hain. Aage ke setup steps hum root use karke complete karenge, aur jab sab kuch ho jaye, tab wapas normal user par switch kar lenge.
3.3 SSH Key login setup karein
Key authentication vs Password authentication

Key authentication password se kaafi zyada secure hota hai:
- Passwords ko brute-force kiya ja sakta hai, keys ko lagbhag nahi
- Baar-baar password daalne ki zaroorat nahi, kaafi convenient hai
- Agar password leak bhi ho jaye, toh bhi private key ke bina login nahi hoga
Step 1: Local par key pair generate karein
अपने अपने कंप्यूटर (सर्वर नहीं) पर ये रन करो:
1 | # 生成 ED25519 密钥(推荐,更安全更快) |
ये प्रॉम्प्ट आएगा:
1 | Enter file in which to save the key (/Users/你/.ssh/id_ed25519): |
बस Enter मारकर डिफ़ॉल्ट पाथ इस्तेमाल कर लो। हमने यहाँ ./ittinker इस्तेमाल किया है, मतलब फ़ाइल तुम्हारी मौजूदा डायरेक्टरी में ittinker नाम से सेव हो जाएगी।
1 | Enter passphrase (empty for no passphrase): |
तुम चाहो तो की के लिए पासवर्ड सेट कर सकते हो (एक एक्स्ट्रा लेयर सिक्योरिटी के लिए), या फिर सीधा Enter मारकर इसे खाली छोड़ सकते हो।

जनरेट हो जाने के बाद, तुम्हें ~/.ssh/ डायरेक्टरी में दो फ़ाइलें दिखेंगी (नीचे डिफ़ॉल्ट नाम दिए हैं, अगर आगे तुमने सीधा Enter मारा तो ऐसे ही बनेंगी):
id_ed25519: प्राइवेट की, इसे किसी भी कीमत पर लीक नहीं करना!id_ed25519.pub: पब्लिक की, इसे सर्वर पर अपलोड करना है
💡 ed25519 vs RSA
ed25519फ़िलहाल सबसे ज़्यादा रेकमेंडेड अल्गोरिदम है, ये पुराने RSA से ज़्यादा सिक्योर है और इसकी की भी छोटी होती है। अगर तुम्हारा सिस्टम बहुत पुराना है और इसे सपोर्ट नहीं करता, तो तुमssh-keygen -t rsa -b 4096का इस्तेमाल कर सकते हो।
एक छोटी सी बात, ed25519 से बनी की काफी छोटी होती है, जबकि RSA की फ़ाइल काफी बड़ी होती है। मैंने AI से पूछा तब पता चला, साइज़ से कोई मतलब नहीं है, ये अल्गोरिदम पर निर्भर करता है।
स्टेप दो: पब्लिक की को सर्वर पर अपलोड करो
तरीका A: ssh-copy-id का इस्तेमाल (रेकमेंडेड)
1 | # 在你的电脑上执行 |
पासवर्ड डालते ही, तुम्हारी पब्लिक की अपने-आप सर्वर पर कॉपी हो जाएगी।

तरीका B: मैन्युअली कॉपी करना
अगर ssh-copy-id काम नहीं कर रहा है, तो आप इसे मैन्युअली भी कर सकते हैं:
1 | # 1. 在你的电脑上,查看公钥内容 |
आउटपुट में जो कंटेंट मिलेगा उसे कॉपी कर लें (एक लंबा टेक्स्ट जो ssh-ed25519 से शुरू होता है)।
1 | # 2. 在服务器上,为新用户创建 .ssh 目录, ittinker 换成你刚刚创建的用户名 |
⚠️ परमिशन बहुत मायने रखती है!
SSH फ़ाइल परमिशन को लेकर काफी स्ट्रिक्ट होता है:
.sshडायरेक्टरी: 700 (सिर्फ यूजर ही एक्सेस कर सकता है)authorized_keysफ़ाइल: 600 (सिर्फ यूजर ही पढ़ और लिख सकता है)अगर परमिशन गलत हुए, तो SSH की लॉगिन करने से मना कर देगा।
स्टेप 3: की लॉगिन टेस्ट करना
एक नया टर्मिनल विंडो खोलें (पुराना विंडो बंद मत करना, अगर कॉन्फ़िग में कुछ गलती हो जाए तो पछाड़ लेने के लिए), और की लॉगिन टेस्ट करें:
1 | ssh ittinker@你的服务器IP |
अगर बिना पासवर्ड डाले लॉगिन हो जाता है, तो समझ लो आपकी की सफलतापूर्वक कॉन्फ़िगर हो गई है! 🎉
(अगर आपने प्राइवेट की पर कोई passphrase सेट किया है, तो वह प्राइवेट की का पासवर्ड डालने के लिए कहेगा, यह बिल्कुल नॉर्मल है)

यहाँ हमने एक -i पैरामीटर जोड़ा है, क्योंकि इस की को हमने डिफ़ॉल्ट पाथ पर नहीं, बल्कि मौजूदा पाथ में रखा है। अगर हम इसे स्पेसिफाई नहीं करेंगे, तो सिस्टम डिफ़ॉल्ट की का इस्तेमाल करेगा।
3.4 SSH सुरक्षा हार्डनिंग (Hardening)
अब जबकि की लॉगिन काम करने लगा है, तो चलिए SSH को और सुरक्षित करते हैं:
- डिफ़ॉल्ट पोर्ट बदलें (ताकि स्कैन होने से बच सकें)
- पासवर्ड लॉगिन डिसेबल करें
- root का डायरेक्ट लॉगिन बंद करें
SSH कॉन्फ़िग फ़ाइल एडिट करना
1 | # 备份原配置 |

नीचे दिए गए सेटिंग्स को ढूँढकर उन्हें मॉडिफ़ाई कर लें (कुछ कॉमेंट आउट हो सकते हैं, तो आगे लगा # हटा दें):
1 | # 修改端口(选一个 1024-65535 之间的数字) |

फ़ाइल सेव करके बाहर निकल जाएँ (ctrl + o)।
Nano में सेव करने के लिए ctrl + o दबाएँ, यह फ़ाइल का नाम पूछेगा तो बस एंटर दबा दें, और बाहर निकलने के लिए ctrl + x दबाएँ।
SSH सर्विस रीस्टार्ट करना
1 | systemctl restart sshd.service |
⚠️ ज़रूरी चेतावनी!
मौजूदा टर्मिनल विंडो बंद मत करना! पहले एक नई विंडो खोलकर टेस्ट कर लें कि नई सेटिंग्स से लॉगिन हो पा रहा है या नहीं:
1 ssh -p 22000 yourname@你的服务器IPअगर लॉगिन हो जाता है, तभी पुरानी विंडो बंद करें। अगर लॉगिन नहीं हो पा रहा है, तो आप पुरानी विंडो से ही कॉन्फ़िग ठीक कर सकते हैं।
अगर आपने लाइटवेट सर्वर लिया है, तो ज़्यादातर इस पोर्ट को बदला नहीं जा सकता, जबकि पारंपरिक ECS में इसे मॉडिफ़ाई किया जा सकता है, इसलिए इस बात का ध्यान रखें।
3.5 UFW फ़ायरवॉल सेटअप करना

UFW (Uncomplicated Firewall) Ubuntu का डिफ़ॉल्ट फ़ायरवॉल टूल है, इसका सेटअप बहुत आसान है लेकिन यह काफ़ी पावरफुल है।
बेसिक सेटअप
1 | # 设置默认策略:拒绝所有入站,允许所有出站 |
फ़ायरवॉल चालू करना
1 | ufw enable |
यह प्रॉम्प्ट करेगा:
1 | Command may disrupt existing ssh connections. Proceed with operation (y|n)? |
कन्फ़र्म करने के लिए y टाइप करें।
स्टेटस चेक करना
1 | ufw status verbose |

23022 मेरी टाइपिंग की गलती थी, आप लोग अपनी实际情况 के हिसाब से ही सेट कर लेना
आउटपुट कुछ ऐसा आएगा:
1 | Status: active |
कमांड्स की चीटशीट
1 | # 查看状态 |
3.6 BBR एक्सेलेरेशन चालू करना
BBR (Bottleneck Bandwidth and Round-trip propagation time) Google द्वारा बनाया गया एक TCP कंजेशन कंट्रोल एल्गोरिदम है, जो आपके नेटवर्क की परफॉरमेंस काफी बेहतर कर देता है।
एक क्लिक में चालू करें
1 | # 添加 BBR 配置 |
चालू हुआ या नहीं, उसे वेरिफाई करें
1 | # 查看当前拥塞控制算法 |
आउटपुट कुछ ऐसा होना चाहिए:
1 | net.ipv4.tcp_congestion_control = bbr |
1 | # 确认 BBR 模块已加载 |
आउटपुट कुछ ऐसा आएगा:
1 | tcp_bbr 20480 3 |
💡 BBR का असर
BBR चालू करने के बाद, खासकर तब जब नेटवर्क अस्थिर हो या लेटेंसी बहुत ज्यादा हो, आपको साफ महसूस होगा कि:
- डाउनलोड स्पीड तेज़ हो गई है
- SSH ऑपरेशन्स ज्यादा स्मूद हो गए हैं
- वेबपेज जल्दी लोड हो रहे हैं

3.7 ब्रूट-फोर्स अटैक रोकने के लिए fail2ban सेटअप करना
fail2ban आपके लॉग्स पर नज़र रखता है, और जिन IP से बार-बार लॉगिन फेल होता है, उन्हें अपने आप ब्लॉक कर देता है।
बेसिक कॉन्फ़िगरेशन
1 | # 复制默认配置(不要直接修改 jail.conf) |
[sshd] सेक्शन ढूँढ़ें, और नीचे दी गई कॉन्फ़िगरेशन सेट करें:
1 | [sshd] |

सर्विस शुरू करना
1 | # 重启 fail2ban |
स्टेटस चेक करना
1 | # 查看 fail2ban 状态 |

आउटपुट कुछ ऐसा दिखेगा:
1 | Status for the jail: sshd |
कॉमन कमांड्स
1 | # 手动封禁 IP |
3.8 [वैकल्पिक] SSH Config से कई सर्वर्स को मैनेज करना
अगर आपके पास कई सर्वर्स हैं, तो हर बार ssh -p 22000 user@ip टाइप करना काफी पेंच है। इसे आसान बनाने के लिए आप SSH Config का इस्तेमाल कर सकते हैं।
कॉन्फ़िग फ़ाइल
अपने लोकल कंप्यूटर पर ~/.ssh/config एडिट करें:
1 | vim ~/.ssh/config |
कॉन्फ़िगरेशन ऐड करें:
1 | # 第一台服务器 |
इस्तेमाल कैसे करें
अब आप सीधे एलियास (alias) से कनेक्ट कर सकते हैं:
1 | # 连接第一台服务器 |
अब IP, पोर्ट और यूज़रनेम याद रखने का झंझट खत्म!
3.9 [वैकल्पिक] सिर्फ़ Cloudflare का एक्सेस देना
अगर आपकी वेबसाइट पूरी तरह से Cloudflare के पीछे है, तो आप सेट कर सकते हैं कि 80/443 पोर्ट्स पर सिर्फ़ Cloudflare के IPs का ही एक्सेस हो, इससे सिक्योरिटी बढ़ जाएगी।
⚠️ ध्यान दें: इस कॉन्फ़िगरेशन के लिए ज़रूरी है कि आपका डोमेन पहले से ही Cloudflare CDN से कनेक्ट हो।
ऑटो-कॉन्फ़िग स्क्रिप्ट
1 | # 下载脚本 |
यह स्क्रिप्ट ये करेगी:
- Cloudflare ki official site se latest IP ranges lo
- UFW rules add karo, taaki sirf inhi IPs ko 80/443 access mile
- UFW ko dobara reload karo
Scheduled Update Set Karein
Cloudflare ke IP ranges kabhi badh bhi sakte hain, isliye har hafte automatic update set kar lo:
1 | # 添加 cron 任务(每周一凌晨执行) |
3.10 Timezone Set Karein
Default timezone shayad UTC ho, apne local timezone mein set karo taaki logs check karna aasaan ho:
1 | # 查看当前时区 |

3.11 [Optional] Automatic Security Updates Configure Karein
System ko khud hi security patches install karne do, taaki baar-baar manually karna na pade:
1 | # 安装自动更新工具 |
Automatic updates enable karne ke liye “Yes” select karo.
💡 Yeh feature security updates toh khud install kar deta hai, lekin kisi naye major version mein upgrade nahi karta, isliye kaafi safe hai.
4. Summary
Initialization Checklist
Upar ki saari configuration complete karne ke baad, is checklist se ek baar check kar lo:
| जाँच का मद | कमांड | अपेक्षित रिज़ल्ट |
|---|---|---|
| सिस्टम अपडेट है | apt update && apt list --upgradable |
कोई अपग्रेड के लिए पैकेज नहीं |
| साधारण यूज़र sudo कर सकता है | sudo whoami |
आउटपुट root |
| की-बेस्ड लॉगिन काम कर रहा है | ssh yourname@ip -p port |
बिना पासवर्ड लॉगिन |
| पासवर्ड लॉगिन बंद है | grep PasswordAuth /etc/ssh/sshd_config |
PasswordAuthentication no |
| SSH पोर्ट बदल दिया गया है | grep Port /etc/ssh/sshd_config |
आपके द्वारा सेट किया गया पोर्ट |
| फ़ायरवॉल चालू है | ufw status |
Status: active |
| BBR ऑन है | sysctl net.ipv4.tcp_congestion_control |
= bbr |
| fail2ban चल रहा है | systemctl status fail2ban |
active (running) |
| टाइमज़ोन सेट है | timedatectl |
Asia/Shanghai या आपका टाइमज़ोन |
| लोकल SSH Config | cat ~/.ssh/config |
सर्वर उपनाम कॉन्फ़िगर है |
ज़रूरी फ़ाइलों का लोकेशन
1 | /etc/ssh/sshd_config # SSH 服务端配置 |
सिक्योरिटी की बेस्ट प्रैक्टिस
- सिस्टम को समय-समय पर अपडेट करते रहें:
apt update && apt upgrade - लॉगिन लॉग्स समय-समय पर चेक करें:
lastb(फेल्ड लॉगिन),last(सक्सेसफुल लॉगिन) - fail2ban की बैनिंग पर हमेशा नज़र रखें
- ज़रूरी कॉन्फ़िग फ़ाइलों को बदलने से पहले बैकअप ज़रूर लें
5. ट्रबलशूटिंग लॉग
Q1: की-बेस्ड लॉगिन फेल हो रहा है, और बार-बार पासवर्ड माँग रहा है?
संभावित कारण:
-
अनुमति (Permission) की दिक्कत (सबसे आम कारण)
1
2
3# 检查并修复权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys -
Public Key सही से कॉपी नहीं हुआ
1
2
3# 检查 authorized_keys 内容
cat ~/.ssh/authorized_keys
# 应该是一行完整的公钥,以 ssh-ed25519 或 ssh-rsa 开头 -
SELinux का रुकावट आना (CentOS/RHEL सिस्टम में)
1
restorecon -Rv ~/.ssh
Q2: पोर्ट बदलने के बाद कनेक्ट नहीं हो पा रहे?
ट्रबलशूटिंग के स्टेप्स:
-
पक्का करें कि नया पोर्ट फायरवॉल में ओपन है:
1
ufw status | grep 你的端口
-
सुनिश्चित करें कि SSH कॉन्फ़िगरेशन सही है:
1
grep Port /etc/ssh/sshd_config
-
चेक करें कि SSH सर्विस रन कर रही है:
1
systemctl status sshd
-
अगर बिल्कुल कनेक्ट नहीं हो रहे, तो अपने क्लाउड प्रोवाइडर के VNC/कंसोल का इस्तेमाल करके लॉगिन करें और ठीक करें।
Q2.5: पोर्ट बदलना बिल्कुल असर नहीं कर रहा? (क्लाउड प्रोवाइडर के लाइटवेट सर्वर में)
लक्षण: आपने /etc/ssh/sshd_config बदल दिया, सर्विस रीस्टार्ट करने के बाद भी पोर्ट 22 अब भी चालू है और नया पोर्ट काम नहीं कर रहा।
डायग्नोसिस का तरीका:
bash
1 | # 查看是谁在监听 22 端口 |
अगर आउटपुट कुछ ऐसा आता है:
1 | tcp 0 0.0.0.0:22 0.0.0.0:* LISTEN 1/init |
इसका मतलब है कि पोर्ट 22 को init (PID 1) सुन रहा है, न कि sshd प्रोसेस।
वजह: कुछ क्लाउड प्रोवाइडर्स के ‘Light Application Server’ या ‘Container Instance’ का SSH पूरी तरह से प्लेटफ़ॉर्म लेयर द्वारा प्रॉक्सी किया जाता है, इसलिए आपके सर्वर के अंदर की sshd कॉन्फ़िगरेशन का कोई असर नहीं पड़ता।
समाधान:
| इंस्टेंस टाइप | SSH पोर्ट बदलने का तरीका |
|---|---|
| पारंपरिक ECS | sshd_config में बदलाव करें ✅ |
| लाइटवेट सर्वर | शायद क्लाउड कंसोल से बदलना पड़े, या शायद यह सपोर्ट ही न करे |
| कंटेनर इंस्टेंस | आमतौर पर बदलने का सपोर्ट नहीं होता |
अगर आपका इंस्टेंस पोर्ट बदलने का सपोर्ट नहीं करता, तो बाकी सिक्योरिटी उपाय और भी ज़्यादा ज़रूरी हो जाते हैं:
- ✅ एक नॉर्मल यूज़र बनाएं + root लॉगिन डिसेबल करें
- ✅ SSH की (key) से लॉगिन + पासवर्ड लॉगिन डिसेबल करें
- ✅ ब्रूट-फ़ोर्स अटैक रोकने के लिए fail2ban इस्तेमाल करें
अगर आपने इन सब उपायों को ठीक से लागू कर लिया, तो आपकी सिक्योरिटी फिर भी काफ़ी बढ़िया रहेगी।
Q3: fail2ban ने मुझे ही ब्लॉक कर दिया?
1 | # 用 VNC 登录后解封 |
Q4: UFW चालू करने के बाद वेबसाइट एक्सेस नहीं हो रही?
1 | # 检查 80/443 是否开放 |
Q5: कमांड रन करने पर sudo नहीं मिल रहा?
Debian के मिनिमल इंस्टॉलेशन में sudo पहले से नहीं होता, इसलिए root के ज़रिए इंस्टॉल करें:
1 | apt install sudo |
6. वन-क्लिक इनिशियलाइज़ेशन स्क्रिप्ट (हाथ बन जाने के बाद इस्तेमाल के लिए)
अगर आप ऊपर बताए गए सभी स्टेप्स से अच्छी तरह वाक़िफ़ हो चुके हैं, तो आप इस स्क्रिप्ट का इस्तेमाल करके चुटकी में इनिशियलाइज़ेशन कर सकते हैं।
⚠️ ध्यान दें: स्क्रिप्ट चलाने से पहले, पक्का कर लें कि आपके पास आपकी SSH पब्लिक की तैयार है।
1 |
|
7. ये सब करने के बाद, सिक्योरिटी कितनी बेहतर हुई?
| स्टेप | क्या किया | क्यों ज़रूरी है |
|---|---|---|
| सिस्टम अपडेट | लेटेस्ट पैच इंस्टॉल किए | ज्ञात वल्नरेबिलिटी (कमज़ोरियों) को फिक्स करने के लिए |
| नया यूज़र बनाना | अब सीधे root का इस्तेमाल नहीं करेंगे | गलती से कुछ गड़बड़ होने का रिस्क कम हुआ |
| SSH की | पासवर्ड की जगह की का इस्तेमाल | इसे ब्रूट-फ़ोर्स से हैक नहीं किया जा सकता |
| पोर्ट बदलना | डिफ़ॉल्ट पोर्ट 22 से बच गए | स्कैन होने के चांस कम हो गए |
| पासवर्ड डिसेबल करना | अब सिर्फ़ की से ही लॉगिन होगा | पासवर्ड अटैक का खतरा पूरी तरह खत्म |
| root डिसेबल करना | root अब सीधे लॉगिन नहीं कर सकता | हैकर्स के लिए अटैक करना और भी मुश्किल |
| UFW फ़ायरवॉल | सिर्फ़ ज़रूरी पोर्ट्स ही खुले | अटैक सरफ़ेस यानी गड़बड़ होने का एरिया कम हुआ |
| BBR एक्सिलरेशन | नेटवर्क परफ़ॉरमेंस ऑप्टिमाइज़ की | ऐक्सेस स्पीड बेहतर हुई |
| fail2ban | मज़ाकिया/खतरनाक IP को ऑटोमैटिक ब्लॉक करता है | लगातार होने वाले अटैक्स को रोकने के लिए |
ये सब सेटअप कर लेने के बाद, आपके सर्वर की सिक्योरिटी 90% VPS से बेहतर हो चुकी है।
अगले आर्टिकल की झलक
अगले भाग में हम SSH की लॉगिन कॉन्फ़िगरेशन क्विक रेफ़रेंस पर बात करेंगे, जिसमें हम इन बातों को और डिटेल में देखेंगे:
- अलग-अलग OS में की जनरेट करने का तरीका
- कई की का मैनेजमेंट
- SSH Agent कॉन्फ़िगरेशन
- कुछ आम SSH क्लाइंट सेटिंग्स
इस आर्टिकल को आखिरी बार अपडेट किया गया: जनवरी 2026
इंडी डेवलपर टूलबॉक्स सीरीज़, फ़ॉलो करने के लिए आपका स्वागत है!




