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 :

Iptables + routeur


Sujet :

Sécurité

  1. #1
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 41
    Points
    41
    Par défaut Iptables + routeur
    Bonjour,

    J'essaie actuellement de comprendre un peu les principes du réseau et la config de firewall sur linux.

    Le plus basic étant iptables, j'essaie de le mettre en place sur ma machine linux qui tourne sous mandrake 10. Voici mon réseau :

    AMD XP 1700+ : MDK 10, 192.168.1.101
    AMD XP 2500+ : WIN XP, 192.168.1.102
    AMD XP 2600+ : WIN XP, 192.168.1.103
    Routeur Linksys Linksys BEFSR41: 192.168.1.1

    Voilà, j'ai connexion ADSL Free avec le modem Sagem 908 qui est connecté à mon routeur.

    Mon problème est de configurer ma machine Linux pour qu'elle accède à Internet et d'autoriser quelques ports vu que je compte en faire un serveur WEB.

    J'ai essayé de m'inspiré de ce tuto

    http://lea-linux.org/reseau/murdefeu.html
    et de celui-là http://lea-linux.org/reseau/iptables.html

    Mais apparement, ça ne marche pas. En gros j'ai entre autres ceci :

    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
    IPTABLES=/sbin/iptables
    EXTERNAL_IF="ppp0"
    INTERNAL_IF="eth0"
     
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
     
    # "On accepte le traffic 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
     
    $IPTABLES -A INPUT -i $INTERNAL_IF -j ACCEPT
    $IPTABLES -A OUTPUT -o $INTERNAL_IF -j ACCEPT
    $IPTABLES -A FORWARD -i $INTERNAL_IF -j ACCEPT
    $IPTABLES -A FORWARD -o $INTERNAL_IF -j ACCEPT
     
    $IPTABLES -A INPUT -i $EXTERNAL_IF -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A OUTPUT -o $EXTERNAL_IF -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
     
    $IPTABLES -A OUTPUT -o $EXTERNAL_IF -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -i $EXTERNAL_IF -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    Mais ça n'a pas l'air de marcher. En fait j'ai l'impression que ce code serait adapté si c'était mon PC Linux qui fait un partage de connexion.

    Qu'est-ce je dois mettre quand j'utilise un routeur ?

    J'ai essayé de remplacer
    par
    mais ça marche pas non plus. Je pensais que vu que je n'avais de modem directement branché sur ma MDK, le ppp0 ne voulait rien dire. Je me trompe peut-être :

    Si quelqu'un avait une petite idée sur le sujet

    Merci de votre aide

  2. #2
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut Re: [MDK 10] iptables + routeur
    Citation Envoyé par bobunny
    Mais ça n'a pas l'air de marcher. En fait j'ai l'impression que ce code serait adapté si c'était mon PC Linux qui fait un partage de connexion.
    C'est exactement ça

    Tu n'as qu'une seule carte réseau qui est eth0, donc tout se passe là-dessus. Tu n'as pas de EXTERNAL_IF et INTERNAL_IF.

    Tu n'as qu'à mettre ça pour faire serveur web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $IPTABLES -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

  3. #3
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    OK, je ne suis pas chez moi, je testerai dès que je rentre.

    En fait je n'ai testé jusqu'à maintenant que l'accès à Internet. A ce sujet, je suis condamné à ne pas accéder au WEB si j'utilise ce firewall avec mon routeur??? Ca serait dommage quand même

  4. #4
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Citation Envoyé par bobunny
    OK, je ne suis pas chez moi, je testerai dès que je rentre.

    En fait je n'ai testé jusqu'à maintenant que l'accès à Internet. A ce sujet, je suis condamné à ne pas accéder au WEB si j'utilise ce firewall avec mon routeur??? Ca serait dommage quand même
    Bien sur que non, pourquoi ?????

    iptables est plus exactement un routeur filtrant

  5. #5
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    Bien sur que non, pourquoi ?????
    Donc si j'ai bien compris, étant donné que pour donner accès à mon serveur avec ce bout de code d'ovh:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $IPTABLES -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    ça sigifie que j'accepte les nouvelles connexions entrantes par le port 80 de mon interface eth0.

    Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $IPTABLES -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    ça doit me permettre d'accéder au net?

    Sachant que j'ai configuré mon routeur afin de rediriger les requêtes entrantes sur le port 80 vers mon serveur Linux, j'ai l'impression qu'il va y avoir un pb : si de mon serveur j'émets des requêtes sur le port 80 de mon routeur, ce dernier va me la retourner??

    Enfin bon, je verrais bien en testant ...

  6. #6
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    Bon pour l'accès au serveur web, ça marche bien.

    Par contre pour l'accès au net, je ne trouve rien. J'avais essayé ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
    où 192.168.1.1 correspond à mon routeur mais bon, ça marche pas

  7. #7
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Citation Envoyé par bobunny
    Bon pour l'accès au serveur web, ça marche bien.

    Par contre pour l'accès au net, je ne trouve rien. J'avais essayé ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
    où 192.168.1.1 correspond à mon routeur mais bon, ça marche pas
    Surtout pas, malheureux !

    Tu peux autoriser toutes les connexions sortantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    iptables -A INPUT -i eth0 -p tcp --sport 1:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 1:65535 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
      iptables -A INPUT -i eth0 -p udp --sport 1:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
      iptables -A OUTPUT -o eth0 -p udp --dport 1:65535 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    Et vire tes directives FORWARD elles ne servent à rien (ni sur localhost ni sur ton LAN).

  8. #8
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    Alors ça c'est cool. Ca marche nickel.

    Pour ma culture, juste une question, pourquoi la plage "1:65535"?? J'ai tojours cru que pour le net, c'était le port 80 :

  9. #9
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Citation Envoyé par bobunny
    Pour ma culture, juste une question, pourquoi la plage "1:65535"?? J'ai tojours cru que pour le net, c'était le port 80 :
    Tout simplement tous les ports

    Car pour aller sur le net il faut :
    - le 53 pour le dns (sinon tu n'as accès aux serveurs que par leurs IP)
    - le 80 pour surfer effectivement
    - le 25 pour le smtp
    - le 110 pour le pop3
    - etc. ! chaque service a son ou ses ports
    - sans oublier tous les ports hauts (> 1024) utilisés par ta propre machine. En fait la communication se fait d'un port haut de ta machine vers le port spécifique du seveur (53, 25... )

    Donc avec la règle que j'ai indiquée, tu peux avoir accès à tous les services d'internet, mais grâce au stateful packet inspection (SPI), uniquement en tant que client, càd que c'est toi qui doit initier la connexion vers le serveur.

    J'espère que c'est plus clair ?

  10. #10
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    J'espère que c'est plus clair ?
    Maintenant oui. Ca me fait plaisir d'apprendre ce genre de truc, ça parait plus clair tout d'un coup

    En tout merci de ton aide

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

Discussions similaires

  1. iptables proxy/routeur/firewall sous debian
    Par XatOr dans le forum Sécurité
    Réponses: 1
    Dernier message: 11/08/2010, 13h48
  2. routeur ou iptable?
    Par kinuza dans le forum Sécurité
    Réponses: 2
    Dernier message: 28/12/2007, 09h01
  3. Quel est le meilleur Routeur-adsl ???
    Par loki dans le forum Développement
    Réponses: 4
    Dernier message: 12/11/2002, 18h05
  4. Connaissez vous un routeur pour ...
    Par loki dans le forum Développement
    Réponses: 3
    Dernier message: 18/09/2002, 09h05
  5. routeur + netmeeting
    Par Vince dans le forum Développement
    Réponses: 5
    Dernier message: 12/07/2002, 15h11

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