Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Nouveau Membre du Club
    Inscrit en
    septembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : septembre 2009
    Messages : 82
    Points : 37
    Points
    37

    Par défaut iptables: interface "in" * inconnue/à chercher Ping IPFIRE

    Bonjour,

    J'ai installé une distribution IPFire, un fork d'IPCOP sur un petit PC portable. Aujourd'hui, je découvre iptables et les joies du ping.

    Mon réseau maison est composé d'un poste sous Ubuntu, d'une freebox et de ce fameux petit parfeu dont j’accède aux tables en https sur 444, y a un lien très intéressant nommé iptables sous l'onglet Parfeu.

    Mon objectif est de savoir quelle interface utilise le routeur quand je ping a partir de lui vers INTERNET.

    j'ai 4 interface, lo, green0, red0 et mon.green0.


    Code :
    1
    2
     
    # ACCEPT DEPART de PING : ROUTEUR vers INTERNET
    Je vois bien les paquets sortir et les réponses arriver, mais aucune des 4 interfaces existantes est prises en comptes, il passe toujours par la petite étoiles, lol.

    Voici mes règles (ma question concerne à partir de la ligne 48 jusqu'à la ligne 56) :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    #!/bin/bash
     
    I_LAN=green0
    I_INTERNET=red0
     
    ADRESSE_PINGUEUR=192.168.10.1
    ADRESSE_DNS=212.27.40.240
    ADRESSE_LAN_ROUTEUR=192.168.10.10
    ADRESSE_INTERNET_ROUTEUR=192.168.0.3
    PORT_SSH=222
     
    # Flush all rules and delete all custom chains
    /sbin/iptables -F
    /sbin/iptables -t nat -F
    /sbin/iptables -t mangle -F
    /sbin/iptables -X
    /sbin/iptables -t nat -X
    /sbin/iptables -t mangle -X
     
    # Set up policies
    # Politique par défaut deny all
    /sbin/iptables -P INPUT DROP
    /sbin/iptables -P FORWARD DROP
    /sbin/iptables -P OUTPUT DROP
     
    #creation de la table LOG_DROP
     
    iptables -N LOG_DROP
    iptables -A LOG_DROP -m limit --limit 10/minute -j LOG
    iptables -A LOG_DROP -j DROP
     
    #Traitement ICMP...
    iptables -N ICMPS
    #iptables -t filters
    iptables -A INPUT -p icmp -j ICMPS
    iptables -A OUTPUT -p icmp -j ICMPS
    iptables -A FORWARD -p icmp -j ICMPS
     
    # DROP DEPART de PING : INTERNET vers ROUTEUR
    iptables -A ICMPS -i $I_INTERNET -p icmp --icmp-type echo-request -j LOG_DROP
    if test $? -eq 0 ;then echo "DROP DEPART de PING : INTERNET vers ROUTEUR";else echo "erreur!";fi
     
    # DROP RETOUR de PING : ROUTEUR vers INTERNET
    iptables -A ICMPS -o $I_INTERNET -p icmp --icmp-type echo-reply -j LOG_DROP
    if test $? -eq 0 ;then echo "DROP DEPART de PING : ROUTEUR vers INTERNET";else echo "erreur!";fi
     
    # ACCEPT DEPART de PING : ROUTEUR vers INTERNET
    #iptables -A ICMPS -s $ADRESSE_INTERNET_ROUTEUR -i $I_INTERNET -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT
    iptables -A ICMPS -i mon.green0 -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -i green0 -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -i red0 -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -i lo -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -s $ADRESSE_INTERNET_ROUTEUR -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -o red0 -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT
    if test $? -eq 0 ;then echo "ACCEPT DEPART de PING : ROUTEUR vers INTERNET";else echo "erreur!";fi
     
    # ACCEPT RETOUR de PING : INTERNET ver ROUTEUR
    iptables -A ICMPS -i $I_INTERNET -o $I_INTERNET -s 0/0 -d $ADRESSE_INTERNET_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT
    if test $? -eq 0 ;then echo "ACCEPT RETOUR de PING : INTERNET vers ROUTEUR";else echo "erreur!";fi
    iptables -A ICMPS -i red0 -s 0/0 -p icmp --icmp-type echo-reply -j ACCEPT
     
    #ACCEPT PING de IPFIRE vers COMPAQ ALLER + RETOUR  
    iptables -A ICMPS -o $I_LAN -i $I_LAN -s $ADRESSE_LAN_ROUTEUR -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -i $I_LAN -o $I_LAN -s $ADRESSE_PINGUEUR -d $ADRESSE_LAN_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT ;
    if test $? -eq 0 ;then echo "ACCEPT PING de IPFIRE vers COMPAQ ALLER + RETOUR (vérifiez si $ADRESSE_PINGUEUR n'a pas de parfeu!)";else echo "erreur!";fi
     
    #ACCEPT PING de COMPAQ vers IPFIRE
    iptables -A ICMPS -o $I_LAN -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-reply -j ACCEPT && \
    iptables -A ICMPS -i $I_LAN -s $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT
    if test $? -eq 0 ;then echo "ACCEPT PING de COMPAQ vers IPFIRE";else echo "erreur!";fi
     
    # ACCEPT DEPART de PING : LAN vers INTERNET
    iptables -A ICMPS -i $I_LAN -o $I_INTERNET -d 0/0 -s $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT
    if test $? -eq 0 ;then echo "DROP DEPART de PING : INTERNET vers LAN";else echo "erreur!";fi
     
    # ACCEPT RETOUR de PING : INTERNET vers LAN
    iptables -A ICMPS -o $I_LAN -i $I_INTERNET -s 0/0 -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-reply -j ACCEPT
    if test $? -eq 0 ;then echo "DROP DEPART de PING : LAN     vers INTERNET";else echo "erreur!";fi
     
    #
    iptables -A ICMPS -o lo -i lo -s 127.0.0.1 -p icmp -d 127.0.0.1 -j ACCEPT
    iptables -A ICMPS -j LOG_DROP
     
    # MASQUERADE en POSTROUTING : NAT pour LAN
    iptables -t nat -A POSTROUTING -o $I_INTERNET -j MASQUERADE 
    if test $? -eq 0 ;then echo "";else echo "erreur!";fi
     
    #DNS
    iptables -A INPUT -p udp --sport 53 -j ACCEPT
    iptables -A INPUT -p udp --dport 53 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
    iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
     
    iptables -A FORWARD -p udp --dport 53 -j ACCEPT
    iptables -A FORWARD -p udp --sport 53 -j ACCEPT
    iptables -A FORWARD -p udp --dport 53 -j ACCEPT
    iptables -A FORWARD -p udp --sport 53 -j ACCEPT 
     
    # https de Client vers web via Serveur 								         ESTABLISHED
    iptables -A FORWARD -p tcp -s 0/0 -d $ADRESSE_PINGUEUR -m multiport --sport 80,443 -j ACCEPT -m state --state ESTABLISHED
    iptables -A FORWARD -p tcp -d 0/0 -s $ADRESSE_PINGUEUR -m multiport --dport 80,443 -j ACCEPT -m state --state NEW,ESTABLISHED
     
    iptables -I INPUT 1 -i green0 -s $ADRESSE_PINGUEUR -p tcp --dport $PORT_SSH -j ACCEPT
    iptables -I OUTPUT 1 -o green0 -d $ADRESSE_PINGUEUR -p tcp --sport $PORT_SSH -j ACCEPT
     
    # ACCEPT $ADRESSE_PINGUEUR pour administrer par le web le routeur
    iptables -A INPUT  -i green0 -s $ADRESSE_PINGUEUR -p tcp --dport 444 -j ACCEPT
    iptables -A OUTPUT  -o green0 -d $ADRESSE_PINGUEUR -p tcp --sport 444 -j ACCEPT
     
    exit 0
    Merci de votre aide.

  2. #2
    Nouveau Membre du Club
    Inscrit en
    septembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : septembre 2009
    Messages : 82
    Points : 37
    Points
    37

    Par défaut

    Je m'autorépond, lol

    Après avoir mis au propre mes regles sur le ping. J'ai comme l'impression d'être dans les tables INPUT/OUTPUT, c'est inspécifiable. Par contre quand il s'agit de routage, il prend bien en compte l'option i et o.

    Ce qui est remarquable, c'est qu'iptables prend bien en compte l'option -s et -d, quelques soit l'histoire.


    encore un petit coup?
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    #!/bin/bash
     
    I_LAN=green0
    I_INTERNET=red0
     
    ADRESSE_PINGUEUR=192.168.10.1
    ADRESSE_DNS=212.27.40.240
    ADRESSE_LAN_ROUTEUR=192.168.10.10
    ADRESSE_INTERNET_ROUTEUR=192.168.0.3
    PORT_SSH=222
     
    # Flush all rules and delete all custom chains
    /sbin/iptables -F
    /sbin/iptables -t nat -F
    /sbin/iptables -t mangle -F
    /sbin/iptables -X
    /sbin/iptables -t nat -X
    /sbin/iptables -t mangle -X
     
    # Set up policies
    # Politique par défaut deny all
    /sbin/iptables -P INPUT DROP
    /sbin/iptables -P FORWARD DROP
    /sbin/iptables -P OUTPUT DROP
     
    #creation de la table LOG_DROP
     
    iptables -N LOG_DROP
    iptables -A LOG_DROP -m limit --limit 10/minute -j LOG
    iptables -A LOG_DROP -j DROP
     
    #Traitement ICMP...
    iptables -N ICMPS
    #iptables -t filters
    iptables -A INPUT -p icmp -j ICMPS
    iptables -A OUTPUT -p icmp -j ICMPS
    iptables -A FORWARD -p icmp -j ICMPS
     
    # DROP DEPART de PING : INTERNET vers ROUTEUR
    iptables -A ICMPS -i $I_INTERNET -p icmp --icmp-type echo-request -j LOG_DROP
    if test $? -eq 0 ;then echo "DROP DEPART de PING : INTERNET vers ROUTEUR";else echo "erreur!";fi
     
    # DROP RETOUR de PING : ROUTEUR vers INTERNET
    iptables -A ICMPS -o $I_INTERNET -p icmp --icmp-type echo-reply -j LOG_DROP
    if test $? -eq 0 ;then echo "DROP DEPART de PING : ROUTEUR vers INTERNET";else echo "erreur!";fi
     
    # ACCEPT DEPART de PING : ROUTEUR vers INTERNET
    iptables -A ICMPS -s $ADRESSE_INTERNET_ROUTEUR -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT #&& \
    if test $? -eq 0 ;then echo "ACCEPT DEPART de PING : ROUTEUR vers INTERNET";else echo "erreur!";fi
     
    # ACCEPT RETOUR de PING : INTERNET ver ROUTEUR
    iptables -A ICMPS -i $I_INTERNET -s 0/0 -d $ADRESSE_INTERNET_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT
    if test $? -eq 0 ;then echo "ACCEPT RETOUR de PING : INTERNET vers ROUTEUR";else echo "erreur!";fi
    #iptables -A ICMPS -i red0 -s 0/0 -p icmp --icmp-type echo-reply -j ACCEPT
     
    #ACCEPT PING de IPFIRE vers COMPAQ ALLER + RETOUR  
    iptables -A ICMPS -o $I_LAN -s $ADRESSE_LAN_ROUTEUR -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT && \
    iptables -A ICMPS -i $I_LAN -s $ADRESSE_PINGUEUR -d $ADRESSE_LAN_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT ;
    if test $? -eq 0 ;then echo "ACCEPT PING de IPFIRE vers COMPAQ ALLER + RETOUR (vérifiez si $ADRESSE_PINGUEUR n'a pas de parfeu!)";else echo "erreur!";fi
     
    #ACCEPT PING de COMPAQ vers IPFIRE
    iptables -A ICMPS -o $I_LAN -d $ADRESSE_PINGUEUR -s $ADRESSE_LAN_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT && \
    iptables -A ICMPS -i $I_LAN -s $ADRESSE_PINGUEUR -d $ADRESSE_LAN_ROUTEUR -p icmp --icmp-type echo-request -j ACCEPT
    #if test $? -eq 0 ;then echo "ACCEPT PING de COMPAQ vers IPFIRE";else echo "erreur!";fi
     
    # ACCEPT DEPART de PING : LAN vers INTERNET
    iptables -A ICMPS -i $I_LAN -o $I_INTERNET -d 0/0 -s $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT
    if test $? -eq 0 ;then echo "DROP DEPART de PING : INTERNET vers LAN";else echo "erreur!";fi
     
    # ACCEPT RETOUR de PING : INTERNET vers LAN
    iptables -A ICMPS -o $I_LAN -i $I_INTERNET -s 0/0 -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-reply -j ACCEPT
    if test $? -eq 0 ;then echo "DROP DEPART de PING : LAN     vers INTERNET";else echo "erreur!";fi
     
    #
    iptables -A ICMPS -i lo -s 127.0.0.1 -p icmp -d 127.0.0.1 -j ACCEPT
    iptables -A ICMPS -o lo -s 127.0.0.1 -p icmp -d 127.0.0.1 -j ACCEPT
    iptables -A ICMPS -j LOG_DROP
     
    # MASQUERADE en POSTROUTING : NAT pour LAN
    iptables -t nat -A POSTROUTING -o $I_INTERNET -j MASQUERADE 
    if test $? -eq 0 ;then echo "";else echo "erreur!";fi
     
    #DNS
    iptables -A INPUT -p udp --sport 53 -j ACCEPT
    iptables -A INPUT -p udp --dport 53 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
    iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
     
    iptables -A FORWARD -p udp --dport 53 -j ACCEPT
    iptables -A FORWARD -p udp --sport 53 -j ACCEPT
    iptables -A FORWARD -p udp --dport 53 -j ACCEPT
    iptables -A FORWARD -p udp --sport 53 -j ACCEPT 
     
    # https de Client vers web via Serveur 								         ESTABLISHED
    iptables -A FORWARD -p tcp -s 0/0 -d $ADRESSE_PINGUEUR -m multiport --sport 80,443 -j ACCEPT -m state --state ESTABLISHED
    iptables -A FORWARD -p tcp -d 0/0 -s $ADRESSE_PINGUEUR -m multiport --dport 80,443 -j ACCEPT -m state --state NEW,ESTABLISHED
     
    iptables -I INPUT 1 -i green0 -s $ADRESSE_PINGUEUR -p tcp --dport $PORT_SSH -j ACCEPT
    iptables -I OUTPUT 1 -o green0 -d $ADRESSE_PINGUEUR -p tcp --sport $PORT_SSH -j ACCEPT
     
    # ACCEPT $ADRESSE_PINGUEUR pour administrer par le web le routeur
    iptables -A INPUT  -i green0 -s $ADRESSE_PINGUEUR -p tcp --dport 444 -j ACCEPT
    iptables -A OUTPUT  -o green0 -d $ADRESSE_PINGUEUR -p tcp --sport 444 -j ACCEPT
     
    exit 0
    Merci de m'avoir lu

  3. #3
    Modérateur
    Avatar de IP_Steph
    Homme Profil pro Steph
    Architecte réseau
    Inscrit en
    février 2012
    Messages
    1 854
    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 854
    Points : 3 734
    Points
    3 734

    Par défaut

    Salut,

    quel est ton problème exactement ?

    J'ai "survolé" tes posts (sorry, un peu fainéant en cette fin de journée) aussi je préfère te poser la question avant de partir sur une envolée lyrique concernant les iptables

    Si tu n'es pas familiarisé avec Netfilter, tu peux aussi jeter un oeil sur cette discussion :

    http://www.developpez.net/forums/d12...-forward-drop/

    Steph
    ʇɥıs uǝʍ uʌıpıɐ pɹıʌǝɹ snɔʞs :-)

  4. #4
    Nouveau Membre du Club
    Inscrit en
    septembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : septembre 2009
    Messages : 82
    Points : 37
    Points
    37

    Par défaut Lol

    En faite, la deuxième partie est un script (non fini bien sur ^^, manque gestion d"erreur, etc ...), mais intéressante/pédagogique pour voir la mécanique d'iptables au travers des ping.

    ftp://ftp.linux-france.org/pub/prj/i...s-tutorial.pdf

    Merci Steph, mais j'ai super bien compris.

    Parcontre à te lire, je trouve des choses intéressantes, encore merci.


    Julien

  5. #5
    Modérateur
    Avatar de IP_Steph
    Homme Profil pro Steph
    Architecte réseau
    Inscrit en
    février 2012
    Messages
    1 854
    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 854
    Points : 3 734
    Points
    3 734

    Par défaut

    En faite, la deuxième partie est un script (non fini bien sur ^^, manque gestion d"erreur, etc ...), mais intéressante/pédagogique pour voir la mécanique d'iptables au travers des ping.
    OK... J'ai regardé un peu plus attentivement cette fois-ci, merci pour le partage

    ftp://ftp.linux-france.org/pub/prj/i...s-tutorial.pdf

    Merci Steph, mais j'ai super bien compris.
    Je suis d'accord, cette doc de Philippe Latu est très bien faite.

    Bon, ben, bonne config alors

    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
  •