Home Knowledge base Skyline Cloud UFW और Fail2ban के साथ Linux सर्वर को कैसे सुरक्षित करें KNOWLEDGE BASE

UFW और Fail2ban के साथ Linux सर्वर को कैसे सुरक्षित करें

UFW फ़ायरवॉल और Fail2ban इंट्रूज़न प्रिवेंशन के साथ Linux सर्वर को लॉक डाउन करने की व्यावहारिक, चरण-दर-चरण मार्गदर्शिका — अनुपयोगी पोर्ट बंद करें, SSH को रेट-लिमिट करें, और ब्रूट-फोर्स हमलावरों को स्वचालित रूप से बैन करें।

UFW और Fail2ban के साथ Linux सर्वर को कैसे सुरक्षित करें

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 10m1h बार-बार अपराध करने वालों को दंडित करता है
maxretry 35 कड़ा पर टाइपो के प्रति सहनशील
ignoreip आपके एडमिन IP खुद को लॉक होने से बचाएँ

और आगे बढ़ना

प्रोडक्शन सर्वर के लिए, आप जो भी सेवा उजागर करते हैं उसके लिए jails भी सक्षम करें (उदाहरण के लिए nginx-http-auth या आपका मेल स्टैक), पासवर्ड के बजाय SSH कुंजियों का उपयोग करें, और एक लंबे या बढ़ते हुए bantime पर विचार करें। UFW और Fail2ban एक मज़बूत आधार-रेखा हैं, संपूर्ण सुरक्षा कार्यक्रम नहीं — पैकेजों को पैच किया हुआ रखें और क्लाउड बैकअप के साथ नियमित रूप से बैकअप लें।

अपने वर्कलोड को इन-किंगडम होस्ट करना प्रदर्शन के लिए और डेटा-निवास (data-residency) आवश्यकताओं के लिए मायने रखता है। Skyline Cloud सऊदी अरब के भीतर क्लाउड सर्वर, VPS, और डेडिकेटेड हार्डवेयर चलाता है, साथ में स्थानीय अरबी सहायता और पारदर्शी मूल्य निर्धारण।

एक हार्डन किया हुआ सर्वर तैनात करने के लिए तैयार हैं? अपना Skyline Cloud खाता बनाएँ और मिनटों में एक VPS लॉन्च करें।

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.