Sie sagen, dass man mit dem Kauf eines gebrauchten Hauses oder Autos nur die Probleme eines anderen kauft. Welche Klebebandreparaturen verstecken sich in den Wänden oder unter der Motorhaube? Ohne Kenntnis des Wartungsverlaufs müssen Sie Nachforschungen anstellen, um das Unerwartete zu vermeiden.
Ob es einen Rogue-Server gibt, Administratoren das Unternehmen verlassen oder Akquisitionen und Fusionen, irgendwann auf Ihrer Reise als Systemadministrator werden Sie einen Server erben, den Sie nicht gebaut haben, für den Sie aber plötzlich verantwortlich sind. Dieser Artikel konzentriert sich auf einige Bereiche, um mit der Sicherung zu beginnen und sich mit dem neuen System vertraut zu machen. Ein Triage-Ansatz ist nur ein Ausgangspunkt:Sicherheit ist Teil des fortlaufenden Lebenszyklus der Verwaltung eines Systems.
Denken Sie daran, dass dieses System eine Anwendung oder einen Dienst hostet, der verfügbar bleiben muss. Verwenden Sie alle erforderlichen Change-Management-Prozesse, die in Ihrem Unternehmen vorhanden sind. Machen Sie sich außerdem mit den Sicherheitsrichtlinien Ihres Unternehmens vertraut und erfahren Sie, wo Sie für entsprechende Einstellungen darauf verweisen können.
Sicherungen
Haben Sie immer einen guten Backup-Plan… und wiederherstellbare Backups!
Beginnen Sie die Überprüfung, indem Sie überprüfen, ob das System regelmäßig gesichert wird und die Sicherungen wiederherstellbar sind. Warten Sie nicht, bis Sie die Wiederherstellung benötigen, um herauszufinden, dass sie schlecht ist. Sicherungsüberprüfungen sollten die Bestätigung umfassen, dass alle entfernten Dateisysteme auch irgendwo gesichert werden.
Einige Anwendungen und Datenbanken erfordern einen speziellen Prozess oder Agenten, um gute Sicherungen zu erhalten, daher ist dies ein guter Zeitpunkt, um zu überprüfen, ob diese zusätzlichen Sicherungen ordnungsgemäß durchgeführt werden. Durch die Durchführung regelmäßiger Wiederherstellungstests, die das Testen der Anwendung auf Funktionen nach der Wiederherstellung umfassen, werden Lücken und Probleme mit den Sicherungen identifiziert.
Möglicherweise möchten Sie auch eine schnelle einmalige Sicherung durchführen, bevor Sie fortfahren. Eine vollständige Systemwiederherstellung ist möglicherweise nicht erforderlich, aber wenn Anpassungen schrecklich schief gehen, bietet dieses Backup einen funktionierenden Zustand, auf den Sie zurückgreifen können. Verwenden Sie die Änderungskontrolle und dokumentieren Sie Ihre Arbeit als weitere Methode, um eine mögliche Wiederherstellung zu unterstützen.
Konten
Ihre nächsten Schritte umfassen eine Überprüfung, wer Zugriff auf das System hat und wie er sich authentifiziert. Alle erhöhten Berechtigungen, z. B. durch sudo
, müssen ebenfalls überprüft werden. Machen Sie sich mit den Sicherheitsrichtlinien des Unternehmens wie Kennwortablauf und Komplexitätsregeln vertraut, um zu überprüfen, ob diese durchgesetzt werden. Dieser Knowledgebase-Artikel führt detailliert durch, wie Sie Kennwortrichtlinien konfigurieren.
Hinweis: Überprüfen Sie unbedingt, ob das System Identitätsquellen wie IDM, AD oder LDAP verwendet. Umgekehrt sollten lokale Konten überprüft werden, selbst wenn das System externe, lokale Konten verwendet.
Sehen wir uns konkrete Beispiele für Probleme an, die Sie berücksichtigen müssen, und wie Sie damit umgehen.
Das Konto des vorherigen Administrators
Da dieses System geerbt wurde, überlegen Sie, ob der vorherige Administrator noch ein Konto benötigt. Wenn nicht, vermeiden Sie es, ihr Konto zu löschen. Sperren Sie es stattdessen. Dadurch bleiben Kontoinformationen erhalten und die versehentliche Wiederverwendung der UID wird verhindert. Der usermod
Befehl kann verwendet werden, um das Konto zu sperren:
$ sudo user mod -L <username>
Konten mit privilegiertem Zugriff
Überprüfen Sie sudoers, um beide sudoers
einzuschließen Datei (/etc/sudoers
) und das Include-Verzeichnis (/etc/sudoers.d
). Suchen Sie insbesondere nach Zuweisungen, die ALL
enthalten . Diese Zuweisung umfasst typischerweise die Gruppe wheel
. Verwenden Sie zum Entfernen von Benutzern aus Gruppen die groupmems
Befehl wie folgt:
$ sudo groupmems -g wheel -d <username>
Sie können auch alle sudo-erlaubten Befehle für jeden Benutzer wie folgt auflisten:
$ sudo -l -U <username>
Andere Konten
Wenn es Konten gibt, die von mehreren Benutzern gemeinsam genutzt werden, erwägen Sie, im Rahmen dieser Übergabe eine Kennwortänderung zu erzwingen. Ein besserer Ansatz für gemeinsam genutzte Konten wäre die Nutzung von Gruppen und ACLs für Dateiberechtigungen.
Dienstkonten sollten als Best Practice keinen Anmeldezugriff haben. Diese Konten sind normalerweise gesperrt oder haben kein Passwort und eine Shell wie /usr/sbin/nologin
. Wenn ein Dienstkonto eine interaktive Shell benötigt, erwägen Sie, dem Administrator sudo su <accountname>
zu erteilen statt direkter Anmeldung.
Andere Befehle, die beim Überprüfen von Konten hilfreich sein können, sind chage
und last
. Die chage
Der Befehl bietet Optionen zum Anzeigen und Anpassen der Kontoablaufeinstellungen. Der last
Befehl zeigt Informationen über die letzten Anmeldungen an.
So zeigen Sie Ablaufinformationen für ein Konto an:
$ sudo chage -l <username>
So zeigen Sie die letzten fünf Anmeldungen für ein Konto an:
$ last <username> -5
Ports und Dienste
Durch die Überprüfung laufender Dienste und Ports können Sie diejenigen identifizieren, die unnötig sind und deaktiviert werden können. Durch das Stoppen dieser zusätzlichen Dienste werden sie auch als Angriffsvektoren entfernt.
Ein schneller Weg, um anzuzeigen, was zuhört, ist mit ss
Befehl. Dieses Beispiel verwendet Optionen, um Sockets anzuzeigen, die auf TCP und UDP hören, und enthält auch Prozessdetails:
$ sudo ss -tulnp
Wenn Sie diesen Befehl auf einem Beispiel-Webserver ausführen, erhalten Sie, was Sie hier sehen:
Diese Ausgabe zeigt, dass httpd
vorhanden ist Prozesse, die Ports 80
überwachen , 443
, 8080
und 8443
. Andere Listening-Prozesse umfassen mariadb
(mysqld
) auf Port 3306
, xvnc
auf Port 5901
und vsftpd
auf Port21
. Diese letzten drei Prozesse könnten einige Bedenken hervorrufen.
Alles, was für die Funktion der App oder des Systems nicht benötigt wird, sollte deaktiviert werden. Wenn Sie eine PID zurückverfolgen müssen zum systemd
führen Sie systemctl status
aus :
$ systemctl status <PID>
Recherchieren Sie Konfigurationen für die verbleibenden Dienste. Einige Anwendungen unterstützen möglicherweise ACLs, um eine weitere Schutzebene hinzuzufügen. Überprüfen Sie bei Multihomed-Systemen, ob ein Dienst nur in einem Netzwerksegment benötigt wird. Die Local Address:Port
Spalte zeigt, ob der Dienst auf einer bestimmten IP oder auf allen Netzwerken lauscht (*
, 0.0.0.0
, oder ::
).
Sehen wir uns weitere Dinge an, die Sie tun können, um Ihre Ports und Dienste zu sichern.
Anschlüsse
Scannen von Ports mit einem Tool wie nmap
zeigt, welche Ports von einem anderen System aus erreichbar sind. Dieses Tool kann auch verwendet werden, um zu überprüfen, ob Firewalls wie erwartet funktionieren. Sie haben mehrere Möglichkeiten mit nmap
, aber für einen schnellen und einfachen Scan müssen Sie nur den Hostnamen oder die IP-Adresse angeben:
$ nmap <host-to-scan>
Dienste
Greifen Sie auf Ihre Dienste zu, um zu sehen, was ausgeführt wird und was erforderlich ist, da nicht alle Dienste über einen aktiven Netzwerk-Listener verfügen. Eine Liste der laufenden Dienste erhalten Sie mit --state
Option mit systemctl
, etwa so:
$ systemctl --state=running -t s
Das Stoppen und Deaktivieren von Diensten ist mit systemctl
unkompliziert :
$ sudo systemctl stop <service name>
$ sudo systemctl disable <service name>
Suchen Sie außerdem nach Diensten, die ausgefallen sind und gewartet werden müssen:
$ systemctl --state=failed
Oder, wenn ein Dienst überhaupt nicht benötigt wird, deaktivieren Sie ihn mit systemctl disable
.
SELinux
SELinux sollte aktiviert und auf Erzwingung eingestellt sein. Dieser Zustand kann mit sestatus
überprüft werden :
$ sestatus -v
Bei Bedarf können Sie SELinux mit folgendem Befehl auf Erzwingen umstellen:
$ sudo setenforce Enforcing
Halten Sie die Änderung dauerhaft, indem Sie zu /etc/selinux/config
gehen indem Sie entweder nach SELINUX=disable
suchen oder SELINUX=permissive
, dann ändern Sie die Zeile in:
SELINUX=enforcing
Die Fehlerbehebung von SELinux geht über dieses Handbuch hinaus, aber dieser Knowledgebase-Artikel ist eine gute Referenz für den Anfang.
Patching
Die Wartung und Sicherung eines Systems umfasst Updates. Überprüfen Sie für den geerbten Server zunächst, ob das System abonniert und konfiguriert ist, um Updates zu erhalten. Verwenden Sie unter Red Hat Enterprise Linux (RHEL) diesen Befehl, um Informationen über den Abonnementverwaltungsdienst anzuzeigen:
$ sudo subscription-manager config --list
Die baseurl
im [rhsm
aufgeführt ]-Abschnitt enthält Informationen darüber, was dieses System abonniert hat. Wenn cdn.redhat.com
aufgeführt ist, ist das System direkt beim Red Hat Content Delivery Network abonniert.
Dieses Beispiel zeigt ein direkt bei Red Hat abonniertes System. Wenn die baseurl
ein Satellitenserver ist, überprüfen Sie dort die synchronisierten Repositories, um sicherzustellen, dass der synchronisierte Inhalt aktuell ist.
Bestätigen Sie mit diesem Befehl, welche Repos für das System aktiviert sind:
$ yum repolist --all
Diese Ausgabe zeigt die konfigurierten Repositories und deren Status. Wenn ein Repository deaktiviert ist, wird es nicht auf Patches überprüft, wenn das System aktualisiert wird.
Hinweis: Beginnend mit RHEL 8, CentOS 8 und Fedora 22, yum
wurde durch dnf
ersetzt . Das yum
Optionen sind alle fast dieselben wie für dnf
, und yum
selbst ist nur ein symbolischer Link zu dnf
.
Ausführen von yum check-update
listet die Pakete und Versionen auf, die für Updates verfügbar sind. Best Practice wendet alle verfügbaren Patches an, aber es kann einige Fälle geben, in denen nur sicherheitsbezogene Korrekturen erwünscht sind. Dies ist mit --security
möglich Möglichkeit.
Diese Option kann mit check-update
kombiniert werden um eine Liste von Patches zurückzugeben, die eine Sicherheitslücke beheben, aber alles andere überspringen. Es kann auch mit dem update
eingebunden werden Befehl.
$ yum check-update
Fügen Sie --security
hinzu Option, um diese Ausgabe auf sicherheitsrelevante Updates zu beschränken.
Für Red Hat Enterprise Linux-Systeme können Sie die Kritikalität jeder Aktualisierung entweder von Red Hat Satellite oder dem Kundenportal überprüfen. Jede Sicherheitserrata hat eine Bewertung (Kritisch, Wichtig, Moderat oder Niedrig) basierend auf dem potenziellen Risiko. Anhand der Bewertung können Sie bestimmen, wie schnell Sie Aktualisierungen für das System planen müssen.
Wenn Sie zum Patchen bereit sind, führen Sie das yum update
aus Befehl:
$ sudo yum update
Überprüfen Sie die Ausgabe und drücken Sie Y wenn Sie dazu aufgefordert werden.
Hinweis: Kernel-Updates erfordern einen Neustart, und dieser Artikel listet auf, welche anderen Pakete einen Neustart für RHEL-Systeme erfordern. Die yum-utils
Paket enthält auch einen needs-restarting
Dienstprogramm, das prüft, ob ein Neustart erforderlich ist.
Nächste Schritte
Schwachstellen-Scans und Compliance-Prüfungen sollten so geplant und durchgeführt werden, wie es die Zeit erlaubt. Zwei Tools zum Erkunden dieses Themas sind OpenVAS und OpenSCAP. Diese Tools bieten eine tiefere Analyse des Systems und melden vorhandene Schwachstellen und Compliance-Lücken. Wenn Sie diese Tools noch nie verwendet haben, kann es einige Zeit dauern, bis Sie sich mit ihnen vertraut gemacht haben, aber sie sollten zu Ihren wichtigsten Tools für die Sicherung aller von Ihnen verwalteten Systeme werden.
Abschließen
Es kann sicherlich einschüchternd sein, ein System zu verwalten, das jemand anderes gebaut hat. Während dieser Überprüfung Ihres geerbten Systems sollten Sie damit besser vertraut sein, und Sie werden seine Sicherheit verbessert haben. Fahren Sie mit regelmäßigen Sicherheitsüberprüfungen für alle Ihre Systeme als Teil des Systemlebenszyklus fort.
Achten Sie darauf, in zukünftigen Artikeln vorbeizuschauen, während wir tiefer in Schwachstellen-Scans und STIG-Prozesse eintauchen.
[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]