24.8. Journalisation des règles de pare-feu et de stratégie de réseau de sortie
En tant qu'administrateur de cluster, vous pouvez configurer la journalisation d'audit pour votre cluster et activer la journalisation pour un ou plusieurs espaces de noms. OpenShift Container Platform produit des journaux d'audit pour les pare-feu de sortie et les stratégies réseau.
La journalisation des audits n'est disponible que pour le plugin réseau OVN-Kubernetes.
24.8.1. Journalisation des audits Copier lienLien copié sur presse-papiers!
Le plugin réseau OVN-Kubernetes utilise les ACL de l'Open Virtual Network (OVN) pour gérer les pare-feu de sortie et les politiques de réseau. La journalisation d'audit expose les événements d'autorisation et de refus des ACL.
Vous pouvez configurer la destination des journaux d'audit, comme un serveur syslog ou un socket de domaine UNIX. Indépendamment de toute configuration supplémentaire, un journal d'audit est toujours enregistré sur /var/log/ovn/acl-audit-log.log
sur chaque pod OVN-Kubernetes dans le cluster.
L'enregistrement des audits est activé par espace de noms en annotant l'espace de noms avec la clé k8s.ovn.org/acl-logging
comme dans l'exemple suivant :
Exemple d'annotation d'un espace de noms
Le format de journalisation est compatible avec syslog tel que défini par RFC5424. L'option syslog est configurable et est définie par défaut sur local0
. Un exemple d'entrée de journal peut ressembler à ce qui suit :
Exemple d'entrée de journal de refus d'ACL pour une stratégie de réseau
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
Le tableau suivant décrit les valeurs d'annotation de l'espace de noms :
Annotation | Valeur |
---|---|
|
Vous devez spécifier au moins l'un des éléments suivants :
|
24.8.2. Configuration de l'audit Copier lienLien copié sur presse-papiers!
La configuration de la journalisation des audits est spécifiée dans le cadre de la configuration du fournisseur de réseau du cluster OVN-Kubernetes. Le fichier YAML suivant illustre les valeurs par défaut pour la journalisation des audits :
Configuration de la journalisation des audits
Le tableau suivant décrit les champs de configuration de la journalisation des audits.
Field | Type | Description |
---|---|---|
| entier |
Nombre maximal de messages à générer chaque seconde par nœud. La valeur par défaut est |
| entier |
Taille maximale du journal d'audit en octets. La valeur par défaut est |
| chaîne de caractères | One of the following additional audit log targets:
|
| chaîne de caractères |
L'installation syslog, telle que |
24.8.3. Configuration de l'audit du pare-feu de sortie et de la stratégie réseau pour un cluster Copier lienLien copié sur presse-papiers!
En tant qu'administrateur de cluster, vous pouvez personnaliser la journalisation des audits pour votre cluster.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous au cluster avec un utilisateur disposant des privilèges
cluster-admin
.
Procédure
Pour personnaliser la configuration de la journalisation des audits, entrez la commande suivante :
oc edit network.operator.openshift.io/cluster
$ oc edit network.operator.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AstuceVous pouvez également personnaliser et appliquer le fichier YAML suivant pour configurer l'enregistrement des audits :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Pour créer un espace de noms avec des stratégies de réseau, procédez comme suit :
Créer un espace de noms pour la vérification :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
namespace/verify-audit-logging created
namespace/verify-audit-logging created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer la journalisation des audits :
oc annotate namespace verify-audit-logging k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "alert" }'
$ oc annotate namespace verify-audit-logging k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "alert" }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace/verify-audit-logging annotated
namespace/verify-audit-logging annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer des politiques de réseau pour l'espace de noms :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créer un pod pour le trafic source dans l'espace de noms
default
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer deux pods dans l'espace de noms
verify-audit-logging
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
pod/client created pod/server created
pod/client created pod/server created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour générer du trafic et produire des entrées de journal d'audit de stratégie de réseau, procédez comme suit :
Obtenir l'adresse IP du pod nommé
server
dans l'espace de nomsverify-audit-logging
:POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')
$ POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Effectuez un ping de l'adresse IP de la commande précédente à partir du pod nommé
client
dans l'espace de nomsdefault
et confirmez que tous les paquets sont abandonnés :oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Effectuez un ping de l'adresse IP enregistrée dans la variable d'environnement du shell
POD_IP
à partir du pod nomméclient
dans l'espace de nomsverify-audit-logging
et confirmez que tous les paquets sont autorisés :oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Affiche les dernières entrées du journal d'audit de la stratégie de réseau :
for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
$ for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.8.4. Activation de la journalisation d'audit du pare-feu de sortie et de la stratégie de réseau pour un espace de noms Copier lienLien copié sur presse-papiers!
En tant qu'administrateur de cluster, vous pouvez activer la journalisation d'audit pour un espace de noms.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous au cluster avec un utilisateur disposant des privilèges
cluster-admin
.
Procédure
Pour activer la journalisation des audits pour un espace de noms, entrez la commande suivante :
oc annotate namespace <namespace> \ k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "notice" }'
$ oc annotate namespace <namespace> \ k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "notice" }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow où :
<namespace>
- Spécifie le nom de l'espace de noms.
AstuceVous pouvez également appliquer le code YAML suivant pour activer l'enregistrement des audits :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
namespace/verify-audit-logging annotated
namespace/verify-audit-logging annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Affiche les dernières entrées du journal d'audit :
for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
$ for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.8.5. Désactivation de la journalisation d'audit du pare-feu de sortie et de la stratégie de réseau pour un espace de noms Copier lienLien copié sur presse-papiers!
En tant qu'administrateur de cluster, vous pouvez désactiver la journalisation d'audit pour un espace de noms.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous au cluster avec un utilisateur disposant des privilèges
cluster-admin
.
Procédure
Pour désactiver la journalisation des audits pour un espace de noms, entrez la commande suivante :
oc annotate --overwrite namespace <namespace> k8s.ovn.org/acl-logging-
oc annotate --overwrite namespace <namespace> k8s.ovn.org/acl-logging-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow où :
<namespace>
- Spécifie le nom de l'espace de noms.
AstuceVous pouvez également appliquer le code YAML suivant pour désactiver la journalisation des audits :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
namespace/verify-audit-logging annotated
namespace/verify-audit-logging annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow