Forum Linux.débutant Configuration simple d'un firewall

Posté par .
2
24
juil.
2011

Bonjour à tous,

Je commence sous Linux, et j'ai installé Debian 6.0.1 que j'ai trouve dans un magazine. Ayant une connexion à internet par satellite, j'ai voulu faire un script pour configurer iptables décris dans ce magazine, et quand j'ai redémarré mon système, je n'ai pas réussi à surfer sur le net. J'ai réussi à faire en sorte que le script ne s'écecute pas au démarrage, mais je n'ai pas la conscience tranquille d'être connecter sans firewall :(

Voici le script :

!/bin/sh

iptables -F
iptables -X

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

Pourriez vous me dire où est le problème ? ou sinon me renseigner sur un site où je pourrais trouver un script assez simple ( pour que je le comprenne ) svp.

P.S : Le système passe par un routeur qui est connecté au modem, je ne sais pas si ça peut vous aider.

  • # chez moi ça marche

    Posté par (page perso) . Évalué à 1.

    iptables -A OUTPUT -o wifi -m state --state new,established -j ACCEPT
    iptables -A INPUT -i wifi -m state --state established,related -j ACCEPT

    A adapter, mais ça permet de surfer tranquille.

    Système - Réseau - Sécurité Open Source

    • [^] # Re: chez moi ça marche

      Posté par . Évalué à 0.

      merci, mais euh... je n'ai pas le wifi je suis connecté avec une carte ethernet :/ mais ca pourra me servir plus tard pour le portable.

    • [^] # Re: chez moi ça marche

      Posté par . Évalué à 2.

      je peux peut-etre remplacer wifi par ethO ?

      • [^] # Re: chez moi ça marche

        Posté par . Évalué à 2.

        Oui, tu peux :-)

        Si tu n'est pas à l'aise avec iptables, il existe des interfaces graphiques assez simple comme par exemple firestarter.

        • [^] # Re: chez moi ça marche

          Posté par (page perso) . Évalué à 1.

          Vuurmuur ! Une très bonne et très simple interface en curses pour iptables, moi je kiffe.

          It's a fez. I wear a fez now. Fezes are cool !

  • # Vraiment besoin d'un parefeu ?

    Posté par . Évalué à 2.

    P.S : Le système passe par un routeur qui est connecté au modem

    Si ce routeur est une box , alors pas be soin de parefeu. La box fait déjà parefeu pour toi.

    Tu peux facilement le savoir. Quelle est la forme de l'adresse IP de la machine que tu veux protéger ? Si elle est d'une de ces familles, alors pas de souci :

    • 10.x.y.z
    • 172.16.x.y à 172.31.x.y
    • 192.168.x.y

    Cela veut dire que ton routeur fait du NAT et que donc ton réseau à la maison est de toute façon invisible du Grand Ternet.

    J'ai trouvé ce site très intéressant pour comprendre le réseau et sa gestion sous Linux. En particulier la page sur netfilter et iptables est trés bien construite.

    Bon courage !

    Hop,
    Moi.

    • [^] # Re: Vraiment besoin d'un parefeu ?

      Posté par . Évalué à 1.

      Et sinon, voilà un petit moyen de générer facilement un script pour iptables. Le site est un peu ancien, ne permet pas de générer des choses compliquées, mais pour faire un petit pare-feu simple, c'est largement suffisant :

      Easy Firewall Generator for IPTables

      Il y a quelques années, j'ai commencé avec ce site, puis en lisant la doc, et les commentaires, j'en suis arrivé à le faire par moi-même. Je fais maintenant des scripts plutôt complexes, maintenant, mais la base fournie par ce script est très complète.

      Hop,
      Moi.

  • # Autoriser les nouvelles connexions sortantes

    Posté par (page perso) . Évalué à 3.

    Dans la ligne :

    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    

    il te manque un "NEW". Par défaut, en tapant "iptables -t filter -P OUTPUT DROP" tu jettes à la corbeille tous les paquets qui sortent de ta machine vers l'extérieur.

    La règle : "iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT" ajoute une exception. Grâce à elle, les paquets ayant un rapport avec une connexion déjà existante sont quand même autorisés à sortir de ton ordinateur. Les autres continueront d'être jetés à la poubelle.

    En remplaçant cette ligne par :

    iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
    

    tu autorises en plus les paquets qui créent de nouvelles connexions vers l'extérieur, ce qui est heureux pour accéder à Internet.

  • # tu fais tes regles à l'envers

    Posté par . Évalué à 3.

    iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
    iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

    tu laisse ENTRER (input) les ports 80 et 443
    cela veut dire que tu as un SERVEUR web chez toi

    hors toi ce que tu veux c'est pouvoir aller sur internet donc SORTIR (output) de ta machine sur les ports 80 et 443

    donc il faut faire des regles en OUTPUT et pas en INPUT.

    • [^] # Re: tu fais tes regles à l'envers

      Posté par . Évalué à 3.

      +1

      Par contre, dans le titre il a marqué configuration simple d'un firewall, donc comme dans les posts au-dessus, je m'en tiendrais à rajouter un NEW dans la chaîne OUTPUT et puis c'est tout ! Ou même plutôt :

      iptables -F
      iptables -X
      
      iptables -t filter -P INPUT DROP
      iptables -t filter -P FORWARD DROP
      iptables -t filter -P OUTPUT DROP
      
      iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
      iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT
      
      iptables -t filter -A INPUT -i lo -j ACCEPT
      iptables -t filter -A OUTPUT -o lo -j ACCEPT
      

      Préciser au cas par cas les ports autorisés en destination, sur un serveur ou un équipement réseau dont on connait à l'avance tous les cas d'utilisations normales et qu'on veut interdire tout ce qui ne correspond pas oui, mais sur une connexion personnelle, ça alourdi l'admin pour rien !

      • [^] # Re: tu fais tes regles à l'envers

        Posté par (page perso) . Évalué à 1.

        À quoi bon bloquer en sortie si c'est pour tout autoriser derrière ?

        (arcaik) |> ~ <| cat /etc/iptables/iptables.rules 
        *filter
        :INPUT DROP [0:0]
        :FORWARD DROP [0:0]
        :OUTPUT ACCEPT [0:0]
        
        -A INPUT -i lo -j ACCEPT 
        -A INPUT -p icmp -j ACCEPT 
        -A INPUT -p udp --dport ntp -j ACCEPT
        -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
        
        COMMIT
        

        C'est la configuration sur mon PC portable (donc, aucun service réseau à par NTP).

  • # youhou

    Posté par . Évalué à 1.

    Merci, avec toutes vos infos, j'ai pu bien remanier le script ( et le comprendre :) et maintenant j'arrive à naviguer !

    • [^] # Re: youhou

      Posté par (page perso) . Évalué à 1.

      Roh c'est beau. Mais quand même, à moins de vouloir beaucoup apprendre à administrer en bas niveau un système Linux, c'est bourrin de s'y attaquer par le versant Debian.

      Pour ma part, je conseille Mageia, qui a un pare-feu dans le Centre de Contrôle->Sécurité.

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # Commentaire supprimé

    Posté par . Évalué à -6. Dernière modification le 26/07/11 à 13:14.

    Ce commentaire a été supprimé par l'équipe de modération.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.