Chiny trollują mnie i nie wiem, dlaczego nie mogę zablokować ich żądania na moim serwerze .

//host.deny

ALL: item.taobao.com ALL: 117.25.128.* 

Ale kiedy oglądam dziennik błędów na moim serwerze internetowym tail -f /var/log/apache2/error.log, żądania są nadal przepuszczane.

Pytanie: Dlaczego moja konfiguracja /etc/hosts.deny nie działa?

Odpowiedź

  1. Plik nosi nazwę /etc/hosts.deny, a nie host.deny

  2. Nie wszystkie usługi używają opakowań tcp. Na przykład sshd domyślnie nie „t. Apache też.

  3. Możesz użyć iptables, aby zablokować wszystkie pakiety od 117.25.128 / 24, np .:

      iptables -I INPUT -s 117.25.128.0/24 -j DROP  
  4. Jeszcze lepiej, możesz użyć fail2ban do monitorowania pliku dziennika (takiego jak access.log Apache i / lub error.log) i automatycznie blokuje adresy IP próbujące zaatakować serwer.

Z opisu pakietu Debiana fail2ban:

Fail2ban monitoruje pliki dziennika (np. /var/log/auth.log, /var/log/apache/access.log) i tymczasowo lub trwale blokuje adresy podatne na awarie, aktualizując istniejące reguły zapory.

Fail2ban umożliwia łatwe określenie różnych działań, które mają być podjęte, takich jak zablokowanie adresu IP za pomocą reguł iptables lub hosts.deny lub po prostu wysłanie powiadomienia e-mail.

Domyślnie zawiera wyrażenia filtrujące dla różnych usług (sshd, apache, qmail, proftpd, sasl itp.), ale konfigurację można łatwo rozszerzyć w celu monitorowania dowolnego innego pliku tekstowego. Wszystkie filtry i akcje są podane w plikach konfiguracyjnych, dlatego fail2ban może zostać zaadaptowane do użycia z różnymi plikami i zaporami ogniowymi.

Komentarze

  • OK, tak, ' edytuję kafelek. Ach ok, cóż, próbowałem iptables -A INPUT -s 117.25.128.0/24 -j DROP, ale to nie ' też go nie zablokowało.
  • -I INPUT wstawia nową regułę na górze łańcucha INPUT. -A INPUT dodaje go na końcu łańcucha. jeśli -A INPUT nie ' nie zadziałało, musiała istnieć jakaś inna reguła wcześniej w łańcuchu, która zezwalała na te pakiety.
  • ahhh ok, ja ' m zakładając, że pierwszeństwo jest od góry do dołu?
  • tak. pierwsza pasująca reguła wygrywa.
  • Doskonale, wygląda na to, że działa! Dziękuję Ci. Szybkie pytanie, ale wiele żądań pochodzi z tego samego skierowania, tj. (item.taobao.com) z innym adresem IP klienta ' s, więc ' m zakładając, że ' ponownie używamy jakiegoś rodzaju przekierowania. Czy istnieje sposób, aby blokować za pomocą odwołania lub blokować za pomocą 117. * używając podobnego selektora symboli wieloznacznych?

Odpowiedź

Co do twojego pierwotnego pytania. Mój Apache w Debianie nie jest skonfigurowany z libwrap, więc nie będzie konsultował się z hosts.deny. [Poprzednia odpowiedź już o tym wspomina – rzeczywistość jest taka, że tcpwrappers nie jest uosobieniem bezpieczeństwa tak jak w latach 90-tych, szczególnie jeśli chodzi na czarnej liście]. Musiałbyś uruchomić go nie jako demona, ale z (x) inetd, co spowolniłoby go (znacznie).

Możesz zablokować / zezwolić na dostęp na poziomie Apache i zrobić nie potrzebuję opakowań tcp dla Apache [ani iptables w tym przypadku]. Nie wspomniałeś o ssh, jednak nigdy nie zostawiam serwerów ssh bezpośrednio na zewnątrz. Jednak czytaj dalej.

Mamy vhosta z 300 + domeny, a także podobne problemy z taobao, baidu, a często nawet z pająkami Google. Zwłaszcza pająki baidu mogą być dość agresywne i trwałe.

Jak już się domyśliłeś, mają farmy serwerów, a nawet jeśli zablokujesz adres IP, wkrótce pojawią się one ponownie z innych adresów IP.

Próba utrzymania lis ts adresów IP / bloków sieci.

