Co to znaczy, że w dziennikach Apache jest wiele żądań POST do /wp-login.php?

15

Wiadomości są kierowane do strony WordPress na moim serwerze. Pochodzą z dziennika access_log i nie wiem, czy to mnie martwi, czy nie.

Istnieje ponad sto linii tego samego komunikatu, rozciągających się na kilka sekund za każdym razem. Jeśli nie wiesz, co mam na myśli, oto dzienniki:

108.162.216.73 - - [22/Oct/2014:21:54:49 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:49 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:49 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:49 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:50 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:50 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:50 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:50 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:50 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:50 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:51 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:51 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:51 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:51 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:51 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:52 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:52 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:52 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:52 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:53 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:53 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:53 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:53 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:53 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:53 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:54 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:54 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:54 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:54 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
103.22.200.207 - - [22/Oct/2014:21:54:54 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"
108.162.216.73 - - [22/Oct/2014:21:54:54 -0400] "POST /wp-login.php HTTP/1.1" 200 3467 "-" "-"

Właśnie wykonałem policzenie dla wszystkich instancji dla tych dwóch adresów IP i było dostępne co najmniej ponad 100 000 razy, od 22-go.

Travis
źródło

Odpowiedzi:

30

Ktoś próbuje brutalnie wymusić twoją stronę logowania. Żądania HTTP POST są używane dla danych formularza HTML, którym w przypadku wp-login.phpstrony prawdopodobnie będzie nazwa użytkownika / hasło.

W przypadku WordPress powinieneś przeczytać tę stronę wiki , która wspomina o szeregu przydatnych kroków, które należy podjąć i chronić swoją instancję, takich jak:

  • nie używa adminnazwy użytkownika
  • wybranie silnego hasła
  • używanie wtyczek do ograniczania prób logowania na WordPress, Apache lub na poziomie serwera
  • htpasswd-ochrona strony (za pomocą generatora )

W każdym razie fail2bannależy zdecydowanie rozważyć konfigurację . Ograniczy to liczbę prób zalogowania się określonego komputera do twojego komputera (np. Przez FTP, SSH itp.).

slhck
źródło
Próbowałem skonfigurować fail2ban, ale uniemożliwiło to dostęp do mojego serwera. Był w stanie użyć bezpiecznego ponownego uruchomienia, ale nie był w stanie go usunąć ani nic. Przejrzałem swój problem i odkryłem, że inni, którzy korzystali z Centos 7, mieli ten sam problem. Na szczęście dla mnie nie miałem nic na serwerze, więc po prostu ponownie zainstalowałem system operacyjny, co zajęło kilka minut.
travis
2
Ach, to niefortunne. Nie miałem z tym problemów na moim serwerze CentOS. Zwykle nie powinno to tak bardzo przeszkadzać.
slhck
Kolejną rzeczą wartą rozważenia jest PeerGuardian.
paradroid
2
@travis Tego można się spodziewać, gdy masz loginy SSH oparte na hasłach. Powinieneś rozważyć użycie kluczy SSH do uwierzytelniania i całkowitego wyłączenia logowania opartego na hasłach SSH, i prawdopodobnie dobrym pomysłem jest również zmiana domyślnego portu SSH na serwerze
Zima,
1
@glglgl To środek odstraszający. To powstrzymuje kogoś od „Zastanawiam się, czy to nie jest bezpieczne ...” - nie powstrzyma ukierunkowanego ataku, ale powstrzyma zwykłego hakera. „Gdzie indziej jest łatwiej”.
2

Wygląda to na próbę włamania się z użyciem brutalnej siły do ​​konsoli administracyjnej witryny WordPress. Cały czas je otrzymuję na moich stronach WordPress. Gdybyś miał użytkownika o nazwie admin z hasłem „pass”, z pewnością by się do niego dostał.

Zainstaluj wtyczkę bezpieczeństwa, która będzie blokować adresy IP po określonej liczbie prób logowania. Używam Wordfence .

paradroid
źródło
4
Te adresy IP wydają się pochodzić z serwerów CDN CloudFlare w San Francisco i Japonii, co jest nieco dziwne.
paradroid
Spodziewałbym się, że to oznacza, że ​​strona stoi za CloudFlare. Prawdopodobnie jest X-Forwarded-Fornagłówek, mod_rpafktórego można użyć, ale nie jest skonfigurowany
ceejayoz
@ceejayoz Nie jestem pewien, co masz na myśli. Ponieważ wp-login.phpnie jest to plik statyczny, i tak nie będzie go w CDN. Nie rozumiem, dlaczego te połączenia przychodzące wydają się pochodzić z serwerów CDN CloudFlare. Być może CloudFlare ma również hosting serwerów?
paradroid
Możesz (i zwykle robisz) skierować całą domenę na CloudFlare. Oznacza to, że przychodzące żądania - GET i POST, dynamiczne lub statyczne - najpierw przechodzą przez CloudFlare, a zatem mają swoje adresy IP.
ceejayoz