Sicherheit ist ein beliebtes Thema unter Linux-Systemadministratoren. Jedes Forum, das ich lese, jede Konferenz, an der ich teilnehme, und jede IT-zentrierte Diskussion, an der ich teilnehme, dreht sich immer um Sicherheit, und dann wenden sich die Gespräche unweigerlich der Linux-Sicherheit zu. Dies ist meine Erfahrung, und meine Unfähigkeit, technische Gespräche über Linux nicht zu belauschen, ist der Ursprung dieses Artikels. Dies sind meine fünf Empfehlungen, um sofort mit einer sichereren Linux-Installation zu beginnen.
[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]
Halten Sie es minimal
Wenn ich Linux installiere, installiere ich immer die kleinstmögliche Version. Für CentOS oder Red Hat Enterprise Linux bedeutet dies eine minimale Installation. Ich fange lieber klein an und füge dann hinzu, was ich brauche, anstatt zu entfernen, was ich nicht brauche. Der zusätzliche Vorteil bei der Auswahl einer Minimalinstallation besteht darin, dass der Platzbedarf des Systems ebenfalls minimal ist. Speicherplatz ist billig, aber wer möchte schon Speicherplatz für überflüssige Anwendungen verschwenden, die uns später mit Sicherheitsproblemen heimsuchen könnten? Alles, was ich zunächst benötige, ist eine Basisinstallation mit einem SSH-Server, damit ich eine Verbindung zu ihm herstellen und ihn remote verwalten kann. Ich kann alles, was ich brauche, später über DNF hinzufügen.
Server sind GUI-freie Zonen
Wenn Ihr Linux-System als Server agiert, installieren Sie keine grafische Benutzeroberfläche. Mehrere Leute argumentieren diesen Punkt. Aus Sicherheitsgründen erfordert die Installation einer GUI – selbst einer kleinen – viele zusätzliche Softwarepakete. Jede davon könnte anfällig für Sicherheitsprobleme sein. Einige GUI-Pakete können Ports auf Ihrem System öffnen, was unerwünscht ist, da diese Aktion die Angriffsfläche vergrößert. Schließlich könnte (wird) die Leistung Ihres Systems darunter leiden, dass Sie eine grafische Benutzeroberfläche haben, da GUIs viele Systemressourcen verbrauchen.
Überlassen Sie die GUIs dem Desktop. Lernen Sie die Befehlszeile kennen.
Firewalls sind obligatorisch
Auf Red Hat-basierten Systemen (Red Hat Enterprise Linux, Fedora und CentOS) firewalld
ist Ihre Standard-Firewall. Benutze es. Diese Host-basierte Firewall schützt Ihr System vor unerwünschten Eindringlingen über alle Ports, mit Ausnahme derjenigen, die Sie ausdrücklich zugelassen haben. Sie können auch den ausgehenden Datenverkehr durch die Firewall selektiv einschränken.
Die sicherste Methode zur Begrenzung des ausgehenden Datenverkehrs besteht jedoch darin, einen internen Internet-Proxy-Server einzurichten und nur ausgehenden Datenverkehr zu diesem System zuzulassen. Sie können auch SSH-Datenverkehr zu Ihrem lokalen Subnetz zulassen, falls Sie eine Verbindung von einem System zu einem anderen herstellen müssen. Hostbasierte Firewalls können beim Testen der Konnektivität zwischen Systemen frustrierend sein, insbesondere bei neu konfigurierten Diensten, aber die wenigen Momente der Frustration sind es wert. Hängen Sie direkt über Ihren Monitor(en) in Ihrer Kabine ein Schild mit der Aufschrift „PRÜFEN SIE DIE FIREWALL“ und alles wird gut.
SELinux ist es wert, gelernt zu werden
Ah, das viel verabscheute und missverstandene SELinux. Typischerweise deaktivieren oder entfernen Systemadministratoren SELinux ganz, anstatt sich mit der extrem sicherheitssteigernden Angst auseinanderzusetzen, die es hervorruft. Mein Rat ist, diesen Dienst aktiviert, aktiviert und auf Erzwingen eingestellt zu lassen.
SELinux verwendet eine sogenannte obligatorische Zugriffskontrolle (oder MAC), während Firewalls eine regelbasierte Zugriffskontrolle verwenden und die standardmäßigen *nix-Berechtigungen als diskretionäre Zugriffskontrolle bekannt sind. Bevor Sie SELinux aufgeben und deaktivieren, lesen Sie bitte einige Dokumentationen zu seiner Konfiguration. Da die meisten Systeme nur einen kleinen Satz von Diensten ausführen, ist die Konfiguration kein so großer Aufwand, im Gegensatz zu der Gefahr, diesen Dienst nicht aktiviert zu haben.
SELinux muss auf eine bestimmte Weise eingerichtet werden, damit Dateien gekennzeichnet, in Sicherheitskontexten eingerichtet und einige Male neu gestartet werden können, um die Dinge zum Laufen zu bringen. Lesen Sie die Dokumentation. SELinux ist, entgegen der landläufigen Meinung, KEINE Firewall (oder ein Ersatz für eine solche), keine Anti-Malware-Lösung, kein Ersatz für Authentifizierungsmechanismen wie Multi-Faktor-Authentifizierung oder ein Sicherheits-Allheilmittel aller Art.
SELinux ist ein Schutz gegen die Rechteausweitung durch Dienste, die als Root-Benutzer ausgeführt werden. Es auszuschalten ist wahrscheinlich eine schlechte Idee. Die korrekte Verwendung von SELinux ist eine zusätzliche Schutzebene, die in diesen Tagen mit fortschrittlichen, hartnäckigen Bedrohungen und intelligenterer Malware erforderlich ist.
Remote-Root-Logins sind eine schlechte Idee
Standardmäßig kann sich der Root-Benutzer auf Red Hat-basierten Systemen remote über SSH anmelden. Ich kann verstehen, warum diese Funktion standardmäßig auf neu installierten Systemen eingestellt ist, aber sie sollte deaktiviert werden, sobald das System hochgefahren und betriebsbereit ist und Konten mit sudo-Zugriff erstellt wurden.
Durch das Deaktivieren der Remote-Root-Anmeldung wird verhindert, dass ein Angreifer Brute-Force-Methoden verwendet, um Ihr Root-Passwort zu erraten. Versuche werden protokolliert, haben aber keine Auswirkungen auf Ihre Sicherheit, da sich das Root-Konto nicht remote anmelden kann. Und wenn Sie ein Intrusion Prevention-Skript oder einen Dienst installiert haben, führen wiederholte Versuche automatisch zu einer neuen DROP-Regel oder der Erstellung einer /etc/hosts.deny
Eintrag.
Überprüfen Sie, ob Remote-Root-Logins aktiviert sind:
$ sudo grep -i root /etc/ssh/sshd_config
PermitRootLogin yes
# the setting of "PermitRootLogin without-password".
#ChrootDirectory none
Wenn Sie PermitRootLogin yes
sehen , dann kann sich der Root-Benutzer remote über SSH anmelden. Bearbeiten Sie die /etc/ssh/sshd_config
Datei und platzieren Sie ein #
um die Zeile auszukommentieren, oder ändern Sie yes
auf no
. Starten Sie sshd
neu Dienst, um die neue Konfiguration zu akzeptieren:
$ sudo systemctl restart sshd.service
Der Root-Benutzer kann sich nicht mehr über SSH anmelden.
Abschluss
Lesen Sie irgendeine Umfrage der letzten zehn Jahre und Sie werden sehen, dass Sicherheit die höchste Priorität oder Sorge für Systemadministratoren ist. Machen Sie es zu Ihrem Priorität, ein System mit mindestens diesen fünf Tipps zu sichern, bevor Ihre Systeme live in die Produktion gehen. Sicherheit ist nichts, was man aufschieben oder ausruhen kann. Diese fünf Tipps helfen Ihnen dabei, ein sichereres System online zu bringen und Ihr Netzwerk zu einem sichereren Arbeitsplatz zu machen.