Page 1 sur 1

Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 15 avr. 2010, 22:16
par Beaudav76
Bonjour,

je possede un serveur que j'administre moi-meme, un serveur de telechargement. or il se trouve que certaines personnes ouvrent plusieurs connections simultanements pour le meme fichier et donc cela sature mon serveur.

Jusqu'a maintenant, j'utilisait la commande "tail -f" pour voir les acces log de apache en temps reel et bannir ceux que je voyait ouvrir plus de 5 sessions sur le meme fichier avec le parefeu de linux "iptables".
Mais comme vous pouvez le penser, cela prend enormement de temps et demande a etre 24/24h devant l'ecran a surveiller.

Etant donné mon niveau tres debutant en informatique, je souhaiterai que vous m'aidez afin de créer une routine qui va directement bannir ceux qui ouvrent plus de 5 sessions par fichier en utilisant toujours le "iptables" de linux.
J'imagine que ca doit etre tres simple pour un informaticien : creer un fichier .php qui va :

1- analyser le fichier "acces log" de apache
2- Si une meme adresse ip apparait plus de 5 fois en moins de 3 minutes
3- Ajouter cette ip a iptables

Avez vous compris ? Est ce qu'il y a quelqu'un d'un haut niveau en informatique pour créer ce script et le mettre dans le forum ?
S'il vous plait j'ai vraiment besoin de ce script car mon serveur est quasiment tout le temps surchargé. Je sais qu'il y a des "bon" en informatique.


Merci d'avance à tous.

Cordialement
david

Re: Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 15 avr. 2010, 22:40
par @rthur
Bonjour,

Tu peux faire cela directement avec iptables:
http://www.cyberciti.biz/faq/iptables-c ... its-howto/

Re: Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 16 avr. 2010, 21:10
par dunbar
Salut,

La même chose mais en français :wink:

Re: Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 16 avr. 2010, 21:22
par stopher
slt ,
le probléme avec ce genre de solutions , c'est la limite concerne le nombre de connexions par ip , peu importe la destination ...

Alors imaginons un site avec X fichiers Js à charger , X images , ect .. on a vite fait de dépasser le quota !

Le but est donc de limiter le nombre de connections simultanées , par ip et par destination en un temps donné .

Iptables doit aussi pouvoir le faire , mais je n'ai pas la recette en main ...

Le serveur nginx possède un module ( même deux : nb req/sec pour une location et con. simultanées/sec pour une location ) qui gère ce genre de cas .. mais malheureusement pas apache ( il y avait bien le mod_evasive , mais introuvable aujourd'hui projet arrêté ? )

Nginx peut être mis en plus d'apache , qui te sert donc de serveur frontal , qui fait proxy , limitant ainsi les requêtes selon tes régles , et servant les données statiques en cache , qui soulage donc apache ( le tout sur la même machine si tu le souhaites )
Mais bon , il faut que tu le mettes en place ... ( ce qui reste une choses assez simple ... )

Mais bon , ipatables doit pouvoir gérer ce genre de cas ... quelqu'un a la recette ?

Ch.

Re: Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 16 avr. 2010, 21:59
par beaudav76
Bonjour a tous,

Deja merci de vos reponses. mais en fait je connaissait deja cette documentation et il n'explique pas comment automatiser cela.

Au faite je reexplique la situation : je veux créer un script PHP qui va analyser le fichier access.log de apache, et qui va regarder si plus de 1 ip apparait plus de 5 fois en moins de 3 minutes avec un "grep -i "/proxy" qui est un mot qui apparait a chaque telechargement : comme ca meme si la personne va sur des images ou autres, le script ne va pas le comptabniliser dans les 5 fois.

Et, comme je le disais, je ne suis pas tres bon, meme vraiment pas tres bon en informatique, or il me faudrait ce script urgemment. je pense que ca doit etre simple avec une function qui analyse le fihcier et une autre avec un "if" : $ip et $time 3 minutes. Vous voyez ce que je veux dire ?
Ce serait excellent si un BON improvise un script et le poste sur ce forum car mon serveur est tout le temps surchargés et donc j'en ai vraiment besoin. SVP, c'est tres urgent.

Merci d'avance a tous de votre aide et votre solidarité.
David

Re: Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 16 avr. 2010, 22:17
par stopher
Ce serait excellent si un BON improvise un script et le poste sur ce forum car mon serveur est tout le temps surchargés et donc j'en ai vraiment besoin. SVP, c'est tres urgent.
Sur le coté urgent de la chose , je pense que le message est passé ;-)
Pour ce qui est du script fait comme ça sur mesure , par un des membres du forum , ce n'est pas vraiment la politique de ce forum , qui valorise plutôt l'entraide pour trouver la solution , qu'à fournir une solution finale à chaque demandeur .

Pour ton probléme , je pense qu'un appel systéme à chaque connexion , n'est pas forcément nécessaire .
php connait l'adresse du client à chaque requête , si le téléchargement se fait via un lien "sécurisé" ( et non direct ) , alors tu peux gérer cela facilement via une table temporaire ( avec le moteur memory en mysql ou directement APC pour un acces rapides ) avec trois champs par exemle ,

ip client : ressource : timestamp

Via ce champ à chaque demande , tu vérifies si l'ip n'est pas déjà présente , et si c'est la cas , tu vérifies le timestamp de la derniére demande , si la différence est < à ta limite , tu envoies "null" sinon , tu lances l'upload demandé .

Ne pas oublier le nettoyage régulier de la tale temporaire , pour éviter de saturer la mémoire.

Ch.

Re: Besoin d'aide : bannir ip automatiquement -URGENT-

Posté : 17 avr. 2010, 01:39
par @rthur
Et, comme je le disais, je ne suis pas tres bon, meme vraiment pas tres bon en informatique, or il me faudrait ce script urgemment. [...]
Ce serait excellent si un BON improvise un script et le poste sur ce forum car mon serveur est tout le temps surchargés et donc j'en ai vraiment besoin. SVP, c'est tres urgent.
Je pense qu'une petite mise au point s'impose :

1) PHPFrance n'est pas un site de distribution de scripts "clés-en-main".
Nous sommes là pour te donner les pistes à suivre et t'aider si tu bloques sur un point particulier, pas pour réaliser à ta place le script que tu cherches.

2) Tes délais ne nous intéressent pas.
Nous savons que tu es en difficulté puisque tu demandes de l'aide, mais nous sommes tous bénévoles et répondons selon nos disponibilités. En conséquence, le caractère "urgent" de ta demande n'est pas approprié.


En conclusion : si tu es véritablement pressé et que tu n'as pas les compétences pour (ou que tu ne souhaites pas) développer le script toi-même alors PHPfrance n'est pas le bon forum. Ce que tu recherches est un développeur pour te coder ta solution et cela à un coût, adresses toi à un freelance ou à une webagency.
Si tu souhaites, réaliser le script toi-même et que tu bloques sur un point particulier, alors bienvenue sur PHPfrance! => Quel problème rencontres-tu? Qu'as-tu essayé? Où bloques-tu?