Red Hat Ansible Automation Platform ist eine Plattform für die Implementierung unternehmensweiter Automatisierungsprozesse und damit ein ideales Tool für Ihre Sicherheitsaudits. Sicherheit umfasst mehrere Schichten, doch dieser Artikel konzentriert sich auf die Minderung von SSH-Angriffen auf gemanagte Hosts. Sie können zwar nicht alle Sicherheitsrisiken beseitigen, aber Sie können gemanagte Hosts härten, um einige Risiken zu minimieren (insbesondere Brute Force-Angriffe) und andere zu mindern (indem Sie SSH-Verbindungen nur von autorisierten Hosts zulassen, sudo erzwingen usw.). Dieser Artikel bezieht sich auf Ansible Automation Platform. Der Großteil der Härtungskonfiguration wird jedoch auf die gemanagten Hosts angewendet (Bearbeitung von sshd_config, sssd.conf, access.conf), sodass Sie diese Konzepte mit anderen zentralisierten Konfigurationstools wie Red Hat Satellite anwenden können.
In diesem Artikel wird gezeigt, wie Sie die Konfiguration Ihrer gemanagten Hosts mit dem folgenden Schema härten können:
- Mehrere in AD/LDAP erstellte Service Accounts für die SSH-Anmeldung bei den Hosts:
- Public Key, der in AD/LDAP für die SSH-Anmeldung mit Public Key-Authentifizierung gespeichert wird
- Passwort, das nur für sudo in AD/LDAP gespeichert wird (nicht für die SSH-Anmeldung)
- Auf allen gemanagten Hosts:
- Für einen Service Account ist eine Anmeldung nur über die Ausführungsknoten von Ansible Automation Platform möglich (jeder Anmeldeversuch von einer anderen Stelle wird abgelehnt)
- Für die Erweiterung von Berechtigungen mit sudo für einen beliebigen Service Account ist ein Passwort erforderlich

