Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre actif Avatar de stc074
    Homme Profil pro Pierre-jean
    Codeur du dimanche
    Inscrit en
    janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre-jean
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : janvier 2009
    Messages : 665
    Points : 194
    Points
    194

    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 :
    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
    Modérateur
    Avatar de IP_Steph
    Homme Profil pro Steph
    Architecte réseau
    Inscrit en
    février 2012
    Messages
    1 853
    Détails du profil
    Informations personnelles :
    Nom : Homme Steph
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : février 2012
    Messages : 1 853
    Points : 3 749
    Points
    3 749

    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
    ʇɥıs uǝʍ uʌıpıɐ pɹıʌǝɹ snɔʞs :-)

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 5 309
    Points : 12 255
    Points
    12 255

    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 actif Avatar de stc074
    Homme Profil pro Pierre-jean
    Codeur du dimanche
    Inscrit en
    janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre-jean
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : janvier 2009
    Messages : 665
    Points : 194
    Points
    194

    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 :
    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 :
    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
    Modérateur
    Avatar de IP_Steph
    Homme Profil pro Steph
    Architecte réseau
    Inscrit en
    février 2012
    Messages
    1 853
    Détails du profil
    Informations personnelles :
    Nom : Homme Steph
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : février 2012
    Messages : 1 853
    Points : 3 749
    Points
    3 749

    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 :
    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
    ʇɥıs uǝʍ uʌıpıɐ pɹıʌǝɹ snɔʞs :-)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •