Jag leds av Kina och vet inte varför jag inte kan blockera deras begäran till min server .

//host.deny

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

Men när jag tittar på felloggen på min webbserver tail -f /var/log/apache2/error.log begärs fortfarande förfrågningarna.

Fråga: Varför fungerar inte min /etc/hosts.deny-konfiguration?

Svar

  1. Filen heter /etc/hosts.deny, inte host.deny

  2. Inte alla tjänster använder tcp-omslag. sshd, till exempel, fungerar inte som standard. Inte heller apache.

  3. Du kan använda iptables för att blockera alla paket från 117.25.128 / 24, t.ex.:

      iptables -I INPUT -s 117.25.128.0/24 -j DROP  
  4. Ännu bättre kan du använda fail2ban för att övervaka en loggfil (t.ex. apaches access.log och / eller error.log) och automatiskt blockera IP-adresser som försöker attackera din server.

Från debian fail2ban paketbeskrivning:

Fail2ban övervakar loggfiler (t.ex. /var/log/auth.log, /var/log/apache/access.log) och förbjuder tillfälligt eller ihållande adresser genom att uppdatera befintliga brandväggsregler.

Fail2ban gör det enkelt att specificera olika åtgärder som att förbjuda en IP-adress med hjälp av iptables eller hosts.deny-regler, eller helt enkelt att skicka ett e-postmeddelande.

Som standard kommer det med filteruttryck för olika tjänster (sshd, apache, qmail, proftpd, sasl etc.) men konfigurationen kan enkelt utökas för övervakning av andra textfiler. Alla filter och åtgärder anges i konfigurationsfilerna, så fail2ban kan användas för att användas med en mängd olika filer och brandväggar.

Kommentarer

  • Ok ja jag ' Redigerar brickan. Ah okej, ja, jag försökte iptables -A INPUT -s 117.25.128.0/24 -j DROP men det blockerade inte ' heller.
  • -I INPUT infogar den nya regeln högst upp i INPUT-kedjan. -A INPUT lägger till det i botten av kedjan. om -A INPUT inte fungerade ' måste det ha funnits någon annan regel tidigare i kedjan som tillät dessa paket.
  • ahhh okej, jag ' m antar jag att företräde är topp till botten då?
  • ja. första matchningsregeln vinner.
  • Perfekt det ser ut att fungera! Tack. Snabb fråga men så många förfrågningar kommer från samma hänvisning, dvs. (item.taobao.com) med olika klient-IP ' s, så jag ' antar att de ' använder någon form av omdirigering. Finns det ett sätt att blockera med referens, eller blockera med 117. * använder som en jokerteckenväljare?

Svar

När det gäller din ursprungliga fråga. Min Apache i debian är inte konfigurerad med libwrap, så det kommer inte att rådfråga värdar. Deny. [Det tidigare svaret nämner det redan – verkligheten är att tcpwrappers inte är ett symbol för säkerhet som det var på 90-talet, speciellt när det kommer till svartlistning]. Du måste köra den inte som en demon, utan från (x) inetd, vilket skulle sakta ner den (avsevärt).

Du kan blockera / tillåta åtkomst på Apache-nivå och göra behöver inte tcp-omslag för Apache [eller iptables för den delen]. Du har inte nämnt ssh, men jag lämnar aldrig ssh-servrar öppna direkt på utsidan. Fortsätt dock läsa vidare.

Vi har en vhost med 300 + domäner, och även liknande problem, med taobao, baidu och ofta till och med med google-spindlar. Speciellt baidu-spindlar kan vara ganska aggressiva och ihållande.

Som du redan har tänkt på har de gårdar med servrar, och även om du blockerar en IP kommer de att visas igen snart från andra IP-adresser.

Det är inte praktiskt alls att försöka behålla lis ts av IP-adresser / nätblock för hand.

Vad det fungerar för oss ganska bra är modsecurity som blockerar användaragentsträngar permanent medan mod_evasive blockerar tillfälligt IP-adresser som är missbrukande.

Denna inställning , förutom att sakta ner spindlar från sökmotorer, har det också fördelen att strypa ner zombier som försöker gissa lösenord på CMS. >

Och vår 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 

Jag glömde också en mycket verklig möjlighet. Om du inte hanterar Kina eller kör din hemserver, blockerar du bara hela landet. Nivån på attacker och skadlig programvara som kommer från dem har motiverat många yrkesverksamma att göra det.

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

Jag glömde också att lägga till en fotnot till detta ganska långa svar.Ofta föreslår folk mig på jobbet att använda robots.txt för den här typen av problem. Poängen är att robots.txt bara är ett förslag för fjärrprogram. Skurkaktörer ignorerar dem verkligen, och det är inte garanterat att andra webbsökare hedrar dem idag. Från våra tester verkar Baidu till exempel inte respektera dem. (robots.txt det är lika mycket att fråga en gangster, snälla kittla mig istället för att slå mig)

Kommentarer

  • Tack man! ja jag ' m def kommer att använda mod_evasive, de som konfigurerar filinställningar fungerar bra för dig?
  • De fungerar ganska bra, de flesta av våra vhostar har inte mycket besökare. Annars måste du öka dospagecount (max besök på en enda sida från en IP) och dossitecount (max antal besök och IP) i enlighet med detta.
  • Titta till mina första rader igen tack.
  • Fick det vettigt, jag ' Jag läser upp inställningarna. Tack igen för all din hjälp!
  • (ta det inte fel, bara föreslå att blockera adresser på webbservern eller Apache kan vara en bättre titel) … ändå var det inte för den här kommentaren jag kom här igen, läs svaret igen tack. Förutom kommentarer i början kommer du att hitta något mer intressant till slut.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *