Commande ckfilt
Objectif
Vérifie la syntaxe des règles de filtrage.
Syntaxe
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
- 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 RuleLa 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 0OR%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||| - 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 . |