Einrichtung
Beginnen Sie mit einem nicht gehärteten Standard-Deployment, das normalerweise Folgendes umfasst:
- Einen Ansible Automation Platform-Service Account
- Wird für die SSH-Anmeldung bei den Hosts verwendet
- Wird in AD/LDAP mit einem zufälligen Passwort erstellt
- Auf jedem Host:
- Der Service Account kann mit dem Passwort angemeldet werden
- Der Service Account kann sudo ohne das Passwort verwenden
Härten der Konfiguration
Viele Unternehmen erstellen nur einen Service Account für jeden Service. In diesem Ansible Automation Platform-Szenario wird nur ein Service Account für die Verwendung mit Ansible Automation Platform erstellt, um eine Verbindung zu allen gemanagten Hosts herzustellen. Wenn dieser Service Account jedoch aus irgendeinem Grund kompromittiert wird, könnte der Angreifer auf jeden gemanagten Host zugreifen.
Dies ist die erste Änderung, die Sie vornehmen müssen. Sicherheit umfasst mehrere Schichten. Eine wichtige Grundlage ist dabei das Erstellen verschiedener Service Accounts. Es gibt keinen universellen Ansatz für die Implementierung. Überprüfen Sie Ihre Architektur und entscheiden Sie, was für Ihre Infrastruktur am sinnvollsten ist. Im Folgenden finden Sie einige gängige Strategien für das Erstellen verschiedener Service Accounts:
- Standort oder Rechenzentrum: Erstellen Sie einen Service Account für jedes Rechenzentrum
- Unternehmen oder Domain: Erstellen Sie einen Service Account für jedes Unternehmen bzw. jede Domain
- Betriebssystem: Erstellen Sie einen Service Account für jeden Hosttyp (Red Hat Enterprise Linux 7, 8, 9 usw.)
- Nutzung: Erstellen Sie einen Service Account für jede Host-Nutzung der Hauptanwendung (Datenbank, Apache, Kafka)
- Sicherheit: Erstellen Sie einen Service Account für jede Sicherheitszone (DMZ, Interne Zone 1 usw.).
Erstellen Sie eine gemeinsame Gruppe für alle Service Accounts. So wird es einfacher, einen Service Account zuzulassen und gleichzeitig den Zugriff auf alle anderen zu verweigern.
SSH-Authentifizierung über Public Keys mit AD/LDAP
Nutzen Sie Public Keys für die SSH-Authentifizierung von Service Accounts. Obwohl Public Keys einige Nachteile gegenüber Passwörtern haben, eliminiert die Verwendung von Schlüsseln die Effektivität von Brute Force-Angriffen für die SSH-Anmeldung.
Fügen Sie zunächst dem Attribut altSecurityIdentities
in AD/LDAP die SSH-Public Keys der einzelnen Service Accounts hinzu.
Hängen Sie für jeden gemanagten Host ssh an die Service-Liste in /etc/sssd/sssd.conf
an:
services = nss, pam, ssh
Fügen Sie die Parameter ldap_user_extra_attrs
und ldap_user_ssh_public_key
zum Abschnitt[domain]
von /etc/sssd/sssd.conf
hinzu:
[domain/example.com] ldap_user_extra_attrs = altSecurityIdentities ldap_user_ssh_public_key = altSecurityIdentities
Die Option AuthorizedKeysCommandUser
gibt das Nutzerkonto an, das zum Ausführen von AuthorizedKeysCommand
verwendet wird. Es wird empfohlen, dafür einen dedizierten Benutzer zu verwenden. Fügen Sie daher diese SSH-Parameter zu /etc/ssh/sshd_config
hinzu:
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser nobody
Weitere Informationen finden Sie unter Store User SSH Keys in Active Directory for SSH Authentication im Red Hat Customer Portal.
Verweigern der Passwortauthentifizierung
Fügen Sie auf allen gemanagten Hosts diese SSH-Parameter zu /etc/ssh/sshd_config
hinzu, um die Verwendung der SSH-Passwortauthentifizierung zu verweigern (<Service Account> dabei wird
Match User <Service Account> PasswordAuthentication no Match all
Anfordern eines Passworts für sudo
Fordern Sie für sudo das Passwort für den Service Account an. Erstellen Sie dazu eine neue Datei mit dem Namen für die Service Account-Gruppe in /etc/sudoers.d
, und fügen Sie diese Zeile hinzu:
%<Service Account Group> ALL=(ALL:ALL) ALL
Wenn der Gruppenname beispielsweise aapsas
lautet:
$ cat /etc/sudoers.d/aapsas %appsas ALL=(ALL:ALL) ALL
Obwohl gemäß Best Practices für die Sicherheit empfohlen wird, nur bestimmte zulässige Befehle zum Ausführen von sudo hinzuzufügen, ist dies mit Ansible Automation Platform nicht möglich. Bei gemanagten Hosts kommuniziert Ansible Automation Platform mit den Zielmaschinen (meist per SSH), kopiert ein Python-Skript und führt es aus.
Zulassen von Verbindungen von autorisierten Ansible Automation Platform-Ausführungsknoten
In der endgültigen Härtungskonfiguration werden SSH-Verbindungen nur für einen Service Account zugelassen, der von Ansible Automation Platform-Ausführungsknoten oder LOCAL
(für sudo) stammen. Um dies zu implementieren, fügen Sie eine Zeile in /etc/security/access.conf hinzu. Die erste Zeile lässt Verbindungen von Ansible Automation Platform und LOCAL zu, während die zweite Zeile Verbindungen zu anderen Service Accounts untersagt.
+: <Service Account> : <AAP Execution Nodes IPS> LOCAL -: <Service Account Group> : ALL
Automatisieren der gesamten Konfiguration
In diesem Artikel wurden die Schritte beschrieben, die Sie zur Härtung Ihrer gemanagten Hosts für die SSH-Anmeldung benötigen. Mit Ansible Automation Platform müssen Sie jedoch nicht alle Aufgaben manuell ausführen. Die von mir behandelten Konfigurationsschritte lassen sich mit dem Vorlagenmodul einfach automatisieren. Erstellen Sie Vorlagen für die Konfigurationsdateien /etc/security/access.conf
, /etc/sssd/sssd.conf
und /etc/ssh/sshd_config
.
Sie ändern Parameter für die Verbindungssicherheit Ihres Zielhosts. Gehen Sie also sorgfältig vor. Eine fehlerhafte Konfiguration kann dazu führen, dass der sshd-Service fehlschlägt oder Nutzenden Zugriff gewährt wird, die keinen Zugriff benötigen usw. Überprüfen Sie Ihre Arbeit, bevor Sie die Änderungen übernehmen.
Natürlich erreichen Sie mit einer einmaligen Konfiguration keine gute Sicherheit. Die Härtung Ihrer SSH-Konfiguration für Ihre gemanagten Hosts ist ein wichtiger Schritt in einem fortlaufenden Prozess, der mit Ansible Automation Platform vereinfacht wird.
Über den Autor
Alberto Gonzalez de Dios is a Senior Cloud consultant: Automation and OpenShift specialist. He joined Red Hat in 2018, and he is certified in Azure, AWS and Red Hat (Red Hat Certified Architect Level II).
Mehr davon
Nach Thema durchsuchen
Automatisierung
Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen
Künstliche Intelligenz
Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen
Open Hybrid Cloud
Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.
Sicherheit
Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren
Edge Computing
Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen
Infrastruktur
Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen
Anwendungen
Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen
Original Shows
Interessantes von den Experten, die die Technologien in Unternehmen mitgestalten
Produkte
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud-Services
- Alle Produkte anzeigen
Tools
- Training & Zertifizierung
- Eigenes Konto
- Kundensupport
- Für Entwickler
- Partner finden
- Red Hat Ecosystem Catalog
- Mehrwert von Red Hat berechnen
- Dokumentation
Testen, kaufen und verkaufen
Kommunizieren
Über Red Hat
Als weltweit größter Anbieter von Open-Source-Software-Lösungen für Unternehmen stellen wir Linux-, Cloud-, Container- und Kubernetes-Technologien bereit. Wir bieten robuste Lösungen, die es Unternehmen erleichtern, plattform- und umgebungsübergreifend zu arbeiten – vom Rechenzentrum bis zum Netzwerkrand.
Wählen Sie eine Sprache
Red Hat legal and privacy links
- Über Red Hat
- Jobs bei Red Hat
- Veranstaltungen
- Standorte
- Red Hat kontaktieren
- Red Hat Blog
- Diversität, Gleichberechtigung und Inklusion
- Cool Stuff Store
- Red Hat Summit