वेब सर्वर में AI सक्रिय फ़ायरवॉल लागू करने की कहानी

वेब सर्वर में AI सक्रिय फ़ायरवॉल लागू करने की कहानी

6 min read

2026.04 / Tech Blog / BASTION

वेब सर्वर पर AI Active Firewall का इम्प्लीमेंटेशन #

हमने एक ऐसा सिस्टम इम्प्लीमेंट किया जिसमें एक local LLM उन अज्ञात Bot पैटर्न और स्पैम रिक्वेस्ट का विश्लेषण करता है जिन्हें Fail2Ban के फिक्स्ड थ्रेशोल्ड पकड़ नहीं पाते, और हर 15 मिनट में उन्हें अपने आप ब्लॉक कर देता है। मौजूदा nginx + Fail2Ban सेटअप के ऊपर हमने एक AI विश्लेषण लेयर जोड़ी, जिससे 3-लेयर डिफेंस स्ट्रक्चर बना।

Fail2Ban बेहतरीन है, लेकिन “अज्ञात” खतरों के सामने कमजोर #

nginx UA मैपिंग + रेट लिमिटिंग + Fail2Ban का कॉम्बिनेशन वेब सर्वर पर Bot सुरक्षा का स्टैंडर्ड है। जो IP एक मिनट में 10 बार 403 एरर पैदा करे, उसे एक घंटे के लिए बैन कर दो। सरल और भरोसेमंद।

हालांकि, इस अप्रोच में एक स्ट्रक्चरल कमजोरी है।

Fail2Ban के थ्रेशोल्ड “फिक्स्ड” होते हैं। यह सिर्फ “403 एरर 10 बार/मिनट” जैसी स्टैटिक शर्तों पर ही ट्रिगर होता है। User-Agent बदलते हुए धीरे-धीरे क्रॉल करने वाले Bot, 403 की बजाय 200 लौटाने वाले पाथ को निशाना बनाने वाला स्पैम, और वैध ब्राउज़र User-Agent की नकल करने वाला हाई-फ्रीक्वेंसी एक्सेस — ये सब Fail2Ban के थ्रेशोल्ड से बचकर निकल जाते हैं। जिन पैटर्न को एक इंसान एक्सेस लॉग मैन्युअली देखते ही तुरंत संदिग्ध पहचान लेता, उन्हें फिक्स्ड रूल्स पकड़ नहीं पाते।

BASTION ऐसे “पैटर्न जिन्हें इंसान तो नोटिस कर लेता लेकिन फिक्स्ड रूल्स नहीं पकड़ पाते” पर निर्णय एक local LLM से करवाता है।

3-लेयर डिफेंस स्ट्रक्चर #

हमने मौजूदा nginx + Fail2Ban सेटअप के ऊपर BASTION की AI विश्लेषण लेयर जोड़ी, जिससे 3-लेयर स्ट्रक्चर बना।

लेयरजिम्मेदारीनिर्णय का तरीकारिस्पॉन्स स्पीड
Layer 1nginx (UA मैपिंग / रेट लिमिटिंग / deny.conf)स्टैटिक रूल्सतत्काल (प्रति रिक्वेस्ट)
Layer 2Fail2Ban (firewalld इंटीग्रेशन)फिक्स्ड थ्रेशोल्ड (403 एरर 10 बार/मिनट)1 मिनट के भीतर
Layer 3BASTION (LLM विश्लेषण → SSH के जरिए firewalld)LLM लॉग के संदर्भ को परखता है15 मिनट के भीतर

हर लेयर स्वतंत्र रूप से काम करती है। यदि Fail2Ban पहले किसी IP को बैन कर दे, तो BASTION डुप्लिकेट चेकिंग करके दोहरे ब्लॉकिंग को रोकता है। BASTION की ताकत है इसकी “अज्ञात पैटर्न पकड़ने की क्षमता”।

मॉनिटरिंग आइटम #

BASTION का वेब सर्वर मॉनिटरिंग टेम्पलेट हर 15 मिनट में निम्नलिखित 6 कैटेगरी का विश्लेषण करता है।

