UFW फ़ायरवॉल और Fail2ban इंट्रूज़न प्रिवेंशन के साथ Linux सर्वर को लॉक डाउन करने की एक व्यावहारिक, चरण-दर-चरण मार्गदर्शिका — अनुपयोगी पोर्ट बंद करें, SSH को रेट-लिमिट करें, और ब्रूट-फोर्स हमलावरों को स्वचालित रूप से बैन करें।
आप क्या बनाएँगे
इंटरनेट पर हर सार्वजनिक रूप से सुलभ सर्वर के लाइव होने के कुछ ही मिनटों के भीतर उस पर जाँच (probe) शुरू हो जाती है — स्वचालित बॉट खुले पोर्ट खोजते हैं और क्रेडेंशियल अनुमान लगाकर SSH पर लगातार हमला करते हैं। दो हल्के, परीक्षित और भरोसेमंद टूल इसका अधिकांश हिस्सा आपके लिए संभाल लेते हैं:
- UFW (Uncomplicated Firewall) —
iptables/nftablesका एक सरल फ़्रंट-एंड जो नियंत्रित करता है कि कौन-से पोर्ट खुले हैं। - Fail2ban — लॉग फ़ाइलों पर नज़र रखता है ताकि बार-बार असफल लॉगिन का पता चल सके और अपराधी IP पतों को अस्थायी रूप से बैन कर सके।
यह ट्यूटोरियल Debian या Ubuntu सर्वर पर इन दोनों को कॉन्फ़िगर करने की प्रक्रिया बताता है (अन्य डिस्ट्रिब्यूशन पर कमांड लगभग समान होती हैं)। यह तब लागू होता है चाहे आप क्लाउड सर्वर, VPS, या डेडिकेटेड मशीन चलाते हों, और यह हमारे VPS और क्लाउड सर्वर नॉलेज क्लस्टर का हिस्सा है।
आवश्यक शर्तें
- एक Linux सर्वर जिस तक आप SSH के ज़रिए पहुँच सकें।
sudoविशेषाधिकार वाला एक उपयोगकर्ता (किसी फ़ॉलबैक के बिना उजागर कनेक्शन पर इसे कभीrootके रूप में न करें)।- आपका SSH पोर्ट (डिफ़ॉल्ट
22है; यदि आपने इसे बदला है, तो हर जगह अपना वास्तविक मान उपयोग करें)।
चेतावनी: एक फ़ायरवॉल आपको बाहर लॉक कर सकता है। UFW सक्षम करने से पहले सुनिश्चित करें कि SSH की अनुमति देने वाला नियम मौजूद है। यदि आप किसी क्लाउड प्रदाता का उपयोग करते हैं, तो उसका वेब कंसोल या रिकवरी एक्सेस खुला रखें ताकि कोई गलती होने पर आप पुनः पहुँच प्राप्त कर सकें।
चरण 1 — UFW इंस्टॉल और कॉन्फ़िगर करें
UFW अधिकांश Ubuntu इमेज के साथ आता है। यदि आवश्यक हो तो इसे इंस्टॉल करें:
sudo apt update
sudo apt install ufw
समझदारी भरे डिफ़ॉल्ट सेट करें — सभी इनकमिंग ट्रैफ़िक को अस्वीकार करें, सभी आउटगोइंग की अनुमति दें:
sudo ufw default deny incoming
sudo ufw default allow outgoing
यह एक अच्छी फ़ायरवॉल स्थिति का मूल है: जब तक आप स्पष्ट रूप से अनुमति न दें, तब तक कुछ भी आपकी सेवाओं तक नहीं पहुँचता।
चरण 2 — केवल उन सेवाओं की अनुमति दें जिनकी आपको वास्तव में आवश्यकता है
फ़ायरवॉल चालू करने से पहले, अपने सर्वर द्वारा उपयोग किए जाने वाले पोर्ट खोलें। हमेशा सबसे पहले SSH की अनुमति दें अन्यथा आपका कनेक्शन कट जाएगा:
sudo ufw allow OpenSSH
UFW /etc/ufw/applications.d से नामित एप्लिकेशन प्रोफ़ाइल पढ़ता है। sudo ufw app list के साथ देखें कि क्या उपलब्ध है। यदि आपने अपना SSH पोर्ट बदला है, तो इसके बजाय इसे स्पष्ट रूप से अनुमति दें:
sudo ufw allow 2222/tcp
यदि आप कोई साइट या व्यावसायिक ईमेल और वेब सेवाएँ चलाते हैं तो वेब ट्रैफ़िक खोलें:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
आप किसी नियम को एक विश्वसनीय स्रोत तक सीमित कर सकते हैं — उदाहरण के लिए, केवल अपने एप्लिकेशन सर्वर से डेटाबेस एक्सेस की अनुमति दें:
sudo ufw allow from 10.0.0.5 to any port 3306 proto tcp
चरण 3 — SSH को रेट-लिमिट करें और फ़ायरवॉल सक्षम करें
UFW का limit नियम किसी भी ऐसे IP से कनेक्शन को सीमित कर देता है जो 30 सेकंड में 6 बार से अधिक कनेक्ट करने का प्रयास करता है — ब्रूट-फोर्स टूल के विरुद्ध एक सस्ता, प्रभावी अवरोध:
sudo ufw limit OpenSSH
अब फ़ायरवॉल सक्षम करें:
sudo ufw enable
क्रमांकित सूची के साथ अपने नियमों की पुष्टि करें:
sudo ufw status numbered
अपेक्षित आउटपुट कुछ इस तरह दिखता है:
Status: active
To Action From
-- ------ ----
[ 1] OpenSSH LIMIT Anywhere
[ 2] 80/tcp ALLOW Anywhere
[ 3] 443/tcp ALLOW Anywhere
किसी नियम को हटाने के लिए, उसके क्रमांक का संदर्भ दें: sudo ufw delete 2।
चरण 4 — Fail2ban इंस्टॉल करें
UFW पोर्ट बंद करता है, लेकिन जिन पोर्ट को आपको खुला रखना ही पड़ता है (जैसे SSH) वे अब भी अनुमान लगाने के लिए उजागर रहते हैं। Fail2ban लॉग पर नज़र रखता है और बार-बार अपराध करने वालों को बैन करता है:
sudo apt install fail2ban
आधुनिक सिस्टम पर Fail2ban अपना जर्नल systemd के माध्यम से पढ़ता है, इसलिए यह बिना किसी अतिरिक्त सेटअप के काम करता है। पुष्टि करें कि सेवा चल रही है:
sudo systemctl status fail2ban
चरण 5 — jail.local फ़ाइल के साथ Fail2ban कॉन्फ़िगर करें
jail.conf को कभी सीधे संपादित न करें — यह अपग्रेड पर ओवरराइट हो जाती है। इसके बजाय एक लोकल ओवरराइड बनाएँ:
sudo nano /etc/fail2ban/jail.local
निम्नलिखित जोड़ें:
[DEFAULT]
# Don't ban your own trusted networks. Add your office/home IP.
ignoreip = 127.0.0.1/8 ::1
# How long a ban lasts (10 minutes).
bantime = 10m
# Time window for counting failures.
findtime = 10m
# Failures allowed before a ban.
maxretry = 5
# Tell Fail2ban to act through UFW.
banaction = ufw
[sshd]
enabled = true
[sshd] jail /etc/fail2ban/filter.d/sshd.conf पर मौजूद अंतर्निहित sshd फ़िल्टर का उपयोग करता है। banaction = ufw सेट करने से Fail2ban कच्चे iptables को छुए बिना आपके मौजूदा फ़ायरवॉल के माध्यम से deny नियम सम्मिलित करता है।
लागू करने के लिए पुनः आरंभ करें:
sudo systemctl restart fail2ban
चरण 6 — सत्यापित और निगरानी करें
समग्र स्थिति और विशेष रूप से SSH jail की जाँच करें:
sudo fail2ban-client status
sudo fail2ban-client status sshd
jail स्थिति वर्तमान में असफल और बैन किए गए IP दिखाती है:
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 23
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 4
`- Banned IP list: 203.0.113.42
किसी पते को मैन्युअल रूप से अनबैन करने के लिए:
sudo fail2ban-client set sshd unbanip 203.0.113.42
अनुशंसित आधार-रेखा (baseline)
| सेटिंग | मान | क्यों |
|---|---|---|
| UFW डिफ़ॉल्ट इनकमिंग | deny |
डिफ़ॉल्ट रूप से बंद |
| SSH नियम | limit |
ब्रूट फोर्स को धीमा करता है |
bantime |
10m–1h |
बार-बार अपराध करने वालों को दंडित करता है |
maxretry |
3–5 |
कड़ा पर टाइपो के प्रति सहनशील |
ignoreip |
आपके एडमिन IP | खुद को लॉक होने से बचाएँ |
और आगे बढ़ना
प्रोडक्शन सर्वर के लिए, आप जो भी सेवा उजागर करते हैं उसके लिए jails भी सक्षम करें (उदाहरण के लिए nginx-http-auth या आपका मेल स्टैक), पासवर्ड के बजाय SSH कुंजियों का उपयोग करें, और एक लंबे या बढ़ते हुए bantime पर विचार करें। UFW और Fail2ban एक मज़बूत आधार-रेखा हैं, संपूर्ण सुरक्षा कार्यक्रम नहीं — पैकेजों को पैच किया हुआ रखें और क्लाउड बैकअप के साथ नियमित रूप से बैकअप लें।
अपने वर्कलोड को इन-किंगडम होस्ट करना प्रदर्शन के लिए और डेटा-निवास (data-residency) आवश्यकताओं के लिए मायने रखता है। Skyline Cloud सऊदी अरब के भीतर क्लाउड सर्वर, VPS, और डेडिकेटेड हार्डवेयर चलाता है, साथ में स्थानीय अरबी सहायता और पारदर्शी मूल्य निर्धारण।
एक हार्डन किया हुआ सर्वर तैनात करने के लिए तैयार हैं? अपना Skyline Cloud खाता बनाएँ और मिनटों में एक VPS लॉन्च करें।

Comments
0 total · 0 threads