मैं लोडबलैंकरों के पीछे कई सौ वेबसर्वर चलाता हूं, अनुप्रयोगों के ढेरों के साथ कई अलग-अलग साइटों की मेजबानी करता है (जिनमें से मेरा कोई नियंत्रण नहीं है)। हर महीने लगभग एक बार, किसी एक साइट को हैक कर लिया जाता है और किसी बैंक या राजनीतिक संस्थान पर हमला करने के लिए बाढ़ की स्क्रिप्ट अपलोड कर दी जाती है। अतीत में, ये हमेशा यूडीपी बाढ़ थे जो प्रभावी रूप से व्यक्तिगत वेबसर्वर पर आउटगोइंग यूडीपी ट्रैफ़िक को रोककर हल किए गए थे। कल उन्होंने कई टीसीपी कनेक्शन का उपयोग करके हमारे सर्वर से एक बड़े अमेरिकी बैंक को 80 पोर्ट में डालना शुरू कर दिया। चूंकि इस प्रकार के कनेक्शन हमारे अनुप्रयोगों के लिए पूरी तरह से मान्य हैं, बस उन्हें अवरुद्ध करना एक स्वीकार्य समाधान नहीं है।
मैं निम्नलिखित विकल्पों पर विचार कर रहा हूं। तुम किसकी सिफारिश करना चाहोगे? क्या आपने इन्हें लागू किया है, और कैसे?
- वेबसर्वर (iptables) पर आउटगोइंग टीसीपी पैकेट्स सोर्स पोर्ट के साथ! = 80
- समान लेकिन कतारबद्ध (tc) के साथ
- प्रति सर्वर प्रति उपयोगकर्ता आउटगोइंग ट्रैफ़िक की दर सीमा। काफी हद तक एक प्रशासनिक बोझ है, क्योंकि प्रति एप्लिकेशन सर्वर पर संभावित रूप से 1000 उपयोगकर्ता हैं। शायद यह: मैं प्रति उपयोगकर्ता बैंडविड्थ को कैसे सीमित कर सकता हूं?
- और कुछ?
स्वाभाविक रूप से, मैं हैकर्स द्वारा हमारी मेजबानी की गई साइटों में से एक में होने की संभावना को कम करने के तरीकों पर भी गौर कर रहा हूं, लेकिन जैसा कि तंत्र कभी भी 100% जलरोधी नहीं होगा, मैं घुसपैठ के प्रभाव को गंभीर रूप से सीमित करना चाहता हूं।
अपडेट: मैं वर्तमान में इन नियमों के साथ परीक्षण कर रहा हूं, जिससे इस विशिष्ट हमले को रोका जा सकेगा। आप उन्हें और अधिक सामान्य बनाने का प्रस्ताव कैसे देंगे? क्या मुझे एक ज्ञात TCP DoS अटैक याद आ रहा है जब मैं SYN पैकेट पर केवल दर सीमा रखता हूँ?
iptables -A OUTPUT -p tcp --syn -m limit --limit 100/min -j ACCEPT
iptables -A OUTPUT -p tcp --syn -m limit --limit 1000/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A OUTPUT -p tcp --syn -j REJECT --reject-with tcp-reset
चीयर्स!