कैटेगरीडेटा सोर्सडिटेक्शन की सामग्री
HTTP स्टेटस डिस्ट्रीब्यूशनएक्सेस लॉग403/429/5xx के कंसन्ट्रेटेड IP। सामान्य स्थिति से विचलन
Bot User-Agent डिटेक्शनएक्सेस लॉगअज्ञात Bot User-Agent × हाई-फ्रीक्वेंसी रिक्वेस्ट
स्पैम रिक्वेस्टएक्सेस लॉगभाषा-स्विचिंग फ्लड जैसे विशिष्ट पैरामीटर स्पैम
मैलवेयर डिटेक्शनClamAV लॉगअपलोड की गई फ़ाइलों में वायरस डिटेक्शन
SSH ऑथेंटिकेशन फेल्योरsshd लॉगFailed password / Invalid user
एप्लिकेशन एररPHP-FPM लॉगFATAL/ERROR लेवल

ब्लॉकिंग का मैकेनिज्म #

WAN बाउंडरी फ़ायरवॉल की बजाय वेब सर्वर पर ब्लॉक क्यों #

BASTION का रिएक्टिव डिफेंस सामान्यतः WAN बाउंडरी फ़ायरवॉल API (जैसे OPNsense) पर अटैक-सोर्स IP को ब्लॉक करता है (पिछला लेख देखें)। हालांकि, जिन कॉन्फ़िगरेशन में वेब सर्वर DNAT के जरिए एक्सपोज़ होता है, वहां WAN बाउंडरी फ़ायरवॉल की ब्लॉकलिस्ट वेब सर्वर की ओर जाने वाले ट्रैफिक को कैप्चर नहीं कर पाती।

इसलिए हमने एक स्वतंत्र डिफेंस पाथ तैयार किया जो ब्लॉकिंग रूल्स सीधे वेब सर्वर के firewalld + nginx deny.conf में लगाता है।

BASTION (Analysis Server)
  → SSH connection (dedicated service account, public key authentication, minimum privilege sudo)
  → firewall-cmd drops IP (L3/L4 level)
  → nginx deny.conf appends IP + reload (L7 level)

SSH कनेक्शन की सुरक्षा #

विश्लेषण सर्वर से वेब सर्वर तक SSH कनेक्शन एक समर्पित सर्विस अकाउंट का उपयोग करते हैं, जिसमें sudo अधिकार केवल आवश्यक कमांड तक सीमित हैं।

