Page 3 sur 4 PremièrePremière 1234 DernièreDernière
Affichage des résultats 21 à 30 sur 36

Discussion: iptables : bloquer des adresses IP

  1. #21
    Membre
    Date d'inscription
    November 2008
    Messages
    1 097

    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)
    Rebuild sign - Work in progress

  2. #22
    Membre
    Date d'inscription
    November 2007
    Messages
    124

    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.

  3. #23
    Membre
    Date d'inscription
    November 2007
    Messages
    124

    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.

  4. #24
    Membre
    Date d'inscription
    November 2008
    Messages
    1 097

    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?^^
    Rebuild sign - Work in progress

  5. #25
    Membre
    Date d'inscription
    November 2007
    Messages
    124

    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 ...

  6. #26
    Membre
    Date d'inscription
    October 2008
    Messages
    702

    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

  7. #27
    Membre
    Date d'inscription
    November 2007
    Messages
    124

    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 ?

  8. #28
    Membre
    Date d'inscription
    January 2007
    Messages
    6 755

    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.

  9. #29
    Membre
    Date d'inscription
    November 2007
    Messages
    124

    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 !

  10. #30
    Membre
    Date d'inscription
    August 2005
    Messages
    694

    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)

    [[]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

    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)
    Dernière modification par Cybersonic ; 19/04/2012 à 04h28.
    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'

Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •