Ik “word bedrogen door China, en weet niet waarom ik” hun verzoek aan mijn server niet kan blokkeren .
//host.deny
ALL: item.taobao.com ALL: 117.25.128.*
Maar als ik het foutenlogboek op mijn webserver tail -f /var/log/apache2/error.log
bekijk, worden de verzoeken nog steeds doorgelaten.
Vraag: Waarom werkt mijn /etc/hosts.deny configuratie niet?
Antwoord
-
Het bestand heet
/etc/hosts.deny
, niethost.deny
-
Niet alle services gebruiken tcp-wrappers.
sshd
, bijvoorbeeld, niet “standaard. Apache ook niet. -
Je kunt om alle pakketten van 117.25.128 / 24 te blokkeren, bijv .:
iptables -I INPUT -s 117.25.128.0/24 -j DROP
-
Nog beter, je kunt fail2ban gebruiken om een logbestand te controleren (zoals apache s access.log en / of error.log) en automatisch IP-adressen blokkeren die uw server proberen aan te vallen.
Van de debian fail2ban
pakketbeschrijving:
Fail2ban bewaakt logbestanden (bijv. /var/log/auth.log, /var/log/apache/access.log) en verbiedt tijdelijk of permanent storingsgevoelige adressen door bestaande firewallregels bij te werken.
Fail2ban maakt eenvoudige specificatie van verschillende acties mogelijk, zoals het verbannen van een IP met iptables of hosts.deny-regels, of gewoon om een notificatie-e-mail te sturen.
Standaard wordt het geleverd met filteruitdrukkingen voor verschillende services (sshd, apache, qmail, proftpd, sasl etc.) maar de configuratie kan gemakkelijk worden uitgebreid voor het monitoren van elk ander tekstbestand. Alle filters en acties worden gegeven in de configuratiebestanden, dus fail2ban kan worden gebruikt voor gebruik met een verscheidenheid aan bestanden en firewalls.
Reacties
Antwoord
Wat betreft uw oorspronkelijke vraag. Mijn Apache in debian is niet geconfigureerd met libwrap, dus het zal “hosts.deny niet raadplegen. [Het vorige antwoord vermeldt het al – de realiteit is dat tcpwrappers niet het toppunt van beveiliging is zoals het was in de jaren 90, vooral als het komt naar blacklisting]. Je zou het niet als een daemon moeten draaien, maar vanaf (x) inetd, wat het (aanzienlijk) zou vertragen.
Je kunt toegang blokkeren / toestaan op Apache-niveau, en geen tcp-wrappers nodig voor Apache [of iptables trouwens]. Je hebt ssh niet genoemd, maar ik laat ssh-servers nooit rechtstreeks open voor de buitenwereld. Blijf echter lezen.
We hebben een vhost met 300 + domeinen, en ook soortgelijke problemen, met taobao, baidu en vaak zelfs met google spiders. Met name baidu-spiders kunnen behoorlijk agressief en persistent zijn.
Zoals je al hebt ontdekt, hebben ze boerderijen met servers, en zelfs als u een IP blokkeert, zullen ze binnenkort weer verschijnen vanaf een aantal andere IP-adressen.
Het is helemaal niet praktisch om te proberen lis aantal IP-adressen / netblocks met de hand.
Wat het voor ons vrij goed werkt, is dat modsecurity user-agent-strings permanent blokkeert terwijl mod_evasive tijdelijk IPs blokkeert die misbruik maken.
Deze opstelling heeft, naast het vertragen van spiders van zoekmachines, ook het voordeel dat het zombies vertraagt die wachtwoorden proberen te raden op CMSen.
Het relevante deel van onze 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"
En onze 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
Ik vergat ook een zeer reële mogelijkheid. Als u geen zaken doet met China of uw thuisserver gebruikt, blokkeert u gewoon het hele land. Het niveau van aanvallen en malware dat van hen komt, heeft veel professionals gerechtvaardigd om dat te doen.
http://www.cyberciti.biz/faq/block-entier-country-using-iptables/
Ik vergat ook om aan dit nogal lange antwoord een voetnoot toe te voegen.Vaak raden mensen me op het werk aan om robots.txt te gebruiken voor dit soort problemen. Het punt is dat robots.txt slechts een suggestie is voor externe programmas. Malafide acteurs negeren ze zeker en het is niet gegarandeerd dat andere webcrawlers ze tegenwoordig respecteren. Uit onze tests blijkt bijvoorbeeld dat Baidu ze niet nakomt. (robots.txt het komt neer op een gangster te vragen, kietel me in plaats van te slaan)
Reacties
- Bedankt man! ja ik ‘ m ga def mod_evasive gebruiken, die configuratiebestanden werken goed voor je?
- Ze werken redelijk goed, de meeste van onze vhosts hebben niet veel bezoekers. Anders moet u het aantal dospagecounts (max. Bezoeken aan een enkele pagina vanaf een IP) en dossitecount (max. Bezoeken van en IP) dienovereenkomstig verhogen.
- Kijk alstublieft nogmaals naar mijn eerste regels.
- Ik begrijp dat het logisch is, ik ‘ zal de instellingen lezen. Nogmaals bedankt voor al je hulp!
- (vat het niet verkeerd op, suggereer alleen het blokkeren van adressen op de webserver of Apache zou een betere titel kunnen zijn) … toch was het niet voor deze opmerking dat ik kwam hier nogmaals, lees het antwoord nogmaals. Behalve opmerkingen in het begin, zul je uiteindelijk iets interessants vinden.
iptables -A INPUT -s 117.25.128.0/24 -j DROP
geprobeerd, maar dat blokkeerde ‘ ook niet.-I INPUT
voegt de nieuwe regel toe bovenaan de INPUT-keten.-A INPUT
voegt het toe aan de onderkant van de keten. als-A INPUT
niet ‘ werkte, moet er eerder in de keten een andere regel zijn geweest die deze pakketten toestond.