Kiina on minua peukaloimassa, enkä tiedä miksi en voi estää heidän pyyntöä palvelimelleni .
//host.deny
ALL: item.taobao.com ALL: 117.25.128.*
Mutta kun katson virhelokia verkkopalvelimellani tail -f /var/log/apache2/error.log
, pyynnöt sallitaan edelleen.
Kysymys: Miksi /etc/hosts.deny config ei toimi?
Vastaa
-
Tiedoston nimi on
/etc/hosts.deny
, eihost.deny
-
Kaikki palvelut eivät käytä TCP-kääreitä. Esimerkiksi
sshd
ei oletusarvoisesti ole. Apache ei myöskään. -
Voit käyttää
iptables
estää kaikki paketit kohdasta 117.25.128 / 24, esim .:iptables -I INPUT -s 117.25.128.0/24 -j DROP
-
Vielä parempi, voit käyttää fail2ban -toimintoa seurataksesi lokitiedostoa (kuten apaches access.log ja / tai error.log) ja estää automaattisesti IP-osoitteet, jotka yrittävät hyökätä palvelimeesi.
Debian-paketin kuvauksesta fail2ban
:
Fail2ban valvoo lokitiedostoja (esim. /var/log/auth.log, /var/log/apache/access.log) ja kieltää vikaalttiit osoitteet väliaikaisesti tai jatkuvasti päivittämällä nykyiset palomuurisäännöt.
Fail2ban sallii erilaisten toimintojen helpon määrittelyn, kuten IP: n kieltämisen iptables- tai hosts.deny-sääntöjen avulla tai yksinkertaisesti ilmoitussähköpostin lähettämisen.
Sen mukana toimitetaan oletusarvoisesti suodatinlausekkeet eri palveluille. (sshd, apache, qmail, proftpd, sasl jne.), mutta kokoonpanoa voidaan helposti laajentaa minkä tahansa muun tekstitiedoston seuraamiseksi. Kaikki suodattimet ja toiminnot annetaan määritystiedostoissa, joten fail2ban voidaan hyväksyä käytettäväksi useiden tiedostojen ja palomuurien kanssa.
Kommentit
Vastaa
Mitä tulee alkuperäiseen kysymykseesi. Debianin Apache-sovellusta ei ole määritetty libwrapilla, joten se ei kysy hosts.denyä. [Edellisessä vastauksessa se jo mainitaan – todellisuus on, että tcpwrappers ei ole tietoturvan ruumiillistuma, kuten se oli 90-luvulla, varsinkin kun se tulee mustalle listalle]. Sinun ei tarvitse suorittaa sitä daemonina, vaan (x) inetd-tiedostosta, mikä hidastaa sitä (huomattavasti).
Voit estää / sallia pääsyn Apache-tasolla ja tehdä ei tarvitse TCP-kääreitä Apachelle [eikä iptableja]. Et ole maininnut ssh: tä, mutta en koskaan jätä ssh-palvelimia suoraan ulkopuolelle. Jatka kuitenkin lukemista.
Meillä on vhost, jossa on 300 + verkkotunnukset ja myös vastaavat ongelmat taobaon, baidun ja usein jopa google-hämähäkkien kanssa. Erityisesti baidu-hämähäkit voivat olla melko aggressiivisia ja pysyviä.
Kuten olet jo tajunnut, heillä on palvelintiloja, ja vaikka estät IP: n, ne näkyvät pian uudelleen joissakin muissa IP-osoitteissa.
Ei ole käytännöllistä yrittää ylläpitää lis ts IP-osoitteet / verkkolohkot käsin.
Se toimii meille melko hyvin, että modsecurity estää käyttäjäagenttien merkkijonot pysyvästi, kun taas mod_evasive estää väliaikaisesti väärinkäyttäviä IP-osoitteita.
Tämä asetus Hakukoneiden hämähäkkien hidastamisen lisäksi sillä on myös se etu, että zombeja kuristetaan yrittäen arvata salasanoja CMS-tiedostoilla.
Modsecurity.conf: n asiaankuuluva osa
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"
Ja 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
Unohdin myös hyvin todellisen mahdollisuuden. Jos et ole tekemisissä Kiinan kanssa tai käytät kotipalvelinta, estä vain koko maa. Niiden aiheuttama hyökkäysten ja haittaohjelmien taso on oikeuttanut monet ammattilaiset tekemään niin.
http://www.cyberciti.biz/faq/block-entier-country-using-iptables/
Unohdin myös lisätä tähän melko pitkään vastaukseen alaviitteen.Usein ihmiset ehdottaa minua töissä käyttämään robots.txt-tiedostoa tällaisiin ongelmiin. Kohta on, että robots.txt on vain ehdotus etäohjelmille, ja rogue-toimijat sivuuttavat ne varmasti, eikä ole taattu, että muut indeksoijat noudattavat niitä nykyään. Esimerkiksi testeistämme Baidu ei näytä kunnioittavan heitä. (robots.txt tarkoittaa, että kysytään gangsterilta, kutista minua sen sijaan, että löi minua)
Kommentit
- Kiitos mies! niin minä ' m def aion käyttää mod_evasive-ohjelmaa, nämä konfigurointitiedostoasetukset toimivat sinulle?
- Ne toimivat melko hyvin, useimmilla palvelimillamme ei ole paljoakaan kävijöitä. Muussa tapauksessa sinun on lisättävä dospagecount-lukumäärää (enimmäiskäyntejä yhdelle sivulle IP-osoitteesta) ja dossitecount-arvoa (enimmäiskäyntejä IP-osoitteille ja IP-osoitteille) vastaavasti.
- Katso uudet ensimmäiset rivini.
- Selvä järkevyys, luin asetukset '. Kiitos vielä kerran kaikesta avustasi!
- (älä ota sitä väärin, vain ehdottaa osoitteiden estämistä verkkopalvelimessa tai Apachessa voisi olla parempi nimi) … siitä huolimatta en tullut tähän kommenttiin tässä uudestaan, lue vastaus uudestaan. Alustavien kommenttien lisäksi löydät lopulta jotain mielenkiintoisempaa.
iptables -A INPUT -s 117.25.128.0/24 -j DROP
, mutta se ei estänyt myöskään '.-I INPUT
lisää uuden säännön INPUT-ketjun yläosaan.-A INPUT
lisää sen ketjun loppuun. jos-A INPUT
ei toiminut ' ei toimi, ketjussa on täytynyt olla jokin muu sääntö, joka sallii nämä paketit.