कैसे और स्वचालित रूप से अस्थायी रूप से एक आईपी पते को ब्लॉक करने के लिए बहुत कम समय में सर्वर पर कई हिट बना रहा है?


21

मेरे एक LAMP सर्वर को हाल ही में किसी प्रकार की स्क्रिप्ट बॉट द्वारा कारनामों की तलाश में लाया गया था। इसके लुक से, यह एक दूसरे के लिए इतने अनुरोध कर रहा था, कि इसने सर्वर पर रैम को ओवरलोड कर दिया और एक घंटे के लिए मेरी पूरी साइट को नीचे लाया। यह "अटैकक" सभी एक एकल आईपी पते से आया था।

तो मैं अपने LAMP सर्वर पर बहुत कम समय में अपने आप IP पते को कैसे स्वचालित रूप से और अस्थायी रूप से अवरुद्ध कर सकता हूं? नौकरी के लिए सबसे अच्छा उपकरण क्या है, और क्या मुझे इसे ऑपरेटिंग सिस्टम स्तर पर या PHP के माध्यम से हल करना चाहिए?

जवाबों:


25

फेल 2 बान । लिनक्स प्लेटफॉर्म पर इस समस्या के लिए स्वर्ण मानक / डिफ़ॉल्ट समाधान।


दिलचस्प है, धन्यवाद। यह Google जैसे वेब क्रॉलर से कैसे प्रभावित या प्रभावित होता है?
प्रोग्रामरगर्ल

1
@Programmer इस बात पर निर्भर करता है कि आप चीज़ को कैसे कॉन्फ़िगर करते हैं, लेकिन आप वेब क्रॉलर को खराब पासवर्ड इनपुट करने, शोषण की खोज करने, या एक अच्छी तरह से परिभाषित सीमा को ट्रिगर करने के लिए पर्याप्त हिट रैकिंग की उम्मीद नहीं करेंगे - इसलिए बस अपने लॉग की जांच करें क्या आपके दहलीज को परिभाषित करने के लिए।
होपलेसनब

5

आपको PHP के साथ ऐसा करने की कोशिश करने से बचना चाहिए। जब तक PHP शामिल हो जाती है, तब तक पहले ही बहुत देर हो चुकी होती है - मेमोरी पहले ही आवंटित की जा चुकी है।

आप किसी भी स्तर पर आईपी पते पर प्रतिबंध लगा सकते हैं, लेकिन सबसे कम स्तर जो संसाधनों का कम से कम उपयोग करता है वह वह मार्ग है जिसे आप लेना चाहते हैं। यह आमतौर पर फ़ायरवॉल है। बहुत कम से कम, iptables (linux फ़ायरवॉल) वह है जो आप उपयोग करना चाहते हैं। ऐसे उपकरण हैं जिनका दूसरों ने उल्लेख किया है, जैसे कि फेल 2 बान, जो आपके लिए इसे स्वचालित कर सकते हैं। बाहरी फ़ायरवॉल बेहतर होगा।

अपमानजनक आईपी पते पर प्रतिबंध लगाने की कोशिश करने के अलावा, आपको अपने संसाधनों का बेहतर उपयोग करने का प्रयास करना चाहिए। यदि कोई अनुरोध कम संसाधन लेता है तो एक हमले के प्रभावी होने में अधिक समय लगेगा।

अपाचे भी बहुत सारी मेमोरी का उपयोग करता है। यदि आप mod_php का उपयोग कर रहे हैं, तो यह और भी बुरा है क्योंकि PHP हर अपाचे बच्चे की प्रक्रिया के अंदर भरी हुई है। इसका मतलब यह है कि स्थिर सामग्री (सीएसएस / जेएस / इमेज) के लिए अनुरोध भी PHP लोड कर रहे हैं जब PHP का उपयोग नहीं किया जा रहा है। आप इसके बजाय FastCGI का उपयोग करके इस समस्या को हल कर सकते हैं। mod_fcgid एक अच्छा विकल्प है।

अन्य वेब सर्वर भी हैं जो अधिक संसाधन कुशल हैं। नगनेक्स मेरा पसंदीदा है। लाइटटैप भी है। बहुत सारे लोग जैसे Litespeed (अपाचे के लिए प्रतिस्थापन में गिरावट)।

यदि आप अपाचे के साथ रहना चाहते हैं, तो इसे सबसे अच्छा मान सकते हैं। अक्षम करने पर विचार करें ।htaccess। यहाँ एक अच्छा स्पष्टीकरण क्यों है


2

Http ट्रैफ़िक को नियंत्रित या अवरुद्ध करने के लिए, आप इसका उपयोग कर सकते हैं:

हालाँकि, ध्यान रखें कि ये उपकरण webspiders को ब्लॉक / धीमा भी कर सकते हैं और इसलिए SEO को प्रभावित करते हैं।


2
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

ossec इस प्रकार की और स्वचालित रूप से पारदर्शी रूप से syslogs के आधार पर कर सकता है।


1
क्या आप कृपया बता सकते हैं कि कोड की पहली पंक्ति क्या करती है, बिल्कुल? इसके अलावा, ossec की असफलता के साथ तुलना कैसे की जाती है? धन्यवाद।
प्रोग्रामरगर्ल

2
यह एक iptables नियम है। मेरा मानना ​​है कि यह गिनता है कि 60 सेकंड के भीतर 4 प्रयासों से अधिक होने के बाद कितने नए कनेक्शन के प्रयास किए गए हैं और उन्हें छोड़ देता है। मैं आपको प्रोत्साहित करता हूं कि आप man iptablesदेखें और देखें कि प्रत्येक ध्वज का क्या मतलब है, और वे एक साथ कैसे काम करते हैं।
ल्यूक

-3

NoooBS,

--- बाढ़ ---

iptables -N लॉगड्रॉप iptables -एक logdrop -m हाल ही में --सेट --name ब्लैकलिस्ट

iptables-एक logdrop -m सीमा - प्रारंभिक 1 / s - प्रारंभिक-फट 1 -j लॉग-log- उपसर्ग "बाढ़:"

iptables-logdrop -j DROP

iptables -N ddos ​​iptables -एक ddos ​​-m हाल-ही -चेक -नाम ब्लैक लिस्ट - सेकंड्स 300-hitcount 1 -j लॉगड्रॉप iptables -एक ddos ​​-m हाल ही में -सेट - फिर से ipadables-ddos -m हाल ही में --update --name फिर से -seconds 60-hitcount 2 -j लॉगड्रॉप iptables -एक ddos ​​-j RETURN

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.