# sudoers authorized commands (nothing else can execute)
svc-monitor ALL=(root) NOPASSWD: /usr/bin/firewall-cmd
svc-monitor ALL=(root) NOPASSWD: /usr/sbin/nginx
svc-monitor ALL=(root) NOPASSWD: /usr/bin/tee -a /etc/nginx/deny.d/*
svc-monitor ALL=(root) NOPASSWD: /usr/bin/sed -i * /etc/nginx/deny.d/*

root लॉगिन की बजाय हमने न्यूनतम-अधिकार डिज़ाइन वाला एक समर्पित सर्विस अकाउंट बनाया, जो ISMS ऑडिट का सामना कर सकता है।

Fail2Ban से अंतर #

Fail2BanBASTION
निर्णय का तरीकाफिक्स्ड थ्रेशोल्ड (“403 N बार/मिनट”)LLM लॉग का संदर्भ पढ़कर निर्णय करता है
अज्ञात पैटर्नडिटेक्ट नहीं कर सकता (रूल अपडेट चाहिए)लॉग की असामान्यता के पैटर्न अपने आप डिटेक्ट करता है
User-Agent स्पूफिंग403 रिस्पॉन्स के बिना डिटेक्ट नहीं कर सकतारिक्वेस्ट फ्रीक्वेंसी × पाथ × समय के आधार पर परखता है
ClamAV इंटीग्रेशननहींFOUND डिटेक्शन → अपलोड-सोर्स IP ट्रेस → ब्लॉक
नोटिफिकेशनईमेल (MTA पर निर्भर)Slack (तुरंत नोटिफिकेशन, इंटरैक्टिव ऑपरेशन)
अनब्लॉकbantime से फिक्स्ड24 घंटे बाद ऑटो-अनब्लॉक + Slack से तुरंत अनब्लॉक
ऑडिटfail2ban.logस्ट्रक्चर्ड ऑडिट लॉग ([HB_BLOCK]/[HB_UNBLOCK] टैग)

BASTION, Fail2Ban को रिप्लेस करने की बजाय उसके साथ मिलकर काम करता है। Fail2Ban “403 फ्लड” को 1 मिनट के भीतर डिटेक्ट करके बैन कर देता है। BASTION 15-मिनट की आवधिक LLM विश्लेषण के जरिए “वे स्पष्ट रूप से अस्वाभाविक पैटर्न जिनसे 403 नहीं बनता” डिटेक्ट करता है। चूंकि दोनों अलग-अलग क्षेत्र कवर करते हैं, दोनों को साथ चलाने से ब्लाइंड स्पॉट कम हो जाते हैं।

वास्तविक ऑपरेशन #

विश्लेषण रिपोर्ट #

15-मिनट की आवधिक विश्लेषण के साथ, वेब सर्वर सेक्शन अपने आप आउटपुट होता है।

incoming-webhook 07:15

वेब सर्वर विस्तृत विश्लेषण

रिक्वेस्ट: 1,847
स्टेटस: 200=1,650 / 403=112 / 429=45 / 5xx=0
403 कंसन्ट्रेटेड IP: xxx.xxx.156.12 (40 बार) — User-Agent: GPTBot/1.0
Bot संदिग्ध User-Agent: “SomeNewBot/2.0” (180 बार/15 मिनट) — अपंजीकृत User-Agent
ClamAV: कोई डिटेक्शन नहीं
SSH फेल्योर: 0 / PHP-FPM ERROR: 0

ऑटोमैटिक ब्लॉक एक्जीक्यूशन #

incoming-webhook 00:53

🛡️ वेब सर्वर ब्लॉक एक्जीक्यूशन

IP: xx.xxx.156.12
कारण: bot_spam
firewalld: drop जोड़ा गया
nginx deny: लागू

मैन्युअल अनब्लॉक: @OpenClaw-Monitor unblock xx.xxx.156.12

ClamAV FOUND डिटेक्शन पर ऑटोमैटिक रिस्पॉन्स #

जब ClamAV किसी अपलोड की गई फ़ाइल में मैलवेयर डिटेक्ट करता है, तो BASTION तुरंत CRITICAL निर्धारण आउटपुट करता है। ClamAV खुद केवल फ़ाइल को क्वारंटीन करता है, लेकिन BASTION एक कदम आगे जाकर एक्सेस लॉग से अपलोड-सोर्स IP की पहचान करता है और उसे firewalld से अपने आप ब्लॉक कर देता है। दो-तरफा अप्रोच: फ़ाइल क्वारंटीन (ClamAV) + नेटवर्क आइसोलेशन (BASTION)।

nginx deny.conf का “बेस्ट-एफर्ट” डिज़ाइन #

हमने firewalld ब्लॉकिंग और nginx deny.conf के साथ दोहरा डिफेंस डिज़ाइन किया, लेकिन इसे इस तरह भी डिज़ाइन किया कि जिन एनवायरनमेंट में nginx deny.conf डायरेक्टरी कॉन्फ़िगरेशन नहीं है, वहां अकेला firewalld ही सुरक्षा देता रहे। यदि deny.conf उपयोग नहीं हो पाता, तो उसे “skipped” के रूप में लॉग किया जाता है और firewalld अकेले चलता रहता है। बाद में nginx include कॉन्फ़िगरेशन जोड़ते ही nginx deny बिना कोड बदले अपने आप सक्रिय हो जाएगा। यह डिज़ाइन एनवायरनमेंट की तैयारी के अनुसार क्रमिक मजबूती की अनुमति देता है।

सारांश #

हमने वेब सर्वर में BASTION की AI विश्लेषण लेयर जोड़कर nginx (Layer 1) → Fail2Ban (Layer 2) → BASTION (Layer 3) का 3-लेयर डिफेंस बनाया। जिन अज्ञात Bot पैटर्न और स्पैम रिक्वेस्ट को फिक्स्ड थ्रेशोल्ड पकड़ नहीं पाते, उन्हें local LLM हर 15 मिनट में अपने आप डिटेक्ट करता है और firewalld तुरंत ब्लॉक कर देता है।

SSH कनेक्शन समर्पित अकाउंट, न्यूनतम-अधिकार sudo और public key ऑथेंटिकेशन का उपयोग करते हैं। nginx deny.conf बेस्ट-एफर्ट डिज़ाइन पर आधारित है और एनवायरनमेंट की तैयारी के अनुसार क्रमिक रूप से सक्षम किया जा सकता है। BASTION, Fail2Ban के साथ मिलकर काम करता है, और दोनों अलग-अलग क्षेत्र कवर करते हैं।

BASTION एक ऐसी सर्विस है जो क्लोज़्ड एनवायरनमेंट में AI सिक्योरिटी मॉनिटरिंग सक्षम बनाती है।

BASTION सर्विस पेज
हमसे संपर्क करें

Updated on 2026 वर्ष 6 माह 10 दिन

What are your feelings

  • Happy
  • Normal
  • Sad