Re: iptables

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: GUILDE
Subject: Re: iptables
    Bonsoir,

Hervé de Dianous wrote:
>
> Ha le bon sujet !!
> Pour suprimer, changer, ajouter une règle "au vol", il est nécessaire de
> connaître son No d'ordre.
> Alors, à part travailler directement sur le fichier netfilter et faire
> un reload (restart), comment faire ?


    Je reprends l'exemple de PK :


#  iptables --list -vn
Chain INPUT (policy DROP 0 packets, 0 bytes)
  pkts bytes target     prot opt in     out  ...
     0     0 LOG_DROP   all  --  *      *       ...
     0     0 LOG_ACCEPT  all  --  lo     *      ...
     0     0 LOG_ACCEPT  udp  --  ppp0   *      ...
     0     0 LOG_ACCEPT  tcp  --  ppp0   *      ...
     0     0 LOG_ACCEPT  tcp  --  ppp0   *       ...


(j'ai tronque la fin des lignes, pour plus de visibilité).

    La 1ère ligne est celle qui pose problème, et que l'on veut déplacer à 
la fin. On commence donc par la relancer :


# iptables -A INPUT -j LOG_DROP

Ce qui nous donne :

#  iptables --list -vn
Chain INPUT (policy DROP 0 packets, 0 bytes)
  pkts bytes target     prot opt in     out  ...
     0     0 LOG_DROP   all  --  *      *       ...
     0     0 LOG_ACCEPT  all  --  lo     *      ...
     0     0 LOG_ACCEPT  udp  --  ppp0   *      ...
     0     0 LOG_ACCEPT  tcp  --  ppp0   *      ...
     0     0 LOG_ACCEPT  tcp  --  ppp0   *       ...
     0     0 LOG_DROP   all  --  *      *       ... <<<<<


    La rêgle est donc écrite 2 fois. Cela n'a pas d'importance, car la 1ère 
rêgle empéche les autres d'être parcourues


Maintenant, on supprime la 1ère rêgle Son numéro est "1". En cas de
doute : "iptables -L -n --line-numbers".
Pour supprimer la rêgle :

# iptables -D INPUT 1

Ce qui nous donne :

#  iptables --list -vn
Chain INPUT (policy DROP 0 packets, 0 bytes)
  pkts bytes target     prot opt in     out  ...
     0     0 LOG_ACCEPT  all  --  lo     *      ...
     0     0 LOG_ACCEPT  udp  --  ppp0   *      ...
     0     0 LOG_ACCEPT  tcp  --  ppp0   *      ...
     0     0 LOG_ACCEPT  tcp  --  ppp0   *       ...
     0     0 LOG_DROP   all  --  *      *       ...


    Et voila !


    Il ne reste plus que, toujours dans le cas de PK, de faire la même 
chose avec la chaine "OUTPUT".


    Mais pour un cas aussi simple que celui-ci, il est évidement plus 
simple de ré-écrire le script, et de le relancer. Sachant que tout *BON* 
script de netfilter doit avoir au tout début :
- Suppression de toutes les rêgles, utilisateur et pré-définie
- Définition de "DROP" comme rêgles par défaut de la table FILTER.



    A plus,


                        Olivier


-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!