मैं हैकिंग प्रयासों को phpMyAdmin को लक्षित करने से कैसे रोक सकता हूं?


35

मेरी वेबसाइट को विभिन्न आईपी से प्रतिदिन हजारों हिट्स प्राप्त करने की कोशिश कर रहा है:

/php-myadmin/
/myadmin/
/mysql/

... और हजारों अन्य विविधताएँ। इनमें से कोई भी निर्देशिका मौजूद नहीं है, मेरे पास अपने सर्वर पर phpmyadmin भी नहीं है।

मुझे नहीं लगता कि इन प्रयासों में से कोई भी सफल रहा है, हालांकि वे सर्वर के संसाधनों पर अपना टोल ले रहे हैं और बैंडविड्थ को बर्बाद कर रहे हैं, इसलिए मैं अगर संभव हो तो उन्हें रोकना चाहूंगा। मैंने इन IP में से कुछ मुट्ठी भर को अवरुद्ध कर दिया है, लेकिन वे नए IP के साथ वापस आते रहते हैं, क्या कोई ऐसा तरीका है जिससे मैं इसे अधिक स्थायी रूप से रोक सकता हूँ?


8
प्रति दिन हजारों हिट कुछ भी नहीं है। क्या आप वास्तव में प्रदर्शन कठिनाइयों का सामना कर रहे हैं या आप बस मान रहे हैं? एक दिन में कुछ हजार 404 वास्तव में कुछ भी नहीं है
एमडीएमरा

नहीं, मैं प्रदर्शन के मुद्दों का अनुभव नहीं कर रहा हूँ। लेकिन यह मुझे परेशान कर रहा है और मुझे आश्चर्य है कि अगर कुछ भी हो तो मैं कर सकता हूं।
अंबाह88

6
IP- आधारित ब्लॉकिंग से सावधान रहें - बहुत सारे IP अंत में वैध उपयोगकर्ताओं के लिए साइकिल चलाने वाले होते हैं। साथ ही, कुछ वैध उपयोगकर्ता बॉटनेट के हिस्से के रूप में संक्रमित हो सकते हैं। यदि आप किसी भी आईपी-आधारित ब्लॉकिंग को करते हैं, तो कृपया सुनिश्चित करें कि इसकी यथोचित अवधि समाप्त हो गई है।
बॉब

mod_securityइस सूत्र में कोई उल्लेख नहीं है , इसलिए इसे देखें । नीचे दिए गए टिप्पणियों पर ध्यान दें कि यह वास्तव में कोर्स के सर्वर द्वारा अधिक काम करने का कारण होगा। तो शायद लागूmod_evasive करना भी अच्छा होगा । , लेकिन यह नीचे सूचीबद्ध है। fail2ban
mbrownnyc

जवाबों:


42

इसके बारे में चिंता मत करो। एक 404 परोसना एक छोटे, छोटे, छोटे काम करने के लिए एक वेब सर्वर के लिए काम करता है। आप शायद एक ४ The६ का उपयोग करके दस ४०४ की दूसरी सेवा कर सकते हैं। प्रति ४०४ की बैंडविड्थ नगण्य है; एक छोटे से अनुरोध प्राप्त करें और एक छोटे से 404 प्रतिक्रिया।

गंभीरता से; इसके बारे में चिंता मत करो। यह इंटरनेट पर सर्वर चलाने का सिर्फ एक हिस्सा और पार्सल है।


14
हेल-बैनिंग: जिबरिश आउटपुट के साथ एक सामान्य पेज (200 ओके) परोसें। उपकरण जिन बच्चों का उपयोग करते हैं वे पृष्ठ को रिपोर्ट करेंगे और उन्हें हाथ से जांच करने की आवश्यकता होगी (एक नकली लॉगिन पृष्ठ निश्चित रूप से एक शैतान-डिवाइस होगा) :)
arul

