Forum OVH  

Précédent   Forum OVH > Serveurs dédiés
FAQ Guides Recherche Messages du jour Marquer les forums comme lus

Réponse
 
Outils de la discussion
Vieux 15/04/2012, 22h21   #21
Athar
Membre
 
Date d'inscription: novembre 2008
Messages: 445
Envoyer un message via Skype™ à Athar
Re : iptables : bloquer des adresses IP

Avec la notation CIDR, a tester:

iptables -t nat -I PREROUTING -i eth0 -s IP/cidr -j DNAT --to 0

Sinon, avec un range d'adresse:
iptables -t nat -I PREROUTING -i eth0 -m iprange --src-range IP_début-IP_fin -j DNAT --to 0

Cela les stop dès l'arrivé sur le serveur, ils n’accèdent donc a rien au final (syntaxe a vérifié, je passe via un iptables-restore de mon fichier qui commence par un *nat et finit par un COMMIT)
Athar est déconnecté   Réponse avec citation
Vieux 15/04/2012, 22h25   #22
Yadutaf
Membre
 
Date d'inscription: novembre 2007
Messages: 105
Re : iptables : bloquer des adresses IP

J'ai fini par réussir à entrer mes règles ! Sans doute une faute de frappe mainte fois réitérée.
Plus qu'à relancer le pare-feux et à regarder si ça marche.

Dernière modification par Yadutaf 15/04/2012 à 23h01
Yadutaf est déconnecté   Réponse avec citation
Vieux 15/04/2012, 23h07   #23
Yadutaf
Membre
 
Date d'inscription: novembre 2007
Messages: 105
Re : iptables : bloquer des adresses IP

Merci Athar. Je n'avais pas vu ta réponse avant de poster.

Finalement, j'ai fait une boucle sur mon fichier de blocs à bannir avec :
iptables -I INPUT -j DROP -s xxx.xxx.xxx.x/xx
et la table filters c'est bien remplie.

Maintenant je cherche à finaliser l'opération. C'est-à-dire à m'assurer qu'il démarrera lors de chaque reboot.

Dernière modification par Yadutaf 15/04/2012 à 23h11
Yadutaf est déconnecté   Réponse avec citation
Vieux 16/04/2012, 00h00   #24
Athar
Membre
 
Date d'inscription: novembre 2008
Messages: 445
Envoyer un message via Skype™ à Athar
Re : iptables : bloquer des adresses IP

Avec un petit script shell qui contient ta boucle et que tu fais lancer automatiquement après l'activation du réseau?^^
Athar est déconnecté   Réponse avec citation
Vieux 16/04/2012, 11h00   #25
Yadutaf
Membre
 
Date d'inscription: novembre 2007
Messages: 105
Re : iptables : bloquer des adresses IP

Citation:
Envoyé par Athar Voir le message
Avec un petit script shell qui contient ta boucle et que tu fais lancer automatiquement après l'activation du réseau?^^
Merci, c'est fait.

