To, czego chcesz, to Fail2ban (zakładając, że to maszyna z systemem Linux, nie powiedziałeś ...)
Co to jest Fail2ban?
Fail2ban przeanalizuje dzienniki systemowe, szukając określonych wyrażeń regularnych do zablokowania. Kiedy znajdzie dopasowanie (lub kilka dopasowań z tego samego adresu IP, w zależności od tego, jak je skonfigurujesz), zostanie zablokowane, zwykle za pośrednictwem IPTables. Zwykle służy to do blokowania nieudanych prób uwierzytelnienia przeciwko SSH lub serwerom internetowym.
Skonfigurujesz go tak, aby banował przez określony czas (może to być minut, może być dni ... zależy od tego, jak są trwałe), po czym ban wygaśnie, chyba że spróbuje ponownie.
W jaki sposób pomaga to blokować boty skanujące phpmyadmin?
Równie łatwo można go użyć do dopasowania typowych oznak ataku, takich jak próba uzyskania dostępu do nieistniejących folderów phpmyadmin. Musisz znaleźć prawidłowe wyrażenie regularne, aby dopasować je do takich prób i upewnić się, że nie blokujesz legalnych użytkowników.
Konfiguracja podana w tym poście na blogu może działać dosłownie lub wymagać drobnych poprawek w konfiguracji.
Dlaczego mam je blokować? Błędy 404 nie kosztują dużo
Zablokowanie ich w iptables ma pewne zastosowanie - istnieje prawdopodobieństwo, że sprawdzą podatność na phpmyadmin, mogą wypróbować również inne usługi pod kątem luk, dopóki nie trafią na coś, co działa. Zakazanie ich spowoduje, że większość botów / skryptów zrezygnuje po pewnym czasie i przejdą do lepszych celów.
Nawet podczas skanowania nie kosztują dużo (chyba że faktycznie znajdują lukę), zalewają twoje logi, co utrudnia dostrzeżenie udanych ataków i problemów z twoim serwerem internetowym.
Jak mówi poniższy komentarz, Fail2ban wymaga pewnych zasobów systemowych. Ale nie za dużo. Przynajmniej mogę powiedzieć, że nigdy nie miałem problemu z wydajnością, który mógłbym przypisać do Fail2ban. Miałem jednak problemy z wydajnością od bardzo agresywnych skryptów próbujących brutalnie wymuszać hasła lub rzucających tysiące prób iniekcji SQL i innych exploitów na sekundę na moim serwerze. Blokowanie ich na poziomie zapory zabiera o FAR mniej zasobów niż blokowanie ich na poziomie serwera / aplikacji. Można go także rozszerzyć, aby uruchamiał niestandardowe skrypty blokujące adresy IP - więc zamiast banować je w tabelach IP, możesz mieć możliwość zablokowania ich w zaporze sprzętowej lub wysłać e-mail do kogoś, jeśli ta sama osoba próbuje cię zaatakować, abyś mógł złożyć skargę do swojego dostawcy usług internetowych lub niech twoje centrum danych zablokuje je w swoich zaporach ogniowych.
Jakieś inne wskazówki?
WYSOCE ZALECANE jest, aby umieścić na białej liście kilka adresów IP, które kontrolujesz, aby nie przypadkowo się zablokować.