4
@ यरुल - कुछ हमलावर इसे चुनौती के रूप में ले सकते हैं और अपने सर्वर पर अतिरिक्त ध्यान दे सकते हैं। क्या एक छोटा या अलग 404 सर्व करना यहाँ उपयोगी होगा? उदाहरण के लिए, यदि होस्ट सामान्य रूप से समर्थन लिंक के साथ 404 परोसता है, तो क्या इन लक्षित मोतियों के लिए कोई सामग्री के साथ सादे 404 की सेवा करनी चाहिए / चाहिए?
Freiheit

1
इसका उद्देश्य परिणामों का विश्लेषण करने के लिए अतिरिक्त खर्च किए गए अतिरिक्त संसाधन (समय) बनाना है। यदि आपको 404 मिलते हैं तो आप जानते हैं कि हमले के काम करने की कोई संभावना नहीं है। परिवर्तनीय-लंबाई ठीक परिणाम [आगे की जांच के बिना] अपेक्षित परिणामों से अप्रभेद्य हैं। वे इन स्कैन को चलाते हैं क्योंकि धैर्य उनका गुण नहीं है, इसलिए उनमें से नरक को ध्वस्त कर दो और वे रुक जाएंगे :)
arul

1
बोनस पॉइंट्स के लिए, एक स्टैटिक पेज लौटाएं जो बिल्कुल असली phpmyadmin पेज जैसा दिखता है, लेकिन पूरी तरह से गैर-कार्यात्मक है।
कैप्न्क्रिग

1
अतिरिक्त बोनस अंक के लिए, 0.5 - 1 सेकंड की देरी का निर्माण करें। यह वैध उपयोगकर्ताओं द्वारा लोड करने के लिए समय में काफी वृद्धि नहीं करेगा, लेकिन यह स्कैनिंग को धीमा कर देगा जो बुरे लोग कर रहे हैं। (आपको बस यह सुनिश्चित करने की ज़रूरत है कि आपके सर्वर में आवश्यक से अधिक समय तक कनेक्शन रखने की क्षमता है और अभी भी वैध अनुरोधों को संसाधित करने के लिए।)
मोशे काटज़

38

दुर्भाग्य से आपके लिए यह है कि इंटरनेट कैसे काम करता है। बस इसे नजरअंदाज करें। हजारों बॉट / ट्रोजन इंटरनेट को स्कैन करते हैं। स्रोत आईपी हमेशा यादृच्छिक होगा। कोई इलाज नहीं है।

उस ट्रैफ़िक को समाप्त करने के लिए केवल 100% समाधान नीचे दिया गया है: यहाँ छवि विवरण दर्ज करें

एक विकल्प है:
- पोर्ट 80/443 से https / http के साथ किसी अन्य चीज़ में जाने के लिए। बोट आमतौर पर अन्य 65k पोर्ट पर http सर्वर की तलाश नहीं करते हैं।
- सर्वर से कनेक्ट करने के लिए वीपीएन का उपयोग करें (मुझे लगता है कि अगर आप सार्वजनिक वेबसाइट होस्ट करते हैं तो यह संभव नहीं है)।


आरेख के लिए LOL +1 :-) मेरे पास एक स्थैतिक साइट पर यह कष्टप्रद मुद्दा (जैसा कि हम सभी) है और यह सबसे उपयोगी उत्तर है।
डेव एवरिट

30

आप क्या चाहते हैं Fail2ban (यह एक linux मशीन है, आप यह नहीं कहते ...)

Fail2ban क्या है?

Fail2ban सिस्टम लॉग को पार्स करेगा, विशेष नियमित अभिव्यक्तियों को ब्लॉक करने की तलाश में। जब यह एक मेल (या एक ही आईपी से कई मैचों को पाता है, तो आप इसे कैसे कॉन्फ़िगर करते हैं) के आधार पर, यह आमतौर पर IPTables के माध्यम से ब्लॉक होगा। आमतौर पर इसका उपयोग SSH या वेब सर्वर के खिलाफ विफल प्रमाणीकरण प्रयासों को ब्लॉक करने के लिए किया जाता है।