Par contre, j'ai un dernier (?) petit point noir à résoudre. Je voudrais bannir automatiquement, à l'aide de fail2ban, toutes les IP qui cherchent des fichiers monchemin/*.jsp (ce sont de tels fichiers qui ont causé nos problèmes de départ).

Sur une application bien écrite je pourrais appliquer une règle basée sur l'erreur 404 comme on en trouve plein l'Internet. Malheureusement, le script actuel est tellement mauvais qu'il renvoie à tour de bras des "File not found" ... légitimes. D'où un risque certain de faux positifs pour la quasi totalité de nos visiteurs.

J'ai donc écrit le filtre fail2ban suivant :
Code:
# Fail2Ban configuration file
#
# Bannissement des IP qui recherche des fichiers de types *.jsp.
#
[Definition]
# Option: failregex
# Notes.: 
#
failregex = [[]client <HOST>[]] File does not exist: .*(jsp)
#
# Option: ignoreregex
#
ignoreregex =
Le test me renvoie :
Code:
Running tests
=============

Use regex line : /etc/fail2ban/filter.d/apache-jsp
Use single line: /var/log/apache2/error.log

No 'host' group in '/etc/fail2ban/filter.d/apache-jsp'
Cannot remove regular expression. Index 0 is not valid

Results
=======

Failregex
|- Regular expressions:
|  [1] /etc/fail2ban/filter.d/apache-jsp
|
`- Number of matches:
   [1] 0 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Sorry, no match
Je sais qu'il va falloir que je révise mes expressions régulières si je veux progresser ! Mais en attendant, si quelqu'un a une piste ...
Yadutaf est déconnecté   Réponse avec citation
Vieux 16/04/2012, 21h50   #26
guiguiabloc
Membre
 
Date d'inscription: octobre 2008
Messages: 670
Re : iptables : bloquer des adresses IP

Il y a quelques années, j'avais écrit un script basé sur iptables facilitant son approche :
http://sourceforge.net/projects/kharon/

Si tu as un iptables actif, le moyen le plus simple est de créer une nouvelle chaine :

Code:
iptables -N spammeur
iptables -I INPUT 1 -j spammeur
ensuite, a partir de ta liste de bloc CIDR, tu peux générer un script.

Code:
#!/bin/bash
LISTEBAN="nom_duf_ichier_avec_les_ips"
for i in `cat $LISTEBAN` 
do 
echo "/sbin/iptables -A spammeur -s  $i -j DROP" >> cmdban.sh
done
chmod +x cmdban.sh
echo "OK !"
Tu te retrouveras avec un fichier cmdban.sh contenant toutes les ips a bannir qu'il te suffit s'executer sur ton serveur

Code:
cat cmdban.sh
/sbin/iptables -A spammeur -s  129.44.55.66 -j DROP
/sbin/iptables -A spammeur -s  34.77.88.55.4 -j DROP
/sbin/iptables -A spammeur -s  33.55.66.33 -j DROP
__________________
http://blog.guiguiabloc.fr
guiguiabloc est déconnecté   Réponse avec citation
Vieux 17/04/2012, 08h54   #27
Yadutaf
Membre
 
Date d'inscription: novembre 2007
Messages: 105
Re : iptables : bloquer des adresses IP

Merci guiguiabloc. Je vais regarder cela. Ça semble intéressant mais plus compliqué qu'une règle fail2ban bien écrite, non ?
Yadutaf est déconnecté   Réponse avec citation
Vieux 17/04/2012, 13h05   #28
Nowwhat
Membre
 
Date d'inscription: janvier 2007
Messages: 5 530
Re : iptables : bloquer des adresses IP

Citation:
Envoyé par Yadutaf Voir le message
...Mais en attendant, si quelqu'un a une piste ...
Mon "filtre test":
C'est une copie exacte de la tienne Je le nomme 'aaa.conf' dans /etc/fail2ban/filter.d.
Code HTML:
# Fail2Ban configuration file
#
# Bannissement des IP qui recherche des fichiers de types *.jsp.
#
[Definition]
# Option: failregex
# Notes.: 
#
failregex = [[]client <HOST>[]] File does not exist: .*(jsp)
#
# Option: ignoreregex
#
ignoreregex =
Je demande une page qui n'existe pas sur mon serveur:
www.papy-team.org/test.jsp
....
Et baf, j'au un erreur dans le error. log:
Code:
.... 
[Tue Apr 17 13:56:14 2012] [error] [client 90.50.248.128] File does not exist: /var/www/test.jsp
....
Je regex:
fail2ban-regex /var/log/apache2/error.log /etc/fail2ban/filter.d/aaa.conf
qui me donne:

Code:
 
Running tests
=============
Use regex file : /etc/fail2ban/filter.d/aaa.conf
Use log file   : /var/log/apache2/error.log
 
Results
=======
Failregex
|- Regular expressions:
|  [1] [[]client <HOST>[]] File does not exist: .*(jsp)
|
`- Number of matches:
   [1] 2 match(es)
Ignoreregex
|- Regular expressions:
|
`- Number of matches:
Summary
=======
Addresses found:
[1]
    66.249.72.26 (Tue Apr 17 09:16:12 2012)
    90.50.248.128 (Tue Apr 17 13:56:14 2012)
Date template hits:
46 hit(s): MONTH Day Hour:Minute:Second
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/MONTH/Year:Hour:Minute:Second
0 hit(s): Month/Day/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
0 hit(s): Day-Month-Year Hour:Minute:Second
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601
0 hit(s): Hour:Minute:Second
0 hit(s): <Month/Day/Year@Hour:Minute:Second>
Success, the total number of match is 2
However, look at the above section 'Running tests' which could contain important information.
L'IP "90.50.248.128", c'est moi.
Je dirai donc: ton filter me semble correct.
__________________
[un Kimsufi '16' - deux 90Plan - deux 'Perso']
Debian Squeeze 6.x - sec - sans interface 'web' - histoire de se simplifier la vie ...
Nowwhat est déconnecté   Réponse avec citation
Vieux 18/04/2012, 10h33   #29
Yadutaf
Membre
 
Date d'inscription: novembre 2007
Messages: 105
Re : iptables : bloquer des adresses IP

Effectivement ma règle fonctionne. Une petite faute de frappe qui l’empêchait de fonctionner, peut-être ?

Merci Nowwhat et merci à tous pour m'avoir aidé à sortir de ce mauvais pas !
Yadutaf est déconnecté   Réponse avec citation
Vieux 19/04/2012, 04h12   #30
Cybersonic
Membre
 
Date d'inscription: août 2005
Messages: 741
Re : iptables : bloquer des adresses IP

Citation:
Envoyé par Yadutaf Voir le message
Bonne nouvelle, nous avons sans doute trouvé la faille et y avons remédié. Peut-être ...

Par contre, le blocage des IPs ne marche pas. Le serveur continue à être bombardé plusieurs milliers de fois par minute par des adresses IPs différentes. Le fichier de log, qui pesait 43 mb (!) à 16h30, fait 47 mb à 17h35 et la simple page html d'attente ne s'affiche plus. Ça ressemble à du déni de service, non ?
Ton truc que tu explique ressemble à du synflood et fatalement les IPs que tu reçois dans les logs ne t'envoi pas réellement se que tu pense (c'est simplement une seul IP qui se cache derrière tes tonnes d'IPs prise simplement depuis une liste d'IP)
Tu va simplement passé ton temps à bannir des IPs et sans le moindre effet, puisque à tout les coups le gars se cache derrière des milliers d'IPs

pense bien que si sa aurait été en provenance réel de toutes les IPs sa aurait été d'un très gros parc de PC zombie et ta bande passante serait HS et tu n'aurait plus ou rarement l'accès à ton serveur

Malheureusement il existe quelques mauvais softs qui met à la portée du premier venu un large panel d'attaques de types différents.

Si le gars est malin et que tu configure mal ton fail2ban il finira même par te faire bannir les moteurs de recherches qui te sont utiles, des bandes d'IPs bien définie avec pourquoi pas ta propre bande d'IP. Il fut un temps il était même possible d'injecter une vrai/fausse erreur log en y ajoutant des <HOST> bien défini histoire d'emmerder le monde, corrigé par les récentes versions de fail2ban, mais techniquement c'est toujours possible

et au fait pour les filtres du même genre, il existe des variantes et principalement pour selectionner plusieurs types sans pour autant refaire une ligne ou un filtre (si condition de ban idem)

Citation:
[[]client <HOST>[]] (File does not exist|script not found or unable to stat): /\S*(\.php|\.asp|\.exe|\.pl)
[[]client <HOST>[]] script '/\S*(\.php|\.asp|\.exe|\.pl)\S*' not found or unable to stat *$
[[]client <HOST>[]] (File does not exist|script not found or unable to stat): .*
et puis n'oublie pas que si comme tu dis avoir des faux négatif ou des liens mort tu peut toujours aussi utiliser la variable ignore, histoire de justement de pas prendre en compte sur ton filtre certains types de fichiers qui ne sont pas dangereux en utilisation

Citation:
ignoreregex = File does not exist: .*(favicon\.ico|robots\.txt|\.jpg|\.gif|\.png|\.tx t|\.JPG|\.GIF|\.PNG|\.ico|\.html)
Et note aussi que tu peut aussi directement dans la Cfg d'apache exclure du log access ou error certains types d'erreurs ou d'accès pour ne pas venir se mêler dans le filtre (a condition que le type de ligne log à exclure ne te soit pas utile dans un outil stats)
__________________
TEAM AREA51 'International Team' [AR51]
Administrateur www.team-area51.net - www.ar51.eu
Serveurs COD4 1er Français & 1er Mondial '4ème année consécutive'

Dernière modification par Cybersonic 19/04/2012 à 04h28
Cybersonic est déconnecté   Réponse avec citation
Réponse

Outils de la discussion

Règles de messages
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is oui
Les smileys sont activés : oui
La balise [IMG] est activée : non
Le code HTML peut être employé : non



Fuseau horaire GMT +1. Il est actuellement 16h20.


© OVH 1999-2010