Floppyfw : ipchains


Affiche ou fixe les paramètres de routage et de mandatement (masquerading).
Ceux-ci sont contrôlés à l'aide chaînes de règles qu'il faut indiquer.
Une chaine est une liste de règles avec un destin pour le paquet traité. Il existe 3 chaines prédéfinies, qu'on ne peut effacer : input, output et forward (entrée, sortie et transit). Au départ elles sont vides ou contiennent des règles contenues dans un script éxécuté au lancement.
Chaque règle spéficie un ensemble de conditions que le paquet doit suivre, et ce qu'il en faut faire s'il les suit. (-j destin)
Il ne faut surtout pas bloquer les paquets icmp de type 3.

Voici un résumé fourni par l'aide de la commande ipchains utilisation :
ipchains   -[ADC] chain rule-specification [options]
ipchains   -[RI] chain rulenum rule-specification [options]
ipchains   -D chain rulenum [options]
ipchains   -[LFZNX] [chain] [options]
ipchains   -P chain target [options]
ipchains   -M [ -L | -S ] [options]
ipchains   -h [icmp] (affiche cette aide ou la liste ICMP)

commandes : (Either long or short options are allowed)
--add chain
-A chain
Ajoute à la fin de la chaîne chain des règles de routage et mandatement
--delete chain
-D chain
Efface la règle correspondante de la chaîne chain
--delete chain rulenum
-D chain rulenum
Efface la règle numérotée rulenum (première = 1) de la chaîne chain
--insert chain [rulenum]
-I chain [rulenum]
Insère dans la chaîne chain au numéro rulenum (1 par défaut)
--replace chain rulenum
-R chain rulenum
Remplace la règle rulenum (première = 1) dans la chaîne chain
--list [chain]
-L [chain]
Liste les règles de la chaîne chain ou de toutes les chaînes
--flush [chain]
-F [chain]
Efface les règles de la chaîne chain ou de toutes les chaînes
--zero [chain]
-Z [chain]
Annule les conteurs dans chain ou dans toutes les chaînes
--check chain
-C chain
Teste ce paquet dans chain
--new chain
-N chain
Crée une nouvelle chaîne définie par l'utilisateur
--delete-chain chain
-X chain
Efface une chaîne définie par l'utilisateur
--policy chain target
-P chain target
Change policy on chain to target
--masquerade
-M -L
Liste les connections courantes masquées
--set
-M -S tcp tcpfin udp
Fixe les valeurs de timeout du masquerading

options :
--bidirectional
-b
insère deux règles avec -s et -d inversées
--proto [!] proto
-p [!] proto
protocole : par numéro ou nom, par ex. `tcp'
--source [!] address[/mask] [!] [port[:port]
-s [!] address[/mask] [!] [port[:port]
spécification de la source
--source-port [!] [port[:port]]spécification du port de la source
--destination [!] address[/mask] [!] [port[:port]]
-d [!] address[/mask] [!] [port[:port]]
spécification de la destination
--destination-port [!] [port[:port]]spécification du port de la destination
--icmp-type [!] typenamespecifie le type ICMP
--interface [!] name[+]
-i [!] name[+]
spécifie le nom de l'interface ([+] pour les jockers)
--jump
-j target [port]
target for rule ([port] pour REDIRECT)
--mark [+-]mark
-m [+-]mark
nombre/numéro pour/à marquer pour/sur les pacquets qui correspondent aux critères
--numeric
-n
sortie numérique pour adresses et ports
--log
-l
active le mouchard du kernel pour les pacquets qui correspondent aux critères
--output [taille_maximale]
-o [taille_maximale]
sortir les pacquets qui correspondent aux critères vers le périférique netlink
--TOS
-t and xor
masque and/xor pour le champ TOS des paquets
--verbose
-v
mode verbeux ou locace
--exact
-x
nombres étendus ou complets (affiche des valeurs exactes)
[!] --fragment
[!] -f
seuls les second fragments et suivants correspondent
[!] --syn
[!] -y
paquets TCP correspondant seulement si SYN est validé
[!] --version
[!] -V
affiche la version du "package".


Le signe ! sert à la négation.


Voici une autre présentation des commandes et options d'ipchains pour noyau 2.2.x


Syntaxe :

opérations sur chaines entières :
  • Créer une nouvelle chaîne :   ipchains -N chaîne
  • Détruire une chaîne vide  :   ipchains -X chaîne
  • Changer la politique d'une chaîne intégrée  :   ipchains -P policy
    où policy est ACCEPT, DENY, REJECT ou MASQ. MASQ est la seule valide pour la chaîne forward. Les autres ne s'appliquent qu'à input et output.
  • Lister les règles d'une chaîne  :   ipchains [-v] [-n] [-x] -L
    dans l'affichage qui en résulte refcnt indique le nombre de règles qui lui destinent des paquets (target) et policy indique ce qui arrive qux paquets ne vérifiant aucune règle.
    • -v montrera les détails (compeurs, TOS...)
    • -n en numérique, ne recherchera pas à remplacer les adresses ip (économie de DNS)
    • -x développe les nombres à l'unité près
  • Supprimer les règles d'une chaîne :   ipchains -F [chaîne]
    attention sans chaîne, supprimes toutes les règle de toutes les chaînes
  • Mettre à zéro tous les compteurs d'octets sur toutes les règles d'une chaîne :   ipchains -Z

Opération sur les règles dans une chaîne :
  • Ajouter une nouvelle règle dans une chaîne :
      ipchains -A chaîne [-y] [-s adresse_source/masque [ ports ]] [-i interface] [-p protocole] [-d adresse_destination/masque [ ports ]][-j destin]
    • chaine peut être input, output, forward ou une chaîne créée par l'utilisateur,
    • adresse_source/masque est une adresse ou un réseau pour l'origine du paquet
    • ports est le ou les ports (udp o tcp) auxquels s'adresse la règle,
    • adresse_destination/masque est une adresse ou un réseau pour la destination du paquet
    • protocole est tcp, udp, icmp ...
    • interface désigne l'interface concernée (d'où vient le paquet)
    • -y indique un paquet utiliser pour la demande de connexion (tcp uniquement)
    • destin est ce qu'on fait du paquet s'il satisfait à la règle : ACCEPT, REJECT, DENY, MASQ, REDIRECT, RETURN ou chaîne.
    Les adresses, ports, protocoles, interfaces et "-y" peuvent être précédées d'un "!" pour exprimer la négation logique.

  • Insérer une nouvelle règle dans une chaîne :
       ipchains -I chaîne [-s adresse_source/masque [ ports ]] [-p protocole] [-d adresse_destination/masque [ ports ]][-j destin]
  • Remplacer une règle par une nouvelle dans une chaîne :
       ipchains -R chaîne [-s adresse_source/masque [ ports ]] [-p protocole] [-d adresse_destination/masque [ ports ]][-j destin]
  • Supprimer une règle dans une chaîne : ipchains -D chaîne [-s adresse_source/masque [ ports ]] [-p protocole] [-d adresse_destination/masque [ ports ]][-j destin]


Opérations concernant le masquage :
  • Lister les connections masquées courantes :
    ipchains -M -L
  • Configurer les valeurs de timeout :
    ipchains -M -S

Cas des fragments de paquets : "-f" ou "! -f"

Les effets du filtrage :

Si un paquet vérifie une règle, les choses suivantes arrivent :
  1. Le compteur d'octets de cette règle est augmenté de la taille de ce paquet (entête et autres) ;
  2. Le compteur de paquets de cette règle est incrémenté ;
  3. Si la règle le demande, le paquet est enregistré ;
  4. Si la règle le demande, le champ "Type Of Service" du paquet est modifié ;
  5. Si la règle le demande, le paquet est marqué (sauf dans la série des noyaux 2.0) ;
  6. Le destin exprimé dans la règle est examiné afin de décider ce que nous ferons ensuite du paquet.

Les destins :
  • ACCEPT : accepte le paquet
  • REJECT : refuse le paquet et envoit un ICMP pour informer la source.
  • DENY : ignore le paquet, comme s'il n'avait jamais existé. Il ne passe pas.
  • MASQ : informe le noyau qu'il faut masquer le paquet
  • REDIRECT : redirige le paquet vers un port local au lieu de sa destination prévue.
  • RETURN : termine la chaîne.
  • chaîne : intercale le traitement par une autre chaîne après quoi le paquet sera traité par la règle suivante de la chaîne courante.



Quelques liens :
Masquerading HOWTO
il existe un _BON !!_ HOWTO qui parle d'ipchains sur http://www.rustcorp.com/linux/ipchains/HOWTO.html
Configurer un firewall avec ipchains
Linux IPCHAINS-HOWTO
Possibilités réseau de Linux HOWTO: Interconnection de réseaux
Possibilités réseau de Linux HOWTO




Retour à la page d'accueil
FloppyFW
Envoyer un e-mail à F. PORT