आप इसे निर्धारित समय के लिए उन्हें प्रतिबंधित करने के लिए कॉन्फ़िगर कर सकते हैं (मिनट हो सकते हैं, दिन हो सकते हैं ... यह निर्भर करता है कि वे कितने स्थिर हैं), जिसके बाद प्रतिबंध समाप्त हो जाएगा, जब तक कि वे फिर से प्रयास न करें।

यह phpmyadmin स्कैनिंग बॉट को ब्लॉक करने में कैसे मदद करता है?

यह किसी हमले के सामान्य संकेतों से मेल खाने के लिए आसानी से इस्तेमाल किया जा सकता है, जैसे कि गैर-मौजूद phpmyadmin फ़ोल्डरों तक पहुंचने की कोशिश करना। आपको इस तरह के प्रयासों से मेल खाने के लिए सही नियमित अभिव्यक्ति का पता लगाना होगा, और यह सुनिश्चित करना होगा कि आप वैध उपयोगकर्ताओं को ब्लॉक न करें।

इस ब्लॉग पोस्ट में दिए गए कॉन्फ़िगरेशन वर्बेटियम का काम कर सकते हैं या आपके सेटअप के लिए कुछ ट्विकिंग की आवश्यकता हो सकती है।

मैं उन्हें ब्लॉक क्यों करूं? 404 त्रुटियों की लागत बहुत ज्यादा नहीं है

Iptables में उन्हें ब्लॉक करने से कुछ फायदा होता है - यदि वे phpmyadmin कमजोरियों के लिए जाँच कर रहे हैं, तो वे हैं, वे कमजोरियों के लिए अन्य सेवाओं की कोशिश कर सकते हैं, जब तक कि वे कुछ ऐसा नहीं करते हैं जो काम करता है। उन्हें बैन करने से ज्यादातर बॉट्स / स्क्रिप्ट्स थोड़ी देर के बाद छोड़ देंगे, और वे बेहतर टारगेट पर आगे बढ़ेंगे।

यहां तक ​​कि स्कैन के माध्यम से भी अधिक खर्च नहीं होता है (जब तक कि वे वास्तव में एक भेद्यता नहीं पाते हैं), वे आपके लॉग को बाढ़ कर देते हैं जिससे आपके वेब सर्वर के साथ सफल हमलों और समस्याओं को देखना मुश्किल हो जाता है।

जैसा कि नीचे टिप्पणी है, Fail2ban कुछ सिस्टम संसाधनों की आवश्यकता है। परन्तु ज्यादा नहीं। बहुत कम से कम मैं कह सकता हूं कि मुझे कभी भी प्रदर्शन की समस्या नहीं हुई जो मैं Fail2ban को विशेषता दे सकता था। हालाँकि मुझे बहुत आक्रामक लिपियों से बल युक्त पासवर्ड की कोशिश करने या अपने सर्वर पर प्रति सेकंड हजारों SQL इंजेक्शन प्रयासों और अन्य कारनामों को फेंकने के लिए प्रदर्शन की समस्या थी। फ़ायरवॉल स्तर पर उन्हें अवरुद्ध करना सर्वर / एप्लिकेशन स्तर पर उन्हें अवरुद्ध करने की तुलना में एफएआर कम संसाधन लेता है। यह IP पतों पर प्रतिबंध लगाने के लिए कस्टम स्क्रिप्ट चलाने के लिए भी बढ़ाया जा सकता है - इसलिए इन्हें IPtables में प्रतिबंधित करने के बजाय, आप संभवतः इसे हार्डवेयर फ़ायरवॉल में प्रतिबंधित कर सकते हैं, या किसी को ईमेल कर सकते हैं यदि वही व्यक्ति आपके ऊपर हमला करने का प्रयास करता है, तो आप शिकायत कर सकते हैं उनके ISP के लिए या आपके डेटासेंटर ने उन्हें अपने फायरवॉल पर ब्लॉक कर दिया है।

कोई और टिप्स?

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


