GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sichern eines geerbten Linux-Systems

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


Linux
  1. „shutdown“-Befehlsbeispiele in Linux

  2. resize2fs-Befehlsbeispiele in Linux

  3. localectl-Befehlsbeispiele in Linux

  4. Linux-Verfügbarkeitsverlauf

  5. Linux-Warteschlangensystem

Fsck-Befehl unter Linux

Ist Linux ein Betriebssystem oder ein Kernel?

Die Einführung eines Linux-Systemadministrators in cgroups

Dokumentieren der Systemverfügbarkeit in Linux

Stacer Linux-Systemoptimierer und -überwachung

So listen Sie Dienste unter Linux auf