
सर्वर तक बुरे बॉट्स की पहुँच को रोकने की प्रक्रिया को स्वचालित करें
एक TUI, एक वेब कंसोल और एक CLI जो आपको अपने सर्वर को कॉन्फ़िगर करने में मदद करते हैं ताकि आप CDN के पीछे छिपे बिना खराब बॉट्स को रोक सकें।
यह NGINX और आपके मौजूदा फ़ायरवॉल (nftables या iptables) के साथ मिलकर काम करता है:

ऐप अपनी पूरी कोशिश करता है कि आप सर्वर से लॉक आउट न हों, लेकिन आप इसे अपने जोखिम पर उपयोग करते हैं। और ध्यान दें कि यह AGPL के अंतर्गत लाइसेंस प्राप्त है, इसलिए यदि आप इसे व्यावसायिक रूप से उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप लाइसेंस का पालन करते हैं।
Debian या Ubuntu पर, APT रिपॉजिटरी से:
curl -fsSL https://ivankovic.github.io/stop-bots/key.gpg \
| sudo tee /usr/share/keyrings/stop-bots.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/stop-bots.gpg] \
https://ivankovic.github.io/stop-bots stable main" \
| sudo tee /etc/apt/sources.list.d/stop-bots.list
sudo apt update && sudo apt install stop-bots
यह पैकेज man stop-bots (और प्रत्येक क्रिया के लिए एक पृष्ठ, जैसे man stop-bots-batch) तथा
bash, zsh और fish completions प्रदान करता है। यह कोई सेवा इंस्टॉल नहीं करता और कुछ भी शुरू नहीं करता।
या crates.io से, Rust 1.88 या नए संस्करण के साथ:
cargo install stop-bots
या GitHub releases से x86_64 या aarch64 Linux के लिए एक स्टैटिक बाइनरी डाउनलोड करें।
install ऐसे होस्ट को अस्वीकार कर देता है जो Debian या उसका डेरिवेटिव नहीं है।nft, या iptables-restore और ip6tables-restore; बाकी के लिए nginx। कंटेनर में NGINX भी काम करता है — देखें Running NGINX in a container।sudo stop-bots TUI शुरू करता है। इसे root चाहिए: यह /etc/nginx को फिर से लिखता है और फ़ायरवॉल नियम लोड करता है।u हर सूची डाउनलोड करता है: बॉट सूचियाँ, क्रॉलर IP रेंज, और कोई भी फ़ीड या देश जो आपने चालू किया है।1) में होस्ट-व्यापी नीति होती है: कौन-सी बॉट श्रेणियाँ ब्लॉक हैं, देश, और वे डिटेक्टर जो आपके लॉग पढ़ते हैं। NGINX स्क्रीन (4) पर, r आपकी साइटें ढूँढता है। Blocks स्क्रीन (5) में हर वह नियम सूचीबद्ध होता है जो डिटेक्टरों या आपने जोड़ा, और क्यों।a सब कुछ लागू करता है। यह पहले दिखाता है कि क्या बदलेगा — फ़ाइलें, जोड़े और हटाए गए नियम, और लॉकआउट जाँच का निर्णय (d diff के लिए) — और पूछता है।sudo stop-bots install firewall लागू किए गए नियमों को रीबूट के बाद भी बनाए रखता है। इसके बिना, रीबूट के बाद कोई नियम नहीं रहता।sudo stop-bots status कर्नेल, यूनिट्स और फ़ाइलों की जाँच करता है, और बताता है कि क्या गायब है।sudo stop-bots status
sudo stop-bots batch --dry-run --diff
sudo stop-bots batch --apply
sudo stop-bots install firewall
sudo stop-bots status
batch --dry-run कुछ भी डाउनलोड और स्कैन नहीं करता: बिल्कुल नए इंस्टॉल पर यह बाइनरी में बनी बॉट सूची से NGINX ब्लॉक दिखाता है, और अभी तक कोई फ़ायरवॉल नियम नहीं, क्योंकि आपके लॉग से कुछ भी पढ़ा नहीं गया है। --apply के बिना sudo stop-bots batch डाउनलोड और स्कैन करता है और समीक्षा के लिए फ़ाइलें लिखता है, बिना उन्हें लागू किए। batch क्या करता है, इसके लिए Unattended, from cron देखें।
sudo stop-bots uninstall all --dry-run
sudo stop-bots uninstall all
पहला हर कदम को सूचीबद्ध करता है, दूसरा उन्हें लेता है। देखें अपग्रेड करना और अनइंस्टॉल करना।
ज्ञात बॉट, श्रेणी के अनुसार (स्कैनर / सर्च इंजन / एआई क्रॉलर), ArcJet के वेल-नोन बॉट्स, ai.robots.txt और NGINX अल्टीमेट बैड बॉट ब्लॉकर सूची से प्राप्त। एक श्रेणी को ब्लॉक करने से प्रत्येक साइट के NGINX कॉन्फ़िग में एक if ($http_user_agent ...) नियम इंजेक्ट होता है।
बहुत अधिक अनुरोध, NGINX की अपनी दर सीमित करने के माध्यम से।
पहले, विनम्रता से — एक जेनरेटेड robots.txt जिसमें हर बॉट सूचीबद्ध है जिसे आप ब्लॉक कर रहे हैं, उन क्रॉलर के लिए जो इसका सम्मान करते हैं, साथ ही नीचे हनीपॉट पाथ भी।
सिवाय जहाँ आप अन्यथा कहते हैं — प्रति-साइट पाथ छूट, और विश्वसनीय पते और यूजर एजेंट (trust), जिन पर कोई ब्लॉक, सूची या दर सीमा लागू नहीं होती है।
अनुरोध जो ब्राउज़र जैसे नहीं दिखते, प्रति साइट। छह स्वतंत्र नियम, प्रत्येक का अपना टॉगल और प्रत्येक डिफ़ॉल्ट रूप से बंद — प्रति नियम एक स्विच ताकि यदि आपकी कोई चीज़ काम करना बंद कर दे, तो आप बता सकें कि किस नियम ने ऐसा किया:
| नियम | बॉट के अलावा, किसे दूर करता है |
|---|---|
| HTTP/1.0 और HTTP/1.1 | क्रॉलर और एपीआई क्लाइंट जो HTTP/2 नहीं बोलते |
कोई Accept हेडर नहीं | कुछ एपीआई क्लाइंट कोई नहीं भेजते |
कोई Accept-Language नहीं | गोपनीयता उपकरण इसे हटा देते हैं |
खाली/अनुपस्थित User-Agent | स्क्रिप्ट और स्वास्थ्य जांच अक्सर इसे छोड़ देते हैं |
Host एक नंगे आईपी है | आईपी द्वारा साइट तक पहुंचने में बाधा डालता है |
| TLS 1.0 / 1.1 | केवल बहुत पुराने क्लाइंट |
सात विकल्प हैं:
| विकल्प | यह किसके लिए है |
|---|---|
403 निषिद्ध (डिफ़ॉल्ट) | कहता है कि ब्लॉक जानबूझकर किया गया था; एकमात्र जिस पर गलत तरीके से पकड़े गए इंसान कार्रवाई कर सकते हैं |
404 नहीं मिला | छिपाता है कि कुछ भी ब्लॉक किया गया था |
410 चला गया | अच्छे व्यवहार वाले क्रॉलर से URL को हमेशा के लिए छोड़ने के लिए कहता है — जब आप हमलावरों के बजाय क्रॉलर को दूर कर रहे हों तो इसे 403 से बेहतर मानें |
429 बहुत अधिक अनुरोध | एक विनम्र क्लाइंट को पीछे हटने और पुनः प्रयास करने के लिए कहता है |
418 मैं एक टीपॉट हूँ | RFC 2324 का मज़ाक। यह काम करता है; यह सिर्फ IANA-पंजीकृत नहीं है, और NGINX इसे एक खाली बॉडी के साथ भेजता है |
444 कनेक्शन बंद करें | कोई जवाब नहीं; सबसे सस्ता, लेकिन सर्वर के डाउन होने से अप्रभेद्य |
टारपिट | 403 का जवाब देता है लेकिन बॉडी को प्रति सेकंड एक बाइट की दर से टपकाता है, ताकि क्लाइंट आगे बढ़ने के बजाय प्रतीक्षा करे |
टारपिट गलत सकारात्मक के लिए सबसे सौम्य विकल्प है — एक गलत तरीके से पकड़े गए क्लाइंट को धीमा किया जाता है, अस्वीकार नहीं किया जाता — और बॉट के लिए लागत पर सबसे कठोर, जिसका कनेक्शन निष्क्रिय रहता है। इसे चुनने से पहले एक बात जान लें: यह आपकी एक वर्कर कनेक्शन को भी अवधि के लिए रखता है, इसलिए टारपिटेड क्लाइंट्स की बाढ़ worker_connections के लिए वास्तविक आगंतुकों के साथ प्रतिस्पर्धा करती है।