6
यह संसाधन का नुक़सान होगा :) मुझे लगता है कि आप Fail2ban पर अधिक सीपीयू साइकल का उपयोग करेंगे, केवल 404 की सेवा करने की तुलना में :)
बार्टलोमिएज ज़ारकेकी

4
@ BartłomiejZarzecki बेहतर सुरक्षा के लिए हमेशा अधिक संसाधनों की आवश्यकता होती है
user11153

3
@ heinrich5991 पहले प्रयासों के बाद इसे ब्लॉक कर देगा । कुछ स्कैन के लिए कोई अंतर नहीं बनाता है, लेकिन सर्वर पर कई प्रयासों का प्रयास करने वाले स्कैन के लिए एक बड़ा अंतर है।
अनुदान

2
Fail2ban (या समान) उम्मीद है कि बस / phpmyadmin से अधिक के लिए होगा। यह मानते हुए कि उसके पास किसी भी प्रकार की रिमोट एक्सेस है, F2B ब्लॉकिंग (3 पासवर्ड और आप ... हैं ... चले गए हैं) सिर्फ 404 से अधिक के लिए है।
वर्नरसीडी

3
यदि आप ऐसा कुछ करते हैं, तो यह सुनिश्चित करें कि प्रतिबंध को अपेक्षाकृत जल्दी (कुछ घंटे, अधिकतम) समाप्त करने के लिए सेट करें, या आप एक वैध रूप से आवंटित आईपी से हमला होने पर वैध उपयोगकर्ताओं को बंद करने का जोखिम उठाते हैं।
जेन्स न्युबॉयर

7

मैं जो कर रहा हूं वह एक छोटी स्क्रिप्ट को उपयुक्त डायरेक्टरी में डाल रहा है, इसलिए अगर कोई / phpmyadmin को एक्सेस करता है तो यह चलता है। वह स्क्रिप्ट और कुछ नहीं बल्कि iptables (लिनक्स के तहत) को लागू करती है, जो 30 मिनट के लिए स्क्रिप्ट तक पहुँचने वाले आईपी पते को ब्लॉक कर देती है (जिसके बाद एक क्रॉन-जॉब आईपी श्रृंखला को आईपी पते को जोड़ देता है) को फ्लश कर देता है।

विफलता 2ban से अधिक लाभ यह है कि आप syslog / access-log को पार्स करने के लिए किसी भी संसाधन का उपयोग नहीं करते हैं। निस्संदेह, नुकसान यह है कि आप इस विशिष्ट पते पर पहुंचने के अलावा किसी और चीज की जांच नहीं करते हैं।

मैं यह क्यों करूं? निश्चित रूप से, सर्वर के लिए 404 की सेवा करना आसान होगा, लेकिन मैं नहीं चाहता कि वे चारों ओर थपथपाएं, उतना ही सरल। मैं उनके उपकरण के समय को बर्बाद करना चाहता हूं, सर्वर के जवाब देने की प्रतीक्षा कर रहा है, जब तक कि अंत में छोड़ नहीं देता। इसके अलावा, यदि आप उन्हें ब्लॉक नहीं करते हैं, तो वे अंत में आगे बढ़ने से पहले बहुत से अलग-अलग URL की कोशिश करेंगे - कभी-कभी एक हजार से अधिक। उपकरण के आधार पर, यह "अच्छा" हो सकता है और कुछ घंटों में उन लोगों को बाहर कर सकता है, या हो सकता है कि यह आपके सर्वर को उन सभी के साथ मिनटों के भीतर देखभाल और पाउंड न करे।

