मेरे वेब सर्वर पर कुछ URL तक पहुँचने से IP पते से क्लाइंट्स को कैसे ब्लॉक करें?


9

मैं किसी भी ipaddress को स्थायी रूप से कैसे अवरुद्ध कर सकता हूं जो ज्ञात असुरक्षित पृष्ठों जैसे कि एक्सेस करता है /phpMyadmin/? मैं एक डेबियन सर्वर चला रहा हूं और मैं अक्सर बॉट्स देखता हूं, या हैकर्स मेरे सर्वर को स्कैन करके कमजोरियों को खोजने की कोशिश करते हैं।

73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyadmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin2/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin3/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin4/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"

मैंने इस स्टैकओवरफ्लो प्रश्न का पहले ही अनुसरण कर लिया है: phpMyAdmin को कैसे सुरक्षित करें

मैं बैंडविड्थ लेने से बॉट्स को ब्लॉक करना शुरू करना चाहता हूं।


4
यह आपको लॉग इन फ़ाइलों को साफ करेगा, लेकिन सुरक्षा के साथ मदद नहीं करेगा। या तो आप हमेशा phpmyadmin को अप-टू-डेट रखें, या इसे केवल लोकलहोस्ट से एक्सेस करें (और अन्य सभी ट्रैफ़िक को ब्लॉक करें)। दूरस्थ सर्वर तक पहुंचने के लिए, पोर्ट को ssh के माध्यम से टनल करें।
स्टीफन एम

मुझे लगता है कि यह सुरक्षा में मदद करेगा क्योंकि यह दुर्भावनापूर्ण आईपी पते को अवरुद्ध करेगा जो उस साइट तक पहुंचने का प्रयास करते हैं।
व्हिटेकैट

HTTPhitecat 404HTTP कोड का अर्थ है Page not found। आपको कैसे पता चलेगा कि ये IP IP का अपमान कर रहे हैं? इन आईपी को ब्लॉक करने के लिए आप किस आउटपुट के आधार पर निर्णय लेते हैं?
वैलेंटाइन बजरमी

मैं इस तथ्य के आधार पर आईपी को ब्लॉक करना चाहता हूं कि वे phpMyAdmin पर जा रहे हैं। मैंने अपनी साइट सुरक्षित कर ली है और मुझे पता है कि उस पेज पर जाने वाला कोई भी व्यक्ति दुर्भावनापूर्ण है।
व्हिटेकैट

1
क्यों आप एक का निर्माण नहीं करतीं.htpasswd
nicoX

जवाबों:


18

