9.3. Déploiement de l'opérateur de pare-feu du nœud d'entrée
Prérequis
- L'opérateur de pare-feu du nœud d'entrée est installé.
Procédure
Pour déployer l'opérateur de pare-feu du nœud d'entrée, créez une ressource personnalisée IngressNodeFirewallConfig
qui déploiera l'ensemble de démons de l'opérateur. Vous pouvez déployer un ou plusieurs CRD IngressNodeFirewall
sur des nœuds en appliquant des règles de pare-feu.
-
Créez le site
IngressNodeFirewallConfig
à l'intérieur de l'espace de nomsopenshift-ingress-node-firewall
nomméingressnodefirewallconfig
. Exécutez la commande suivante pour déployer les règles de l'opérateur de pare-feu du nœud d'entrée :
$ oc apply -f rule.yaml
9.3.1. Objet de configuration du pare-feu du nœud d'entrée
Les champs de l'objet de configuration Ingress Node Firewall sont décrits dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
|
Le nom de l'objet CR. Le nom de l'objet règles de pare-feu doit être |
|
|
Espace de noms pour l'objet CR de l'opérateur du pare-feu d'entrée. Le CR |
|
| Une contrainte de sélection de nœuds utilisée pour cibler les nœuds par le biais d'étiquettes de nœuds spécifiées. Par exemple : spec: nodeSelector: node-role.kubernetes.io/worker: "" Note
L'une des étiquettes utilisées dans |
L'opérateur consomme le CR et crée un ensemble de démons de pare-feu de nœuds d'entrée sur tous les nœuds qui correspondent à nodeSelector
.
Exemple de configuration de l'opérateur de pare-feu du nœud d'entrée
L'exemple suivant présente une configuration complète du pare-feu du nœud d'entrée :
Exemple d'objet de configuration du pare-feu du nœud d'entrée
apiVersion: ingressnodefirewall.openshift.io/v1alpha1 kind: IngressNodeFirewallConfig metadata: name: ingressnodefirewallconfig namespace: openshift-ingress-node-firewall spec: nodeSelector: node-role.kubernetes.io/worker: ""
L'opérateur consomme le CR et crée un ensemble de démons de pare-feu de nœuds d'entrée sur tous les nœuds qui correspondent à nodeSelector
.
9.3.2. Objet "règles de pare-feu" du nœud d'entrée
Les champs de l'objet Règles de pare-feu du nœud d'entrée sont décrits dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
| Le nom de l'objet CR. |
|
|
Les champs de cet objet spécifient les interfaces auxquelles appliquer les règles de pare-feu. Par exemple, |
|
|
Vous pouvez utiliser |
|
|
|
Configuration de l'objet d'entrée
Les valeurs de l'objet ingress
sont définies dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
| Permet de définir le bloc CIDR. Vous pouvez configurer plusieurs CIDR de différentes familles d'adresses. Note
Des CIDR différents vous permettent d'utiliser la même règle d'ordre. S'il existe plusieurs objets |
|
|
Les objets du pare-feu d'entrée
Définissez Note Les règles de pare-feu en entrée sont vérifiées à l'aide d'un webhook de vérification qui bloque toute configuration invalide. Le webhook de vérification vous empêche de bloquer les services critiques du cluster tels que le serveur API ou SSH. |
Exemple d'objet de règles de pare-feu pour le nœud d'entrée
L'exemple suivant présente une configuration complète du pare-feu du nœud d'entrée :
Exemple de configuration du pare-feu du nœud d'entrée
apiVersion: ingressnodefirewall.openshift.io/v1alpha1 kind: IngressNodeFirewall metadata: name: ingressnodefirewall spec: interfaces: - eth0 nodeSelector: matchLabels: <do_node_ingress_firewall>: 'true' ingress: - sourceCIDRs: - 172.16.0.0/12 rules: - order: 10 protocolConfig: protocol: ICMP icmp: icmpType: 8 #ICMP Echo request action: Deny - order: 20 protocolConfig: protocol: TCP tcp: ports: "8000-9000" action: Deny - sourceCIDRs: - fc00:f853:ccd:e793::0/64 rules: - order: 10 protocolConfig: protocol: ICMPv6 icmpv6: icmpType: 128 #ICMPV6 Echo request action: Deny
Exemple d'objet de règles de pare-feu de nœud d'entrée à confiance zéro
Les règles de pare-feu de nœud d'entrée à confiance zéro peuvent fournir une sécurité supplémentaire aux clusters à interfaces multiples. Par exemple, vous pouvez utiliser des règles de pare-feu de nœud d'entrée à confiance zéro pour supprimer tout le trafic sur une interface spécifique, à l'exception de SSH.
L'exemple suivant présente une configuration complète d'un ensemble de règles de pare-feu de nœud d'entrée à confiance zéro :
Les utilisateurs doivent ajouter tous les ports que leur application utilisera à leur liste d'autorisations dans le cas suivant afin de garantir un fonctionnement correct.
Exemple de règles de pare-feu de nœud d'entrée à confiance zéro
apiVersion: ingressnodefirewall.openshift.io/v1alpha1 kind: IngressNodeFirewall metadata: name: ingressnodefirewall-zero-trust spec: interfaces: - eth1 1 nodeSelector: matchLabels: <do_node_ingress_firewall>: 'true' ingress: - sourceCIDRs: - 0.0.0.0/0 2 rules: - order: 10 protocolConfig: protocol: TCP tcp: ports: 22 action: Allow - order: 20 action: Deny 3