Je suis traqué par la Chine et je ne sais pas pourquoi je ne peux pas bloquer leur requête à mon serveur .
//host.deny
ALL: item.taobao.com ALL: 117.25.128.*
Mais lorsque je regarde le journal des erreurs sur mon serveur Web tail -f /var/log/apache2/error.log
, les requêtes sont toujours autorisées.
Question: Pourquoi ma configuration /etc/hosts.deny ne fonctionne-t-elle pas?
Réponse
-
Le fichier sappelle
/etc/hosts.deny
et nonhost.deny
-
Tous les services nutilisent pas de tcp-wrappers.
sshd
, par exemple, ne « t » pas par défaut. Apache non plus. -
Vous pouvez utiliser
iptables
pour bloquer tous les paquets de 117.25.128 / 24, par exemple:iptables -I INPUT -s 117.25.128.0/24 -j DROP
-
Mieux encore, vous pouvez utiliser fail2ban pour surveiller un fichier journal (tel que access.log et / ou error.log) et bloque automatiquement les adresses IP qui tentent dattaquer votre serveur.
De la description du paquet debian fail2ban
:
Fail2ban surveille les fichiers journaux (par exemple /var/log/auth.log, /var/log/apache/access.log) et interdit temporairement ou de manière persistante les adresses sujettes aux pannes en mettant à jour les règles de pare-feu existantes.
Fail2ban permet de spécifier facilement différentes actions à entreprendre, comme interdire une adresse IP en utilisant les règles iptables ou hosts.deny, ou simplement envoyer un e-mail de notification.
Par défaut, il est livré avec des expressions de filtre pour divers services (sshd, apache, qmail, proftpd, sasl etc.) mais la configuration peut être facilement étendue pour surveiller tout autre fichier texte. Tous les filtres et actions sont donnés dans les fichiers de configuration, ainsi fail2ban peut être adopté pour être utilisé avec une variété de fichiers et de pare-feu.
Commentaires
Réponse
Quant à votre question initiale. Mon Apache dans Debian nest pas configuré avec libwrap, donc il ne consultera pas hosts.deny. [La réponse précédente le mentionne déjà – la réalité est que tcpwrappers nest pas la quintessence de la sécurité comme cétait le cas dans les années 90, spécialement quand il sagit à la liste noire]. Vous devrez lexécuter non pas comme un démon, mais depuis (x) inetd, ce qui le ralentirait (considérablement).
Vous pouvez bloquer / autoriser laccès au niveau dApache, et faire pas besoin de wrappers tcp pour Apache [ni iptables dailleurs]. Vous navez pas mentionné ssh, cependant je ne laisse jamais les serveurs ssh ouverts directement vers lextérieur. Cependant continuez à lire.
Nous avons un vhost avec 300 + domaines, et aussi des problèmes similaires, avec taobao, baidu, et souvent même avec les araignées google. Notamment les araignées baidu peuvent être assez agressives et persistantes.
Comme vous lavez déjà compris, elles ont des fermes de serveurs, et même si vous bloquez une adresse IP, elle réapparaîtra bientôt à partir dautres adresses IP.
Il nest pas du tout pratique dessayer de maintenir lis ts dadresses IP / netblocks à la main.
Ce que cela fonctionne plutôt bien pour nous, cest que modsecurity bloque définitivement les chaînes de lagent utilisateur tandis que mod_evasive bloque temporairement les adresses IP abusives.
Cette configuration , en plus de ralentir les araignées des moteurs de recherche, a également lavantage détrangler les zombies qui tentent de deviner les mots de passe sur les CMS.
La partie pertinente de notre 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"
Et notre 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
Jai aussi oublié une possibilité très réelle. Si vous ne traitez pas avec la Chine ou si vous utilisez votre serveur domestique, bloquez tout le pays. Le niveau dattaques et de logiciels malveillants qui en découlent a justifié de nombreux professionnels de le faire.
http://www.cyberciti.biz/faq/block-entier-country-using-iptables/
Jai aussi oublié dajouter à cette réponse assez longue une note de bas de page.Souvent, les gens me suggèrent au travail dutiliser le fichier robots.txt pour ce genre de problèmes. Le fait est que le fichier robots.txt nest quune suggestion pour les programmes distants. Les acteurs non autorisés les ignorent certainement, et il nest pas garanti que les autres robots dexploration les honorent de nos jours. Daprès nos tests, par exemple, Baidu semble ne pas les honorer. (robots.txt cela revient à demander à un gangster, merci de me chatouiller au lieu de me frapper)
Commentaires
- Merci mec! oui ‘ vais-je utiliser mod_evasive, ces paramètres de configuration du fichier fonctionnent-ils bien pour vous?
- Ils fonctionnent assez bien, la plupart de nos hôtes virtuels nont pas grand-chose visiteurs. Sinon, vous devez augmenter dospagecount (nombre maximum de visites sur une seule page à partir dune adresse IP) et dossitecount (visites maximum de et IP) en conséquence.
- Regardez à nouveau mes premières lignes sil vous plaît.
- Ça a du sens, je ‘ je vais lire les paramètres. Merci encore pour toute votre aide!
- (ne vous méprenez pas, suggérant simplement de bloquer les adresses dans le serveur web ou Apache pourrait être un meilleur titre) … néanmoins, ce nest pas pour ce commentaire que je suis venu ici encore, relisez la réponse sil vous plaît. En plus des commentaires au début, vous trouverez quelque chose de plus intéressant à la fin.
iptables -A INPUT -s 117.25.128.0/24 -j DROP
mais cela na ‘ t le bloquer non plus.-I INPUT
insère la nouvelle règle en haut de la chaîne INPUT.-A INPUT
lajoute au bas de la chaîne. si-A INPUT
na ‘ pas fonctionné, il doit y avoir eu une autre règle plus tôt dans la chaîne qui autorisait ces paquets.