Feed abonnieren

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
hardening-ssh-connections-with-ansible-img1-de

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 durch den tatsächlichen Namen des Service Accounts ersetzt):

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).

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Nach Thema durchsuchen

automation icon

Automatisierung

Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen

AI icon

Künstliche Intelligenz

Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen

open hybrid cloud icon

Open Hybrid Cloud

Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.

security icon

Sicherheit

Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren

edge icon

Edge Computing

Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen

Infrastructure icon

Infrastruktur

Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen

application development icon

Anwendungen

Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen

Original series icon

Original Shows

Interessantes von den Experten, die die Technologien in Unternehmen mitgestalten