Ich werde von China getrollt und weiß nicht, warum ich ihre Anfrage an meinen Server nicht blockieren kann .

//host.deny

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

Wenn ich jedoch das Fehlerprotokoll auf meinem Webserver tail -f /var/log/apache2/error.log beobachte, werden die Anforderungen weiterhin zugelassen.

Frage: Warum funktioniert meine /etc/hosts.deny-Konfiguration nicht?

Antwort

  1. Die Datei heißt /etc/hosts.deny und nicht host.deny

  2. Nicht alle Dienste verwenden TCP-Wrapper. sshd ist beispielsweise standardmäßig nicht „. Apache auch nicht.

  3. Sie können , um alle Pakete von 117.25.128 / 24 zu blockieren, z. B.:

      iptables -I INPUT -s 117.25.128.0/24 -j DROP  
  4. Noch besser ist, dass Sie fail2ban verwenden können, um eine Protokolldatei (z. B. access.log und / von apache) zu überwachen oder error.log) und blockieren automatisch IP-Adressen, die versuchen, Ihren Server anzugreifen.

Aus dem Debian fail2ban Paketbeschreibung:

Fail2ban überwacht Protokolldateien (z. B. /var/log/auth.log, /var/log/apache/access.log) und sperrt fehleranfällige Adressen vorübergehend oder dauerhaft, indem vorhandene Firewall-Regeln aktualisiert werden.

Mit Fail2ban können verschiedene Aktionen einfach festgelegt werden, z. B. um eine IP mithilfe von iptables- oder hosts.deny-Regeln zu sperren oder einfach eine Benachrichtigungs-E-Mail zu senden.

Standardmäßig werden Filterausdrücke für verschiedene Dienste geliefert (sshd, apache, qmail, proftpd, sasl usw.) Die Konfiguration kann jedoch problemlos für die Überwachung anderer Textdateien erweitert werden. Alle Filter und Aktionen sind in den Konfigurationsdateien angegeben, sodass fail2ban für die Verwendung mit einer Vielzahl von Dateien und Firewalls übernommen werden kann.

Kommentare

  • Ok ja, ich ‚ werde die Kachel bearbeiten. Ah okay, ich habe versucht iptables -A INPUT -s 117.25.128.0/24 -j DROP, aber das ‚ hat es auch nicht blockiert.
  • -I INPUT fügt die neue Regel oben in der INPUT-Kette ein. -A INPUT fügt es am Ende der Kette hinzu. Wenn -A INPUT nicht ‚ funktioniert hat, muss es früher in der Kette eine andere Regel gegeben haben, die diese Pakete zulässt.

li> ahhh okay, ich ‚ gehe davon aus, dass der Vorrang dann von oben nach unten ist?

  • yep. Die erste übereinstimmende Regel gewinnt.
  • Perfekt, es scheint zu funktionieren! Danke. Kurze Frage, so dass viele der Anfragen von der gleichen Referenz kommen, dh. (item.taobao.com) mit unterschiedlichen Client-IPs ‚ s, daher gehe ich ‚ davon aus, dass sie ‚ verwendet eine Art Umleitung. Gibt es eine Möglichkeit, nach Verweis oder nach 117 zu blockieren? * Wie ein Platzhalter-Selektor?
  • Antwort

    Wie für Ihre ursprüngliche Frage. Mein Apache in Debian ist nicht mit libwrap konfiguriert, daher wird hosts.deny nicht konsultiert. [Die vorherige Antwort erwähnt es bereits – die Realität ist, dass tcpwrappers nicht der Inbegriff von Sicherheit ist, wie es in den 90ern war, besonders wenn es darum geht zum Blacklisting]. Sie müssten es nicht als Daemon ausführen, sondern von (x) inetd, was es (erheblich) verlangsamen würde.

    Sie können den Zugriff auf Apache-Ebene blockieren / zulassen und dies tun Sie benötigen keine TCP-Wrapper für Apache [und auch keine Iptables]. Sie haben SSH nicht erwähnt, aber ich lasse SSH-Server niemals direkt nach außen offen. Lesen Sie jedoch weiter.

    Wir haben einen vhost mit 300 + Domains und ähnliche Probleme mit Taobao, Baidu und oft sogar mit Google-Spinnen. Insbesondere Baidu-Spinnen können sehr aggressiv und hartnäckig sein.

    Wie Sie bereits herausgefunden haben, gibt es Serverfarmen. und selbst wenn Sie eine IP blockieren, werden sie in Kürze von einigen anderen IP-Adressen wieder angezeigt.

    Es ist überhaupt nicht praktisch, zu versuchen, lis zu pflegen ts von IP-Adressen / Netblocks von Hand.

    Was für uns ziemlich gut funktioniert, ist, dass Modsecurity Benutzeragentenzeichenfolgen dauerhaft blockiert, während mod_evasive vorübergehend IPs blockiert, die missbräuchlich sind.

    Dieses Setup Neben der Verlangsamung von Spinnen in Suchmaschinen hat dies auch den Vorteil, dass Zombies gedrosselt werden, die versuchen, Passwörter auf CMS zu erraten.

    Der relevante Teil unserer 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" 

    Und unsere 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 

    Ich habe auch eine sehr reale Möglichkeit vergessen. Wenn Sie nicht mit China zu tun haben oder Ihren Heimserver betreiben, blockieren Sie einfach das ganze Land. Das Ausmaß der Angriffe und Malware, die von ihnen ausgehen, hat viele Fachleute dazu berechtigt.

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

    Ich habe auch vergessen, dieser ziemlich langen Antwort eine Fußnote hinzuzufügen.Oft schlagen mir Leute bei der Arbeit vor, robots.txt für diese Art von Problemen zu verwenden. Der Punkt ist robots.txt ist nur ein Vorschlag für Remote-Programme. Schurkenschauspieler ignorieren sie auf jeden Fall, und es ist nicht garantiert, dass andere Webcrawler sie heutzutage ehren. Nach unseren Tests scheint Baidu sie nicht zu ehren. (robots.txt es ist gleichbedeutend damit, einen Gangster zu fragen, bitte kitzeln Sie mich, anstatt mich zu schlagen)

    Kommentare

    • Danke Mann! Ja, ich ‚ werde auf jeden Fall mod_evasive verwenden. Diese konfigurierten Dateieinstellungen funktionieren gut für Sie?
    • Sie funktionieren recht gut, die meisten unserer vhosts haben nicht viel Besucher. Andernfalls müssen Sie die Anzahl der Dospagen (maximale Anzahl von Besuchen auf einer einzelnen Seite von einer IP) und die Anzahl der Dossiten (maximale Anzahl von Besuchen von und IP) entsprechend erhöhen.
    • Schauen Sie bitte noch einmal in meine ersten Zeilen.
    • Wenn es Sinn macht, werde ich ‚ die Einstellungen nachlesen. Nochmals vielen Dank für all Ihre Hilfe!
    • (verstehen Sie es nicht falsch, nur das Blockieren von Adressen in Webservern oder Apache könnte ein besserer Titel sein) … trotzdem bin ich nicht für diesen Kommentar gekommen Lesen Sie hier noch einmal die Antwort. Neben den Kommentaren am Anfang finden Sie am Ende etwas Interessanteres.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.