IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Filtrage iptables (netfilter) qui ne fonctionne pas (?!)


Sujet :

Sécurité

  1. #1
    Invité
    Invité(e)
    Par défaut Filtrage iptables (netfilter) qui ne fonctionne pas (?!)
    Bonjour à tous,

    Je sèche complètement sur le problème suivant...

    Sur mon serveur privé, je voudrais interdire des IP (de spammeurs) par des règles Iptables.

    Mais en essayant déjà avec l'IP de test aa.bbb.ccc.dd, je constate que rien ne marche, alors que la règle se retrouve bien dans les iptables après visualisation de celles-ci !!!

    J'ai tout essayé, enfin je crois :
    iptables -A INPUT -i eth1 -s aa.bbb.ccc.dd -j DROP
    ainsi que :
    iptables -A INPUT -s aa.bbb.0.0/16 -j DROP ou : iptables -A INPUT -i eth1 -s aa.bbb.0.0/16 -j DROP
    (pour interdire carrément toutes les IPs de la plage aa.bbb.0.0 à aa.bbb.255.255)
    Rien à faire : l'IP aa.bbb.ccc.dd arrive toujours à accéder à mon site, nous envoyer des mails, faire du FTP... !

    Est-ce que ces règles sont mal écrites ? Je suppose qu'une fois rentrée (en SSH), l'application de la règle est immédiate ?
    Dans le cas contraire, qu'est ce qui peut clocher ?

    MERCI DE VOTRE AIDE !

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 102
    Points
    102
    Par défaut
    Ca devrait fonctionner.
    A savoir que si tu as une règle (qui normalement y est) dit "ne pas casser les connexions établies" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    tu devras "fermer" la connexion pour que ta règle s'applique. Donc si par exemple tu souhaites bloquer une attaque sur apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    iptables -A INPUT -s 113.22.48.20 -j DROP
    /etc/init.d/apache2 stop
    sleep 1
    /etc/init.d/apache2 start
    A savoir aussi, les règles de blocage doivent être écrites après les règles "d'acceptation" (ou l'inverse petit trou de mémoire).

    Tu peux regarder pour utiliser fail2ban dans ton cas qui permet déjà de regarder les IPs de tentative d'utilisation de ton serveur de mail pour tester un open relay.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tout d'abord merci beaucoup pour ton aide Meskalyn.

    Cependant, je suis débutant et je ne suis pas sur de bien comprendre...

    Voici mon iptables-save, aussitot après un redémarrage du serveur (donc effacement des anciennes iptables et nouvelles iptables créées par défaut) et l'ajout de la règle perso : -A INPUT -s aa.bbb.ccc.dd -j DROP
    (juste avant : -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT)

    Est-ce que cette règle se met (automatiquement...) à la bonne place ?

    ENCORE MERCI !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    # Generated by iptables-save v1.3.8 on Wed Jan  6 19:06:39 2010
    *mangle
    :PREROUTING ACCEPT [222022:174104224]
    :INPUT ACCEPT [222022:174104224]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [237945:251465799]
    :POSTROUTING ACCEPT [237288:251439262]
    COMMIT
    # Completed on Wed Jan  6 19:06:39 2010
    # Generated by iptables-save v1.3.8 on Wed Jan  6 19:06:39 2010
    *filter
    :INPUT DROP [0:0]
    :FORWARD DROP [0:0]
    :OUTPUT DROP [0:0]
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with tcp-reset 
    -A INPUT -m state --state INVALID -j DROP 
    -A INPUT -i lo -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 49152:65534 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 8880 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 106 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 9008 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 9080 -j ACCEPT 
    -A INPUT -p udp -m udp --dport 137 -j ACCEPT 
    -A INPUT -p udp -m udp --dport 138 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 445 -j ACCEPT 
    -A INPUT -p udp -m udp --dport 1194 -j ACCEPT 
    -A INPUT -p udp -m udp --dport 53 -j ACCEPT 
    -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 8/0 -j DROP 
    -A INPUT -j ACCEPT 
    -A INPUT -s aa.bbb.ccc.dd -j DROP 
    -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A FORWARD -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with tcp-reset 
    -A FORWARD -m state --state INVALID -j DROP 
    -A FORWARD -i lo -o lo -j ACCEPT 
    -A FORWARD -j DROP 
    -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with tcp-reset 
    -A OUTPUT -m state --state INVALID -j DROP 
    -A OUTPUT -o lo -j ACCEPT 
    -A OUTPUT -j ACCEPT 
    COMMIT
    # Completed on Wed Jan  6 19:06:39 2010
    # Generated by iptables-save v1.3.8 on Wed Jan  6 19:06:39 2010
    *nat
    :PREROUTING ACCEPT [3319:180747]
    :POSTROUTING ACCEPT [2418:153344]
    :OUTPUT ACCEPT [2369:151384]
    COMMIT
    # Completed on Wed Jan  6 19:06:39 2010

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 102
    Points
    102
    Par défaut
    Hum c'est assez "complexe" (beaucoup de règles), et je n'ai pas l'habitude d'autant de règles différentes. M'étant battu pas mal de temps avec certaines règles ça me rappelle des bons souvenirs.
    Puis-je avoir l'output d'un (un peu plus l'habitude de ce format).

    La technique que je te conseillerais serait de virer complètement toutes tes règles iptables et de tester celle que tu veux, seule, qui normalement devrait fonctionner sans aucun soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -A INPUT -j ACCEPT 
    -A INPUT -s aa.bbb.ccc.dd -j DROP
    Sauf si j'ai mal lu, tu n'as pas de règles qui te disent de "bloquer avant" donc je ne comprends pas pourquoi tu veux les accepter. C'est peut-être cette règle qui "fou la merde".

    Je ne suis pas un expert dans ce type de règles donc tous mes messages et conseils sont à effectuer de manière "fait gaffe"


    Voici un des scripts que j'utilise personnellement pour fermer/laisser ouvert un peu ce que je veux dans mysql et autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #!/bin/bash
    # Variables serveurs
    LUCY=91.121.XX.XX
    MARIE=91.121.XX.XX
    # Vider les tables actuelles
    iptables -t filter -F
    iptables -t filter -X
    echo - Vidage : [OK]
    sleep 1
    iptables -N BLACKLIST-IN
    iptables -I INPUT -j BLACKLIST-IN
    iptables -A BLACKLIST-IN -s 35.0.0.0/8 -m comment --comment "Hack Attemps" -j DROP
    ## Toute ma liste ici
    echo - Banlist : [OK]
    # Ne pas casser les connexions etablies
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    echo - Ne pas casser les connexions etablies : [OK]
    # MySQL
    iptables -t filter -A INPUT -p tcp --source 127.0.0.1 --dport 3306 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --source $LUCY --dport 3306 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --source $AUDREY --dport 3306 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --source $MARIE --dport 3306 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --dport 3306 -j DROP
    echo - MySQL : [OK]
    ## etc..
    En fait je créé un nouveau filtre "blacklist" ce qui me permet de le désactiver ou non.
    Par défaut je ne bloque ni autorise pas les choses que je connais. Par exemple, je n'autorise pas le SSH qui est autorisé par défaut, une règle en moins. (D'ailleurs en passant si ton port SSH est changé par exemple en 222, tu peux mettre un bon gros REJECT sur le port 22 qui fait croire que ton port SSH est fermé )

Discussions similaires

  1. Filtrage au niveau de la requête qui ne fonctionne pas comme prévu
    Par hartecel dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/06/2008, 14h06
  2. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  3. Iptables configuration qui ne marche pas....
    Par The_Nail dans le forum Sécurité
    Réponses: 7
    Dernier message: 03/02/2004, 14h27
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo