Commande ckfilt

Objectif

Vérifie la syntaxe des règles de filtrage.

Syntaxe

ckfilt [ -O ] [ -v 4 | 6 ]

Descriptif

La commande ckfilt vérifie la syntaxe des règles de filtrage. Les règles de filtrage avec état IPsec autorisent des actions telles que IF, ELSE et ENDIF. Ainsi, il est possible d'avoir des erreurs de syntaxe dans l'ensemble de règles, telles que IF avec out et ENDIF, ou une ELSE ou ENDIF avec un IF précédent. La commande ckfilt recherche ces erreurs. L'imbrication des règles IF est autorisée. La commande ckfilt affiche les règles de filtrage, en les indentant dans les instructions IF d'une manière sectorisant. Si l'indicateur -O est utilisé, les règles de filtrage et tous leurs attributs sont affichés de manière sectorisée. Les règles de filtrage IPsec de cette commande peuvent être configurées à l'aide de la commande genfilt , IPsec smit (IP version 4 ou IP version 6) dans le sous-menu Réseau privé virtuel.

Indicateurs

Article Descriptif
-O Affiche les attributs de règle de filtrage.
-v 4 | 6 Indique IPv4 ou IPv6.

Statut de sortie

Cette commande renvoie les valeurs de sortie suivantes :

Article Descriptif
0 La commande s'est terminée avec succès.
non-zero Une erreur s'est produite.

Security

Cette commande n'est exécutable que par root.

Attention aux utilisateurs RBAC: cette commande peut effectuer des opérations privilégiées. Seuls les utilisateurs privilégiés peuvent exécuter des opérations privilégiées. Pour plus d'informations sur les autorisations et les privilèges, consultez la base de données des commandes privilégiées disponible dans Sécurité. Pour la liste des privilèges et autorisations associés à cette commandes, reportez-vous à la commande lssecattr ou à la sous-commande getcmdattr.

Exemples

  1. Pour créer un ensemble de règles de filtrage if-else-endif imbriquées, utilisez la commande genfilt comme suit:
    genfilt -v4 -a I -s 192.168.100.101 
    -d 192.168.100.102 -c tcp -O eq -P 21 -D "IF ftp-cmd being used"
    
    genfilt -v4 -a I -s 192.168.100.101
    -d 192.168.100.102 -c tcp -O eq -P 1525 -D "IF 1525 port starts being used"
    
    genfilt -v4 -a D -s 192.168.100.101
    -d 192.168.100.102 -c tcp -O eq -P 37 -D "if scope: deny time"
    
    genfilt -v4 -a L -s 192.168.100.101
    -d 192.168.100.102 -c tcp -D "ELSE"
    
    genfilt -v4 -a D -s 192.168.100.101 
    -d 192.168.100.102 -c tcp -O eq -P 13 -D "else scope: deny date"
    
    genfilt -v4 -a E -s 192.168.100.101 
    -d 192.168.100.102 -c tcp -D "ENDIF"
    
    genfilt -v4 -a L -s 192.168.100.101 
    -d 192.168.100.102 -c tcp -D "ELSE"
    
    genfilt -v4 -a D -s 192.168.100.101 
    -d 192.168.100.102 -c tcp -O eq -P 20 -D "else scope: deny ftp-data"
    
    genfilt -v4 -a E -s 192.168.100.101 
    -d 192.168.100.102 -c tcp -D "ENDIF"
    La sortie de la commande lsfilt se présente comme suit:
    %lsfilt -v4 -O
    1|permit|0.0.0.0|0.0.0.0|0.0.0.0|0.0.0.0|no|udp|eq|4001|
    eq|4001|both|both|no|all packets|0|all|0|||Default Rule
    
    2|*** Dynamic filter placement rule for IKE tunnels ***|no
    
    3|if|192.168.100.101|255.255.255.255|192.168.100.102|
    255.255.255.255|yes|tcp|any|0|eq|21|both|both|no|all packets|0|all|0|||IF ftp-cmd being used
    
    4|if|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|1525|both|both|no|all packets|0|all|0|||IF 1525 port starts being used
    
    5|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|37|both|both|no|all packets|0|all|0|||if scope: de ny time
    
    6|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    7|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|13|both|both|no|all packets|0|all|0|||else scope: deny date
    
    8|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ENDIF
    
    9|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    10|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|20|both|both|no|all packets|0|all|0|||else scope: deny ftp-data
    
    11|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ENDIF
    
    0|permit|0.0.0.0|0.0.0.0|0.0.0.0|0.0.0.0|yes|all|any|0|
    any|0|both|both|no|all packets|0|all|0|||Default Rule
    La sortie de la commande ckfilt se présente comme suit:
    %ckfilt -v4
    Beginning of IPv4 filter rules.
    Rule 2
    IF Rule 3
    |    IF Rule 4
    |    |    Rule 5
    |    ELSE Rule 6
    |    |    Rule 7
    |    ENDIF Rule 8
    ELSE Rule 9
    |    Rule 10
    ENDIF Rule 11
    Rule 0
    OR
    %ckfilt -v4 -O
    Beginning of IPv4 filter rules.
    2|*** Dynamic filter placement rule for IKE tunnels ***|no
    IF 3|if|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|21|both|both|no|all packets|0|all|0|||IF ftp-cmd being used
    
    |    IF 4|if|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|1525|both|both|no|all packets|0|all|0|||IF 1525 port starts being used
    
    |    |    5|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|37|both|both|no|all packets|0|all|0|||if scope: deny time
    
    |    ELSE 6|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    |    |    7|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|13|both|both|no|all packets|0|all|0|||else scope: deny date
    
    |    ENDIF 8|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0||| ENDIF
    
    ELSE 9|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    |    10|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|20|both|both|no|all packets|0|all|0|||else scope: deny ftp-data
    
    ENDIF 11|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ENDIF
    
    0|all packets|0.0.0.0|0.0.0.0|0.0.0.0|0.0.0.0|no|0|???|0|???|0|?????|????????|no|???????|0||0|||
  2. Si des règles if-else-endif incorrectes sont créées, la commande ckfilt recherche et signale l'erreur comme suit:
    %lsfilt -v4 -O
    
    1|permit|0.0.0.0|0.0.0.0|0.0.0.0|0.0.0.0|no|udp|eq|4001|eq|4001|both|both|no|all packets|0|all|0|||Default Rule
    
    2|*** Dynamic filter placement rule for IKE tunnels ***|no
    3|if|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|21|both|both|no|all packets|0|all|0|||IF ftp-cmd being used
    
    4|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|37|both|both|no|all packets|0|all|0|||if scope: deny time
    
    5|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    6|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|13|both|both|no|all packets|0|all|0|||else scope: deny date
    
    7|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ENDIF
    
    8|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    9|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|20|both|both|no|all packets|0|all|0|||else scope: deny ftp-data
    
    10|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ENDIF
    
    0|permit|0.0.0.0|0.0.0.0|0.0.0.0|0.0.0.0|yes|all|any|0|any|0|both|both|no|all packets|0|all|0|||Default Rule
    
    %ckfilt -v4
    Beginning of IPv4 filter rules.
    Rule 2
    IF Rule 3
    |    Rule 4
    ELSE Rule 5
    |    Rule 6
    ENDIF Rule 7
    No preceeding IF statement for filter rule 8.
    The filter rules failed the syntax check.
    
    %ckfilt -v4 -O
    Beginning of IPv4 filter rules.
    2|*** Dynamic filter placement rule for IKE tunnels ***|no
    IF 3|if|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|21|both|both|no|all packets|0|all|0|||IF ftp-cmd being used
    
    |    4|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|37|both|both|no|all packets|0|all|0|||if scope: deny time
    
    ELSE 5|else|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ELSE
    
    |    6|deny|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|eq|13|both|both|no|all packets|0|all|0|||else scope: deny date
    
    ENDIF 7|endif|192.168.100.101|255.255.255.255|192.168.100.102|255.255.255.255|
    yes|tcp|any|0|any|0|both|both|no|all packets|0|all|0|||ENDIF
    
    
    No preceeding IF statement for filter rule 8.
    The filter rules failed the syntax check.
    

Emplacement

/usr/sbin/ckfilt

Fichiers

Article Descriptif
/etc/security/ipsec_filter Cette commande lit la base de données /etc/security/ipsec_filter ODM . Les règles sont insérées et modifiées dans cette base de données à l'aide des commandes genfilt et chfilt .