Je voudrais autoriser une seule adresse IP à utiliser jusqu'à, disons, 1 Go de trafic par jour, et si cette limite est dépassée, toutes les demandes de cette adresse IP sont ensuite abandonnées jusqu'au lendemain. Cependant, une solution plus simple où la connexion est interrompue après un certain nombre de demandes suffirait.
Y a-t-il déjà une sorte de module qui peut le faire? Ou peut-être que je peux y parvenir grâce à quelque chose comme iptables?
Merci
Réponses:
Si vous voulez une solution Apache pure bw_mod pour Apache 2.0 et mod_bandwidth pour Apache 1.3. Ils peuvent limiter la bande passante de votre serveur pour limiter l'utilisation de la bande passante.
Il y a aussi mod_limitipconn, qui empêche un utilisateur de faire beaucoup de connexions à votre serveur. mod_cband est une autre option, mais je ne l'ai jamais utilisée.
Si vous ne voulez pas jouer avec votre installation Apache, vous pouvez mettre un proxy squid devant Apache. Il vous donne également plus de contrôle sur la limitation.
Cependant, dans la plupart des cas, le problème est lié à quelques gros objets lorsque vous souhaitez limiter la bande passante par IP et que vous souhaitez donner un message d'erreur sensé lorsqu'un utilisateur extrait trop de données et que vous le bloquez. Dans ce cas, il pourrait être plus facile d'écrire un script PHP et de stocker les informations d'accès dans une table temporaire dans une base de données.
la source
Ceci est ma solution iptables pour ce genre de problème. Ajustez
--seconds
--hitcount
selon vos besoins, également le tableau iptables.Expliqué:
iptables
Vérifiez si l'IP source est répertoriée dans le fichier / proc / net / ipt_recent / ATACK pendant 5 fois ou plus dans un intervalle de 600 secondes et s'il s'agit d'une NOUVELLE demande. Si c'est le cas, faites un rejet; autreiptables
vérifiez si la demande est destinée au port 80. Si c'est le cas, imprimez l'IP et l'horodatage dans / proc / net / ipt_recent / ATACK et transférez le paquet.Cela fonctionne bien pour mes besoins.
la source
Avez-vous regardé un outil comme fail2ban? Si cela peut être un peu dur pour vous, mais cela vous permettrait de limiter le nombre de demandes pour lesquelles une IP donnée est autorisée. Cela fonctionne en examinant les journaux et vous définissez des règles pour le nombre de violations par heure autorisées, donc pour vous, il peut s'agir de demandes par jour. Une fois qu'ils ont terminé, cela peut faire des choses comme les bloquer à l'aide d'ipchains.
Je l'ai utilisé pour bloquer avec succès les attaques DDoS contre un serveur de messagerie. Il peut cependant consommer une quantité importante de puissance processeur.
la source
essayez
mod_dosevasive
oumod_security
mod_dosevasive
peut être configuré pour interdire une adresse IP après un nombre spécifié ou des demandes de page à un site dans un délai spécifié.la source