Jeg blir sporet av Kina, og vet ikke hvorfor jeg ikke kan blokkere forespørselen til serveren min .
//host.deny
ALL: item.taobao.com ALL: 117.25.128.*
Men når jeg ser feilloggen på webserveren min tail -f /var/log/apache2/error.log
, blir forespørslene fremdeles tillatt.
Spørsmål: Hvorfor fungerer ikke /etc/hosts.deny config?
Svar
-
Filen heter
/etc/hosts.deny
, ikkehost.deny
-
Ikke alle tjenester bruker tcp-wrappers.
sshd
, for eksempel, gjør ikke som standard. Apache heller ikke. -
Du kan bruke
iptables
for å blokkere alle pakker fra 117.25.128 / 24, f.eks:iptables -I INPUT -s 117.25.128.0/24 -j DROP
-
Enda bedre, du kan bruke fail2ban til å overvåke en loggfil (for eksempel apaches access.log og / eller error.log) og blokker automatisk IP-adresser som prøver å angripe serveren din.
Fra debian fail2ban
pakkebeskrivelse:
Fail2ban overvåker loggfiler (f.eks. /var/log/auth.log, /var/log/apache/access.log) og forbyr midlertidig eller vedvarende adresser som er utsatt for feil ved å oppdatere eksisterende brannmurregler.
Fail2ban tillater enkel spesifisering av forskjellige handlinger som for eksempel å forby en IP ved hjelp av iptables eller hosts.nektregler, eller bare sende en varslings-e-post.
Som standard kommer den med filteruttrykk for forskjellige tjenester (sshd, apache, qmail, proftpd, sasl etc.), men konfigurasjonen kan enkelt utvides for å overvåke andre tekstfiler. Alle filtre og handlinger er gitt i konfigurasjonsfilene, slik at fail2ban kan brukes til å brukes med en rekke filer og brannmurer.
Kommentarer
Svar
Når det gjelder det opprinnelige spørsmålet ditt. Min Apache i debian er ikke konfigurert med libwrap, så den vil ikke konsultere verter. Deny. [Forrige svar nevner det allerede – virkeligheten er at tcpwrappers ikke er selve symbolet på sikkerhet som det var på 90-tallet, spesielt når det kommer til svartelisting]. Du må kjøre den ikke som en demon, men fra (x) inetd, noe som vil redusere hastigheten (betydelig).
Du kan blokkere / tillate tilgang på Apache-nivå, og gjøre trenger ikke tcp-innpakninger for Apache [eller iptables for den saks skyld]. Du har ikke nevnt ssh, men jeg lar aldri ssh-servere være åpne utenpå direkte. Fortsett å lese videre.
Vi har en vhost med 300 + domener, og også lignende problemer, med taobao, baidu og ofte til og med google edderkopper. Spesielt baidu edderkopper kan være ganske aggressive og vedvarende.
Som du allerede har funnet ut, har de gårder med servere, og selv om du blokkerer en IP, vil de vises igjen snart fra andre IP-adresser.
Det er ikke praktisk i det hele tatt å prøve å vedlikeholde lis ts av IP-adresser / nettblokker for hånd.
Det som fungerer ganske bra for oss er modsecurity som blokkerer brukeragentstrenger permanent mens mod_evasive blokkerer midlertidig IP-er som er voldelige.
Dette oppsettet , i tillegg til å bremse edderkopper fra søkemotorer, har også fordelen av å dempe zombier som prøver å gjette passord på CMSer.
Den relevante delen av 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"
Og 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
Jeg glemte også en veldig reell mulighet. Hvis du ikke har å gjøre med Kina eller kjører hjemmeserveren din, er det bare å blokkere hele landet. Nivået på angrep og skadelig programvare som kommer fra dem, har rettferdiggjort mange fagpersoner til å gjøre det.
http://www.cyberciti.biz/faq/block-entier-country-using-iptables/
Jeg har også glemt å legge til dette ganske lange svaret en fotnote.Ofte foreslår folk meg på jobben for å bruke robots.txt til denne typen problemer. Poenget er roboter.txt er bare et forslag til eksterne programmer. Skurkaktører ignorerer dem absolutt, og det er ikke garantert at andre nettcrawlere ærer dem i dag. Fra testene våre ser Baidu for eksempel ikke ut til å ære dem. (robots.txt det tilsvarer å spørre en gangster, vær så snill å kile meg i stedet for å slå meg)
Kommentarer
- Takk mann! ja jeg ' Jeg vil definitivt bruke mod_evasive, de som konfigurerer filinnstillinger fungerer bra for deg?
- De fungerer ganske bra, de fleste av våre vhosts har ikke mye besøkende. Ellers må du øke dospagecount (maks antall besøk på en enkelt side fra en IP), og dossitecount (max besøk av og IP) tilsvarende.
- Se på de første linjene mine igjen.
- Fikk det fornuftig, jeg ' Jeg vil lese om innstillingene. Takk igjen for all hjelpen!
- (ikke ta det galt, bare foreslå å blokkere adresser på webserveren eller Apache kan være en bedre tittel) … likevel var det ikke for denne kommentaren jeg kom her igjen, les svaret igjen takk. Foruten kommentarer i begynnelsen, vil du finne noe mer interessant til slutt.
iptables -A INPUT -s 117.25.128.0/24 -j DROP
men det blokkerte ikke ' det heller.-I INPUT
setter inn den nye regelen øverst i INPUT-kjeden.-A INPUT
legger den til bunnen av kjeden. hvis-A INPUT
ikke fungerte ', må det ha vært noen annen regel tidligere i kjeden som tillot disse pakkene.