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 forward et DROP


Sujet :

Sécurité

  1. #1
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 014
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut iptables forward et DROP
    Bonjour, je vois a quoi correspond INPUT et OUTPUT (facile) mais je ne saisit pas a quoi correspond FORWARD.
    Sur mon serveur ubuntu il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chain FORWARD (policy DROP)
    target     prot opt source               destination
    Sans aucune règle.
    A votre avis est-ce pour cela que je n'arrive pas à accéder au FTP?
    Si quelqu'un arrive à m'expliquer ce qu'est FORWARD je lui offre toute ma gratitude.
    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si quelqu'un arrive à m'expliquer ce qu'est FORWARD je lui offre toute ma gratitude.
    Je n'en demande pas tant

    Ta question est relative au cheminement d'un paquet au travers d'un stack IP Unix. Le stack utilise 3 tables pour contrôler, router et éventuellement modifier un paquet. Ces tables sont :
    - la table FILTER pour la gestion des paquets qui ont pour destination/origine le firewall embarqué dans le kernel (concrètement, ces paquets ont pour adresse IP source/destination une des adresses IP locales à la machine Linux),
    - la table NAT, relative aux opérations de translation d'adresse source/destination,
    - la table MANGLE relative aux flux qui passent d'une interface à une autre (ces paquets ont pour adresse IP source/destination une adresse étrangère au stack)...

    Pour chacune de ces tables, il existe des chaînes associées La responsabilité d'une chaîne, c'est d'évaluer le paquet IP afin de le contrôler dans son cheminement au travers du stack. Le problème (enfin, c'était le mien quand j'ai commencé à bricoler avec les iptables), c'est que certaines chaînes de tables différentes ont le même nom... Donc dire qu'on fait telle ou telle chose avec la chaîne X, ça ne veut rien dire... Il faut préciser qu'on fait quelque chose avec la chaîne X dans la table FILTER, NAT ou MANGLE.

    Voici les chaînes utilisées par les différentes tables.

    FILTER travaille avec 3 chaînes :
    - INPUT (paquets à destination du firewall embarqué),
    - OUTPUT (paquets émis par le firewall),
    - FORWARD (paquets qui traversent le firewall d"une interface vers une autre).

    NAT travaille avec 3 chaînes :
    - PREROUTING (généralement utilisé par la fonction DNAT, c'est à dire juste avant la 1ère décision de routage),
    - POSTROUTING (généralement utilisé par le SNAT, juste après la 1ère décision de routage),
    - OUTPUT (utilisée après la 2ème décision de routage lorsque le paquet a été S/D-NATté).

    MANGLE travaille avec 5 chaînes :
    - PREROUTING (1ère chaîne utilisée pour n'importe quel paquet entrant),
    - FORWARD (1ère chaîne utilisée pour n'importe quel paquet qui vient de passer la 1ère décision de routage),
    - INPUT (utilisée après la 1ère décision de routage lorsque la destination IP est le firewall embarqué, sera donc redirigé vers la table FILTER),
    - OUTPUT (utilisée après la 2ème décision de routage, notamment pour tracer les connexions ayant pour source le firewall embarqué),
    - POSTROUTING (utilisée juste avant que le paquet ne quitte la mqchine Linux, que le paquet soit émis localement par la machine Linux ou simplement traversé par le firewall embarqué).

    Bon, oui, pas simple

    Voilà le cheminement du paquet au travers du stack avec toutes les chaînes/tables :



    Par défaut, une machine Linux munie de 2 cartes réseaux et configurée en IP Forwarding est une véritable passoire Les tables et leurs chaînes associées permettent alors de protéger les réseaux locaux exposés aux menaces venant de réseaux "intrusted".

    Dans ton cas, les iptables semblent vides et d'après la description de ton problème, il y a fort à parier que c'est une machine Linux munie d'une seule carte réseau... Ta machine Linux n'est ni routeur, ni firewall... Est-ce correct ? Si c'est bien le cas, c'est un problème d'appli client/serveur localisé à un host... Est-ce que le serveur FTP est bien accessible ?

    Si ta machine possède plusieurs interfaces réseau, peux-tu poster un

    qui permettra de voir s'il y a des contrôles déjà configurés ?

    Steph

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Hello,

    Citation Envoyé par stc074 Voir le message
    Bonjour, je vois a quoi correspond INPUT et OUTPUT (facile) mais je ne saisit pas a quoi correspond FORWARD. Si quelqu'un arrive à m'expliquer ce qu'est FORWARD je lui offre toute ma gratitude. Merci.
    IPSteph t'a fait faire un tour d'horizon assez complet de la chose. Toutefois, il est important d'insister sur la question initiale. « FORWARD » doit s'entendre comme « faire suivre ».

    Avant même de se pencher sur le filtre, une machine sous Linux a tout-à-fait la possibilité de se comporter en routeur et/ou en passerelle et donc de recevoir les paquets émis sur un brin pour les relayer vers un autre. C'est ce qui va se passer notamment lorsque tu fais un « partage de connexion Internet » même si cette notion est un peu tombée en désuétude depuis le tout-WiFi. En fait, dans ce dernier cas, c'est ta box ou ton routeur Wifi qui va se charger de ce travail mais celui-ci restera identique et il est même tout-à-fait plausible que la box que tu utilises fonctionne en réalité avec un noyau Linux.

    « FORWARD » est donc une chaîne qui concerne les paquets qui ne sont ni à destination de ta machine ni produits par elle, mais qui sont « en transit » en passant par elle.

    Attention également à la « politique », « Policy » en anglais, de chacune de tes règles principales : il s'agit de la cible à atteindre par défaut lorsque ton paquet ne correspond à aucun règle ou, a fortiori, lorsque la table est vide. Par défaut, toutes ces politiques sont « ACCEPT », donc pas de filtrage au départ, mais la plupart des distributions les configurent par défaut à DROP, de fait qu'ils seront silencieusement détruits. Trop de sécurité tue la sécurité, à mon avis…

    A votre avis est-ce pour cela que je n'arrive pas à accéder au FTP?
    On ne sait pas encore de quoi tu parles à ce stade…

  4. #4
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 014
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Si ta machine possède plusieurs interfaces réseau, peux-tu poster un

    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part

    iptables -L -v

    qui permettra de voir s'il y a des contrôles déjà configurés ?
    oui voila :

    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
    :~# iptables -L -v
    Chain INPUT (policy DROP 28389 packets, 1803K bytes)
     pkts bytes target     prot opt in     out     source               destination         
      12M 1352M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
     2084  163K ACCEPT     icmp --  any    any     anywhere             anywhere            
    1866K  122M ACCEPT     all  --  lo     any     anywhere             anywhere            
      202 12048 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh
      688 34720 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:domain
    60476 4028K ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:domain
     443K   27M ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
       79  4184 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http-alt
       13   668 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https
        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:2812
       29  1424 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:smtp
        1    60 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:pop3
        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:imap2
     
    Chain FORWARD (policy DROP 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
     
    Chain OUTPUT (policy DROP 333K packets, 52M bytes)
     pkts bytes target     prot opt in     out     source               destination         
      12M 1261M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
       12  6912 ACCEPT     icmp --  any    any     anywhere             anywhere            
    1866K  122M ACCEPT     all  --  any    lo      anywhere             anywhere            
        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh
      167 10012 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:domain
     324K   24M ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:domain
        1    76 ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:ntp
     429K   26M ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http-alt
     510K   31M ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:smtp
        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:pop3
        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:imap2
    on m'avait déjà fait la remarque que la contraint accept all in anywhere (INPUT) faisait tout passer, le problème c'est que si je la vire mes sites en j2ee utilisant un couplage tomcat/apache ne sont plus accessibles, en plus je n'arrive pas à accéder au FTP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    :~# telnet localhost 21
    Trying 127.0.0.1...
    Connected to localhost.localdomain\localhost.
    Escape character is '^]'.
    Connection closed by foreign host.
    (j'ai pas le temps de taper quoi que se soit si j'essaie de me connecter avec filezilla j'ai une connection timeout)
    Merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    le problème c'est que si je la vire mes sites en j2ee utilisant un couplage tomcat/apache ne sont plus accessibles, en plus je n'arrive pas à accéder au FTP :
    Ben, oui, c'est le tout ou rien : soit on laisse tout passer avec un "any any", soit on laisse rien passer puis on ouvre les ports au fur et à mesure. Dans la config que tu as postée, tes règles ne servent pas à grand chose puisque tu laisses tout passer...

    Si tu vires la règle "any any", il faut ensuite ouvrir les ports tcp/udp correspondant aux services tomcat/apache, ça doit bien se trouver sur le net, ta config ne sort pas spécialement des chemins battus, voici un point de départ par exemple :

    http://rimuhosting.com/mod_jk2_and_mod_proxy_ajp.jsp

    et ouvrir les ports correspondant au service FTP hébergé par ton firewall :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
    iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    Steph
    Dernière modification par Invité ; 03/11/2012 à 11h25.

Discussions similaires

  1. IPtables & Forward
    Par kevinf dans le forum Réseau
    Réponses: 2
    Dernier message: 07/01/2011, 14h29
  2. iptables et beaucoup de DROP !
    Par Iris11 dans le forum Sécurité
    Réponses: 2
    Dernier message: 11/07/2010, 19h10
  3. Iptables et forward
    Par asphalte dans le forum Réseau
    Réponses: 0
    Dernier message: 31/08/2009, 16h47
  4. Iptables port forwarding
    Par blacksnake dans le forum Sécurité
    Réponses: 2
    Dernier message: 10/03/2007, 01h09
  5. Ports forwarding avec iptables
    Par Iced Earth dans le forum Réseau
    Réponses: 6
    Dernier message: 19/11/2002, 22h24

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