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

Réseau Discussion :

Routage par Iptables ignore les règles locales ?


Sujet :

Réseau

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 379
    Billets dans le blog
    1
    Par défaut Routage par Iptables ignore les règles locales ?
    Bonjour,

    Voilà mon problème. J'ai configuré iptables dans un mode "paranoïaque", c'est-à-dire que par défaut tout est en DROP, et je n'autorise strictement que quelques trafics sortants, genre www, https...

    Jusque là, ça fonctionne à merveille. Mais maintenant, j'ai activé l'ip forwarding pour faire fonctionner cette machine en temps que routeur. Le souci c'est que la machine cliente sur le réseau local peut accéder à Internet, y compris aux services qui ne sont pas explicitement autorisés sur le routeur même ! N'y aurait-il pas moyen de rediriger les paquets routés par les règles de sortie normale ?

    De plus, dans la situation actuelle, n'y a-t-il pas un risque que cette machine (Windows 98, sans firewall) soit vulnérable ? A priori non, mais je voudrais avoir confirmation.

    Merci d'avance.

    Voici mon script

    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
    #!/bin/bash
    INET=ppp0
    LOCAL=eth0
     
    # Annulation des règles
    iptables -F
     
    # Fixation des règles par défaut
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
     
    # Autoriser le trafic sur 'lo'
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    iptables -A FORWARD -i lo -j ACCEPT
    iptables -A FORWARD -o lo -j ACCEPT
     
    # Autoriser le trafic sur le réseau local
    iptables -A INPUT -i $LOCAL -j ACCEPT
    iptables -A OUTPUT -o $LOCAL -j ACCEPT
    iptables -A FORWARD -i $LOCAL -j ACCEPT
    iptables -A FORWARD -o $LOCAL -j ACCEPT
     
    # Activer le routeur
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -A POSTROUTING -t nat -o $INET -j MASQUERADE
     
    # Autoriser le ping sortant
    iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
     
    # Autoriser le trafic DNS
    iptables -A INPUT -i $INET -p udp --sport domain -j ACCEPT
    iptables -A OUTPUT -o $INET -p udp --dport domain -j ACCEPT
    iptables -A INPUT -i $INET -p tcp --sport domain -j ACCEPT
    iptables -A OUTPUT -o $INET -p tcp --dport domain -j ACCEPT
     
    # Autoriser le trafic Web
    iptables -A INPUT -i $INET -p tcp --sport www -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o $INET -p tcp --dport www -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
     
    # Autoriser le trafic Https
    iptables -A INPUT -i $INET -p tcp --sport https -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o $INET -p tcp --dport https -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour !!

    Le choix que tu as fais en supprimant tout le traffic sauf quelques ports n'est pas paranoïaque mais normal, ça permet de bien savoir ce qui passe sur le Net.

    Dans ton cas et ta confirguration, il est normal que ton LAN puisse accéder à n'impote quel port sur le web et inversement.

    Ton script est écrit pour le partage de ton accès à Internet (ip_forward et MASQUERADE), mais les règles iptables ne concernent que les INPUT et OUPUT (pour les services accéssibles sur ton routeur).

    Comme tu l'as écrit, de ton routeur tu peux uniquement surfer (http et https), et ton LAN peux tout faire.
    Pour gèrer parfaitement ton partage, il te faut uiliser "-A FORWARD -i $INET ..." et "-A FORWARD -o $INET ..."
    Sauf erreur, ne met pas "iptables -A FORWARD -i $LOCAL -j ACCEPT" et "iptables -A FORWARD -o $LOCAL -j ACCEPT"


    Pour la vulnérabilité du windows98, des attaques directes seront à priori bloquées, mais si c'est windows qui initialise la connexion, il a des riques.


    En espérant t'avoir aidé.

  3. #3
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 379
    Billets dans le blog
    1
    Par défaut
    Je te remercie beaucoup de ta réponse.

    Citation Envoyé par yinyang
    Le choix que tu as fais en supprimant tout le traffic sauf quelques ports n'est pas paranoïaque mais normal, ça permet de bien savoir ce qui passe sur le Net.
    J'avais peur de trop bien faire.

    Sauf erreur, ne met pas "iptables -A FORWARD -i $LOCAL -j ACCEPT" et "iptables -A FORWARD -o $LOCAL -j ACCEPT"
    Effectivement je suspectais fort ces deux règles d'être la cause du fait que le LAN passe outre les règles de filtrage.

    Pour gèrer parfaitement ton partage, il te faut uiliser "-A FORWARD -i $INET ..." et "-A FORWARD -o $INET ..."
    Euh c'est-à-dire ? Qu'est-ce que je dois modifier comme règles exactement ? Je dois compléter chacune des règles pour chaque port avec ces règles là ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Les règles INPUT et OUTPUT ne s'utillisent que pour permettre d'accéder à un service "interne" à ton routeur (un site web, un accès ftp, un accès ssh mais tout ça SUR ton routeur).

    Il faut déjà que tu modifies ces règles pour bien filtrer se qui va entrer-sortir directement de ton routeur.

    Après, dans le même esprit, il faut ajouter des règles pour savoir ce qui va traverser ton routeur (net<-->lan).

    Ces 2 règles qui suivent permettent d'accéder au pages WEB (il faut aussi ajouter les DNS)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iptables -a forward -i $net -p tcp --sport 80 --state RELATED,ESTABLISHED -j accept
    iptables -a forward -o $net -p tcp --dport 80 --state NEW,RELATED,ESTABLISHED -j accept

    Il suffit de répéter les règles pour chaque port/protocole accessible du win98.

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Par défaut
    Bonjour
    Je suis pas sur d'avoir parfaitement compris: tu as un routeur qui n'accepte que le www et le https nous sommes d'accord. Et tu voudrais que le trafic sortant de ta machine cliente sous windows 98 ne puisse utiliser que les services que tu as explicitement autorisé sur le routeur c'est bien ça?
    Si oui il faut que tu forwardes seulement les services autorisés par le routeur vers la machine cliente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iptables -A forward -i $INET -p tcp --sport 80 --state RELATED,ESTABLISHED -j accept 
    iptables -A forward -o $INET -p tcp --dport 80 --state NEW,RELATED,ESTABLISHED -j accept
    Et normalement une fois que tu auras énuméré tout ces services, ceux restant (comme le ftp) obéiront à la règle par défaut (DROP chez toi)

  6. #6
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 379
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gnux
    Je suis pas sur d'avoir parfaitement compris: tu as un routeur qui n'accepte que le www et le https nous sommes d'accord. Et tu voudrais que le trafic sortant de ta machine cliente sous windows 98 ne puisse utiliser que les services que tu as explicitement autorisé sur le routeur c'est bien ça?
    C'était en effet ce que je voulais faire.

    Maintenant ça fonctionne impeccablement. Merci yinyang et Gnux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Report ignore les parametres envoyés par form
    Par leplongeur dans le forum Reports
    Réponses: 0
    Dernier message: 10/08/2011, 12h57
  2. Ignorer les Erreurs émit par le système
    Par yann87 dans le forum Langage
    Réponses: 2
    Dernier message: 07/07/2009, 12h50
  3. Réponses: 20
    Dernier message: 19/12/2004, 18h52
  4. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 17h33
  5. Réponses: 6
    Dernier message: 28/09/2004, 16h47

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