मुझे एक वैध पृष्ठ क्यों नहीं चाहिए? उनका उपकरण आपको स्कैन करना बंद कर सकता है और उस स्किडी को सचेत कर सकता है जो इसे चला रही है - जिसे फिर मैन्युअल रूप से जांचना होगा। इस बात का फ़र्क़ यह है कि वे आपके सर्वर को उनके मुकाबले बहुत नज़दीक रूप देंगे, यदि उनका स्कैन आपके परिणामों में बदलाव नहीं करता है। हो सकता है कि वे थोड़ा और चारों ओर प्रहार करेंगे, हो सकता है कि कुछ पोर्ट स्कैन करें, हो सकता है कि आप उन्हें पागल कर दें, और वे यह देखने के लिए एक DoS लॉन्च करें कि क्या वे कुछ भी कर सकते हैं। बस उन्हें अवरुद्ध करना - जो उनके दृष्टिकोण से सर्वर समय को phpmyadmin स्क्रिप्ट तक पहुंचने का समय बनाता है - अवांछित ध्यान से बचने के दौरान अपने टूल के समय को बर्बाद करने के लिए प्रभावी है।

यदि आपके पास सर्वर पर phpMyAdmin है, तो एक प्रभावी समाधान इसे एक अलग निर्देशिका में रख सकता है, और कुछ भी पहुंचने से पहले एक्सेस को ब्लॉक करने के लिए अपने वेब-सर्वर के पासवर्ड नियंत्रण (Apache के लिए .htpasswd) का उपयोग करें।


एक अच्छे वैकल्पिक विकल्प की तरह लगता है ... लेकिन क्या वेब सर्वर को रूट अनुमतियों के साथ स्क्रिप्ट चलाने में सक्षम होने की आवश्यकता नहीं है?
अनुदान

1
PhpMyAdmin जैसे उपकरणों के लिए उपनाम समायोजित करें। व्यवस्थापक फ़ाइल को बदलने के लिए इसे कॉन्फ़िगर करने के लिए कॉन्फ़िग फ़ाइल में सरल परिवर्तन करें या chrisPhpAdmin ... या ऐसा कुछ जो स्क्रिप्ट-किडिड नहीं होगा।
वर्नरसीडी

देर से जवाब के लिए क्षमा करें - यह (जरूरी) नहीं है। आप वेब सर्वर को मूल अनुमतियों के साथ एक अच्छी तरह से ज्ञात स्क्रिप्ट (और बस उस स्क्रिप्ट) को निष्पादित करने की अनुमति देने के लिए sudo (sudoers फ़ाइल के साथ) का उपयोग कर सकते हैं। वह स्क्रिप्ट आईपी को स्वीकार करेगी (पैरामीटर के रूप में), और आप इसे एक रेगुलर एक्सप्रेशन ([0-9] + \ _ [0-9] + \ _ [0-9] + \ _। [0-9] + के खिलाफ चेक करेंगे। ) यह सुनिश्चित करने के लिए कि यह कुछ भी अजीब नहीं है।
आअन

1

FWIW हम केवल आईपी पते तक श्वेतसूची में / phpmyadmin / के लिए पहुँच को प्रतिबंधित करते हैं।

हम डॉस / खराब व्यवहार वाले स्क्रिप्टेड हमलों को रोकने के लिए mod_evasive (apache2 पर) का उपयोग करते हैं।


1

अपने मशीन लूपबैक पते 127.0.0.1 पर mysql व्यवस्थापक टूल को बांधें

फिर अपने एडमिन बैक एंड को एक्सेस करने के लिए पोर्ट फॉरवर्डिंग के साथ ssh का उपयोग करें।

सुरक्षा की एक अतिरिक्त परत जोड़ें जो काफी पारदर्शी हो सकती है।


-4

सबसे अच्छा तरीका यह है कि हम उस फ़ोल्डर की रक्षा करें जो phpmyadmin में हो।


2
सवाल से: None of these directories exist, I don't even have phpmyadmin on my server.- वह यह नहीं पूछ रहा है कि अपने मौजूदा इंस्टॉल को कैसे कठोर किया जाए ... वह पूछ रहा है कि उस सामान के बारे में क्या करना है जो मौजूद नहीं है। PMAयदि आपके पास मौजूद नहीं है तो आप नाम नहीं बदल सकते हैं या आपके पास क्या है।
वर्नरसीडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.