यह आप के लिए देख रहे हैं की तुलना में अधिक भारी वजन हो सकता है, लेकिन आप fail2ban ( https://www.fail2ban.org ) का उपयोग करने पर विचार कर सकते हैं । यह एक उपकरण है जो आपकी लॉग फ़ाइलों की निगरानी कर सकता है और उन पतों को स्वचालित रूप से प्रतिबंधित कर सकता है जो ऐसे लॉग उत्पन्न करते हैं जो अनुकूलन योग्य पैटर्न के सेट से मेल खाते हैं।


5
tbh यह सटीक समस्या fail2banहै जिसे संबोधित करने के लिए डिज़ाइन किया गया है। यह थोड़ा भारी है, लेकिन फिर वांछित मानदंड काफी गतिशील हैं। माना जाता fail2banहै कि सभी चीजें हल्के वजन के बारे में हैं जैसा कि आप मानक उपकरण का उपयोग करके समस्याओं के इस वर्ग को हल करने की कोशिश में करने जा रहे हैं।
ब्राचली

1
वैसे मुझे लगता है कि आप एक suid- रूट बाइनरी cgi लिख सकते हैं, इसे / phpmyadmin के रूप में होस्ट कर सकते हैं, जो इसके कॉलर के फ़ायरवॉल नियम को जोड़ता है।
यहोशू

7

मत करो। सबसे अच्छा आप अपने लॉग को कम अव्यवस्थित बनाने के अलावा कुछ भी हासिल नहीं करेंगे; सबसे खराब रूप से आप वैध आगंतुकों को रोकेंगे, जो एक आईपी पते (डीएचसीपी के माध्यम से) प्राप्त करने के लिए हुआ था, जिसका उपयोग किसी ऐसे व्यक्ति से किया जाता था, जिसका पीसी बॉटनेट नोड के रूप में संक्रमित था।

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


6
fail2banप्रतिबंध अस्थायी हैं - वाई सेकंड के भीतर एक खराब लॉगिन प्रयास के एक्स हिट्स, जेड मिनट प्रतिबंध, विन्यास एक्सवाई और जेड के साथ। सक्रिय घुसपैठ के प्रयासों के ड्रॉपिंग लॉग मुझे काफी खतरनाक विकल्प की तरह लगते हैं।
शादुर

2
0.1% संभावना में ऐसा होता है, phpmyadmin के इस उदाहरण के वैध उपयोगकर्ता केवल ओपी को अनब्लॉक करने के लिए संदेश देने में सक्षम होना चाहिए। इससे पहले कि आपके सर्वर पर अनपेक्षित या शून्य दिन भेद्यता को हिट करने से पहले विफलता 2 बटन एक स्कैनिंग हमले को बंद कर सकता है।
सेगफॉल्ट

1
@Segfault: संभवतः कोई वैध उपयोगकर्ता नहीं हैं /phymyadmin/क्योंकि /phymyadmin/सर्वर पर मौजूद नहीं है (देखें: 404)। बल्कि सवाल में वैध उपयोगकर्ता साइट के किसी भी उपयोगकर्ता हैं जो उन्हें फ़ायरवॉल द्वारा अवरुद्ध किया जाएगा।
आर .. गिटहब स्टॉप हेल्पिंग आईसीई

1
"सर्वश्रेष्ठ" में वास्तव में आगे के परीक्षण शामिल हैं, जिनमें वे शामिल हैं जो वास्तव में सफल हो सकते हैं। लॉग सामग्री के साथ चारों ओर खेलना भी जानकारी खोने का एक अच्छा तरीका लगता है जब आपको एहसास होता है कि आपने अपने फ़िल्टर में किसी प्रकार की त्रुटि की है। आप तो लॉग अव्यवस्था बारे में चिंतित हैं आप सामान में आपकी रुचि है के लिए यह सब में छान-बीन करने के लिए ELK की तरह एक एनेलिटिक्स प्लेटफ़ॉर्म की जरूरत है।
Bratchley

2
अन्य, संबंधित, मुद्दा CGN का बढ़ता उपयोग है। एक ISP में एक ही IP पता साझा करने वाले सैकड़ों ग्राहक हो सकते हैं, जिससे IP अवरुद्ध होना खतरनाक है, यहाँ तक कि अस्थायी भी। आपके पास एक ही समय में एक ही पते से एक वैध उपयोगकर्ता और एक सक्रिय स्कैन हो सकता है।
बॉब

3

httpd config निर्देशिका में से किसी एक में phpMyAdmin.conf ढूंढें और जोड़ें deny 73.199.136.112 कॉन्फ़िग फ़ाइल की अनुमति / इनकार खंड में और 2.4 अनुभाग में एक आईपी की आवश्यकता होती है। मैंने नीचे पूर्ण कॉन्फ़िग फ़ाइल का एक उदाहरण दिया है, जहाँ मेरे पास प्रविष्टियाँ उल्टी हैं, मैं सब कुछ ब्लॉक करता हूँ, लेकिन टूल को एक्सेस करने के लिए अनुमत आईपी सेगमेंट।

[thebtm@server conf.d]# cat /etc/httpd/conf.d/phpMyAdmin.conf
# phpMyAdmin - Web based MySQL browser written in php
# 
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 10.10.26
       Require ip 192.168.56
       Require ip 127.0.0.1       
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 10.10.25
     Allow from 192.168.56
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/frames/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin/>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>

यह कमाल का है। लेकिन समस्या यह है कि कई अलग-अलग आईपी से लगातार बॉट हैं। मैं संभवतः हर अलग-अलग आईपी के साथ नहीं रख सकता क्योंकि मुझे प्रति दिन 20-30 अद्वितीय दुर्भावनापूर्ण कूल्हों के बीच मिलता है।
व्हिटेकैट

2
यही कारण है कि मैंने रिवर्स दिखाया जहां आप उन सेगमेंट को एक्सेस करने की अनुमति देते हैं जिन्हें आप एक्सेस करना चाहते हैं और बाकी को ब्लॉक कर सकते हैं।
thebtm

Alias /phpmyadmin /usr/share/phpMyAdmind /phpmyadminसुरक्षा उद्देश्यों के लिए कुछ और के लिए बदल दिया जाना चाहिए। Alias /secret /usr/share/phpMyAdmind
निकोक्स

जब आप इसे स्थापित करते हैं और कुछ यादृच्छिक आईपी पते बनाते हैं, तो मैं उस टूल के साथ आने वाली डिफ़ॉल्ट कॉन्फिगर फाइल को संशोधित करता हूं।
thebtm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.