To, co działa dla nas raczej dobrze, to modsecurity blokujące ciągi agentów użytkownika na stałe, podczas gdy mod_evasive blokuje tymczasowo adresy IP, które są nadużywane.

Ta konfiguracja oprócz spowalniania pająków z wyszukiwarek, ma również tę zaletę, że ogranicza zombie próbujące odgadnąć hasła w systemach CMS.

Odpowiednia część naszego modsecurity.conf

SecRule REQUEST_HEADERS:User-Agent "Yandex" phase:1,deny,nolog,id:"6972" SecRule REQUEST_HEADERS:User-Agent "ichiro" phase:1,deny,nolog,id:"6973" SecRule REQUEST_HEADERS:User-Agent "Baiduspider" phase:1,deny,nolog,id:"6974" SecRule REQUEST_HEADERS:User-Agent "Baiduspider/.*" phase:1,deny,nolog,id:"6975" SecRule REQUEST_HEADERS:User-Agent "Baiduspider-video" phase:1,deny,nolog,id:"6976" SecRule REQUEST_HEADERS:User-Agent "Baiduspider-image" phase:1,deny,nolog,id:"6977" SecRule REQUEST_HEADERS:User-Agent "sogou spider" phase:1,deny,nolog,id:"6978" SecRule REQUEST_HEADERS:User-Agent "YoudaoBot" phase:1,deny,nolog,id:"6979" SecRule REQUEST_HEADERS:User-Agent "bingbot(at)microsoft.com" phase:1,deny,nolog,id:"6980" SecRule REQUEST_HEADERS:User-Agent "msnbot(at)microsoft.com" phase:1,deny,nolog,id:"6981" SecRule REQUEST_HEADERS:User-Agent "BLEXBot/1.0" phase:1,deny,nolog,id:"6982" SecRule REQUEST_HEADERS:User-Agent "Bot.*" phase:1,deny,nolog,id:"6984" SecRule REQUEST_HEADERS:User-Agent "AhrefsBot.*" phase:1,deny,nolog,id:"6985" 

I nasz mod-evasive.conf

DOSHashTableSize 2048 DOSPageCount 10 DOSSiteCount 300 DOSPageInterval 2.0 DOSSiteInterval 1.0 DOSBlockingPeriod 600.0 DOSLogDir /var/log/apache2/evasive DOSWhitelist 127.0.0.1 DOSWhitelist 1xx.xxx.xxx.xx 

Zapomniałem też o bardzo realnej możliwości. Jeśli nie masz do czynienia z Chinami lub masz serwer domowy, po prostu zablokuj cały kraj. Poziom ataków i pochodzącego z nich złośliwego oprogramowania usprawiedliwił to wielu profesjonalistów.

http://www.cyberciti.biz/faq/block-entier-country-using-iptables/

Zapomniałem też dodać do tej dość długiej odpowiedzi przypis.Często ludzie sugerują mi w pracy używanie pliku robots.txt do rozwiązywania tego typu problemów. Chodzi o to, że plik robots.txt jest jedynie sugestią dotyczącą programów zdalnych, a aktorzy z gatunku Rogue z pewnością je ignorują i nie ma gwarancji, że inne roboty sieciowe będą je obecnie honorować. Na przykład z naszych testów wynika, że Baidu wydaje się ich nie honorować. (robots.txt to równoznaczne z zapytaniem gangstera, proszę mnie łaskotać zamiast bić)

Komentarze

  • Dzięki stary! tak, ' mam zamiar używać mod_evasive, te ustawienia plików konfiguracyjnych działają dobrze?
  • Działają całkiem dobrze, większość naszych vhostów nie ma zbyt wiele goście. W przeciwnym razie musisz odpowiednio zwiększyć dospagecount (maks. Liczbę odwiedzin na jedną stronę z adresu IP) i odpowiednio dossitecount (maks. Liczbę odwiedzin i IP).
  • Spójrz ponownie na moje pierwsze wiersze.
  • Rozumiem, to ma sens, ' przeczytam o ustawieniach. Jeszcze raz dziękuję za wszelką pomoc!
  • (nie zrozumcie tego źle, po prostu sugerowanie blokowania adresów na serwerze WWW lub Apache mogłoby być lepszym tytułem) … niemniej jednak nie z powodu tego komentarza przyszedłem tutaj ponownie, przeczytaj odpowiedź ponownie. Oprócz komentarzy na początku, na końcu znajdziesz coś bardziej interesującego.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *