Fehlerbehebung
Fehlerbehebung SUSE® Security Implementierungen
Die SUSE® Security Container werden mit demselben Orchestrierungstool bereitgestellt, verwaltet und aktualisiert, das auch für Anwendungs-Workloads verwendet wird. Bitte überprüfen Sie die Online-Dokumentation für jeden Schritt, der während der Implementierung erforderlich ist. Oft werden Implementierungen versucht, indem einfach die Beispiel-YAML-Dateien kopiert und ohne vorherige Überprüfung der Schritte bereitgestellt werden, wie z. B. die ordnungsgemäße Konfiguration von Registries, Secrets oder RBACs/Rollenbindungen.
Erstimplementierung
-
Überprüfen Sie, ob die SUSE® Security Container mit der richtigen Authentifizierung abgerufen werden können. Überprüfen Sie das verwendete Secret und stellen Sie sicher, dass der Cluster auf die entsprechende Registry zugreifen kann.
-
Stellen Sie sicher, dass die erforderlichen Änderungen an der YAML (z. B. NodePort oder LoadBalancer) oder die Helm-Werteinstellungen entsprechend festgelegt sind.
-
Überprüfen Sie die Plattform und die Container-Laufzeit und nehmen Sie bei Bedarf Änderungen vor (z. B. PKS, containerd, CRI-O).
Anmeldung und Erstkonfiguration
-
Überprüfen Sie, ob der Zugriff auf den Manager (IP-Adresse, Port, Route) durch Firewalls erlaubt ist.
Laufender Betrieb
-
Verzeichnisintegration. SUSE® Security unterstützt spezifische Konfigurationen für LDAP/AD und andere Integrationen für Gruppen und Rollen. Kontaktieren Sie SUSE® Security für zusätzliche Schritte zur Fehlerbehebung und ein Tool zur Fehlerbehebung bei AD.
-
Registry-Scanning. Die meisten Probleme hängen mit Authentifizierungsfehlern bei der Registry oder der Unfähigkeit des Controllers zusammen, von dem Cluster aus auf die Registry zuzugreifen.
-
Bei Leistungsproblemen stellen Sie sicher, dass dem Scanner genügend Speicher für das Scannen großer Images zugewiesen ist. Außerdem können die Mindestanforderungen an CPU und Speicher in der Pod-Richtlinie festgelegt werden, um eine angemessene Leistung im großen Maßstab sicherzustellen.
-
Zulassungskontrolle. Siehe den Abschnitt zur Fehlerbehebung im Abschnitt Sicherheitsrisiken… → Zulassungskontrollen.
Aktualisierung
-
Verwenden Sie rollierende Updates für den Controller. Wenn Sie Hosts neu starten, stellen Sie sicher, dass Sie die Controller überwachen, während sie zu anderen Hosts wechseln, oder sie auf den neu gestarteten Hosts neu bereitstellen, um sicherzustellen, dass sie starten, dem Controller-Cluster beitreten und stabilisieren/synchronisieren können. Das gleichzeitige oder zu schnelle Neustarten aller Hosts kann zu unbekannten Zuständen für die Controller führen.
-
Verwenden Sie einen persistenten Volume-Claim, um die SUSE® Security Konfiguration für den Fall zu speichern, dass alle Controller/Knoten im Cluster ausfallen.
-
Überprüfen Sie beim Aktualisieren auf eine neue Version die Online-Dokumentation, um Änderungen/Ergänzungen zur erforderlichen YAML zu identifizieren, sowie andere Änderungen wie Rollenbindungen oder neue Dienste (z. B. Zulassungssteuerungs-Webhooks, persistente Volume-Claims usw.).
Debug-Protokolle
Um die Protokolle eines SUSE® Security Containers, beispielsweise eines Controller-Pods, anzuzeigen.
kubectl logs neuvector-controller-pod-777fdc5668-4jkjn -n neuvector
Diese Protokolle können Probleme mit der Cluster-Konnektivität, Administratoraktionen, Scanning-Aktivitäten und andere nützliche Einträge zeigen. Wenn mehrere Controller ausgeführt werden, kann es notwendig sein, jeden einzelnen zu überprüfen. Diese Protokolle können in eine Protokolldatei umgeleitet werden, um sie an den SUSE® Security Support zu senden.
Debug-Modus für SUSE® Security Controller aktivieren
Für Probleme, die eine eingehende Untersuchung erfordern, kann der Debug-Modus für die Controller/All-in-Ones aktiviert werden, der detaillierte Informationen protokolliert. Dies kann die Größe der Protokolldatei erheblich erhöhen, daher wird empfohlen, ihn nach dem Sammeln der Protokolle wieder auszuschalten.
Kubernetes, OpenShift und andere Orchestrierungsprotokolle
Es kann hilfreich sein, die Protokolle von Orchestrierungstools zu überprüfen, um alle Bereitstellungsaktivitäten einschließlich der Zeitstempel und Status der Pod-Erstellung, Bereitstellungen, DaemonSets und anderer Verwaltungsaktionen der SUSE® Security Container, die vom Orchestrierungstool durchgeführt wurden, zu sehen.
kubectl get events -n neuvector
Support-Protokoll
Das Support-Protokoll enthält zusätzliche Informationen, die für den SUSE® Security Support hilfreich sind, einschließlich Systemkonfiguration, Container, Richtlinien, Benachrichtigungen und SUSE® Security Containerdetails.
Um das Support-Protokoll herunterzuladen, gehen Sie zu Einstellungen → Konfiguration und wählen Sie Protokoll erfassen.
Verwendung der CLI, um den Debug-Modus zu aktivieren
Melden Sie sich beim SUSE® Security Manager-Pod mit Benutzer und Passwort an (empfohlen in einem separaten Terminalfenster).
kubectl exec -it neuvector-manager-pod-5bb76b6754-rlmnp -n neuvector -- cli
#neuvector-svc-controller.neuvector> login
Holen Sie sich die Liste der Controller. Finden Sie den Controller mit Leader = True.
show controller
Aktivieren Sie den Debug-Modus im Leader-Controller mit der ID oder dem Namen des Controllers.
set controller 4fce427cf963 debug -c all
Um den Debug-Modus auf allen Controllern zu aktivieren
set system controller_debug -c all
Führen Sie die Aktivität in SUSE® Security aus, die Sie debuggen möchten. Sehen Sie sich dann die Controller-Protokolle an (in einem separaten Terminalfenster).
kubectl logs <leader_controller_pod_name> -n neuvector
Falls erforderlich, erfassen Sie die Protokolle und senden Sie sie an SUSE® Security.
Deaktivieren Sie den Debug-Modus auf dem Controller (zurück im CLI-Fenster).
set controller 4fce427cf963 debug
exit
Überprüfen Sie den Debug-Status des Controllers.
show controller setting 289d67396fcb
Verwendung der REST-API, um den Debug-Modus zu aktivieren
Setzen Sie das Zugriffstoken (Token) mit Ihrer IP, Benutzer, Passwort:
_controllerIP_="<your_controller_ip>"
_controllerRESTAPIPort_="10443"
_neuvectorUsername_="admin"
_neuvectorPassword_="admin"
|
Für Kubernetes-basierte Bereitstellungen können Sie die Controller-IP in der folgenden Befehlsausgabe erhalten: |
kubectl get pod -n neuvector -o wide | grep controller
|
Wenn Sie auf die REST-API von außerhalb des Clusters zugreifen, siehe die Anweisungen im Abschnitt Automatisierung. |
Holen Sie sich das Authentifizierungs-Token
curl -k -H "Content-Type: application/json" -d '{"password": {"username": "'$_neuvectorUsername_'", "password": "'$_neuvectorPassword_'"}}' "https://$_controllerIP_:$_controllerRESTAPIPort_/v1/auth" > /dev/null 2>&1 > token.json
_TOKEN_=`cat token.json | jq -r '.token.token'`
|
Möglicherweise müssen Sie jq installieren ($sudo yum install jq) |
Aktivieren Sie den Debug-Modus
curl -X PATCH -k -H "Content-Type: application/json" -H "X-Auth-Token: $_TOKEN_" -d '{"config": {"controller_debug": ["cpath", "conn"]}}' "https://$_controllerIP_:$_controllerRESTAPIPort_/v1/system/config" > /dev/null 2>&1 > set_debug.json
#debug options - cpath, conn, mutex, scan, cluster , all
Deaktivieren Sie den Debug-Modus auf allen Controllern in einem Cluster.
curl -X PATCH -k -H "Content-Type: application/json" -H "X-Auth-Token: $_TOKEN_" -d '{"config": {"controller_debug": []}}' "https://$_controllerIP_:$_controllerRESTAPIPort_/v1/system/config" > /dev/null 2>&1 > set_debug.json
Überprüfen Sie den Debug-Status des Controllers in einem Cluster
curl -k -H "Content-Type: application/json" -H "X-Auth-Token: $_TOKEN_" "https://$_controllerIP_:$_controllerRESTAPIPort_/v1/system/config" > /dev/null 2>&1 > system_setting.json
cat system_setting.json | jq .config.controller_debug
Abmelden
echo `date +%Y%m%d_%H%M%S` log out
curl -k -X 'DELETE' -H "Content-Type: application/json" -H "X-Auth-Token: $_TOKEN_" "https://$_controllerIP_:$_controllerRESTAPIPort_/v1/auth" > /dev/null 2>&1