Da heute so viele unserer persönlichen und beruflichen Daten online verfügbar sind, ist es für jeden – vom Profi bis zum allgemeinen Internetnutzer – wichtig, sich mit den Grundlagen der Sicherheit und des Datenschutzes vertraut zu machen. Als Student konnte ich durch die CyberPatriot-Initiative meiner Schule Erfahrungen in diesem Bereich sammeln, bei der ich die Gelegenheit hatte, mit Branchenexperten in Kontakt zu treten, um mehr über Cyber-Verletzungen und die grundlegenden Schritte zur Einrichtung der Sicherheit eines Systems zu erfahren.
Dieser Artikel beschreibt sechs einfache Schritte, um die Sicherheit Ihrer Linux-Umgebung für den persönlichen Gebrauch zu verbessern, basierend auf dem, was ich bisher als Anfänger gelernt habe. Während meiner gesamten Reise habe ich Open-Source-Tools verwendet, um meinen Lernprozess zu beschleunigen und mich mit übergeordneten Konzepten zur Sicherung meines Linux-Servers vertraut zu machen.
Ich habe diese Schritte mit Ubuntu 18.04 getestet, der Version, mit der ich am besten vertraut bin, aber diese Schritte funktionieren auch für andere Linux-Distributionen.
1. Updates ausführen
Entwickler suchen ständig nach Wegen, Server stabiler, schneller und sicherer zu machen, indem sie bekannte Schwachstellen patchen. Das regelmäßige Ausführen von Updates ist eine gute Angewohnheit, um die Sicherheit zu maximieren. Führen Sie sie aus mit:
sudo apt-get update && apt-get upgrade
2. Firewall-Schutz aktivieren
Das Aktivieren einer Firewall erleichtert die Kontrolle des ein- und ausgehenden Datenverkehrs auf Ihrem Server. Es gibt viele Firewall-Anwendungen, die Sie unter Linux verwenden können, einschließlich Firewall-cmd und Uncomplicated Firewall (UFW). Ich verwende UFW, daher beziehen sich meine Beispiele darauf, aber diese Prinzipien gelten für jede beliebige Schnittstelle.
UFW installieren:
sudo apt-get install ufw
Wenn Sie Ihren Server noch mehr absichern möchten, können Sie ein- und ausgehende Verbindungen verweigern. Seien Sie gewarnt: Dies schneidet Ihren Server von der Welt ab. Sobald Sie also den gesamten Datenverkehr blockiert haben, müssen Sie angeben, welche ausgehenden Verbindungen von Ihrem System aus erlaubt sind:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Sie können auch Regeln für das Zulassen eingehender Verbindungen schreiben, die Sie für den persönlichen Gebrauch benötigen:
ufw allow <service>
Um beispielsweise SSH-Verbindungen zuzulassen:
ufw allow ssh
Aktivieren Sie abschließend Ihre Firewall mit:
sudo ufw enable
3. Passwortschutz stärken
Die Implementierung einer starken Passwortrichtlinie ist ein wichtiger Aspekt, um einen Server vor Cyberangriffen und Datenschutzverletzungen zu schützen. Einige bewährte Methoden für Kennwortrichtlinien umfassen die Durchsetzung einer Mindestlänge und die Angabe des Kennwortalters. Ich verwende das Paket libpam-cracklib, um diese Aufgaben zu erledigen.
Installieren Sie das Paket libpam-cracklib:
sudo apt-get install libpam-cracklib
So erzwingen Sie die Passwortlänge:
- Öffne das
/etc/pam.d/common-password
Datei. - Ändern Sie die Mindestzeichenlänge aller Passwörter, indem Sie die
minlen=12
Zeile an beliebig viele Zeichen an.
So verhindern Sie die Wiederverwendung von Passwörtern:
- In derselben Datei (
/etc/pam.d/common-password
), füge die Zeile hinzuremember=x
. - Wenn Sie beispielsweise verhindern möchten, dass ein Benutzer eines seiner letzten fünf Passwörter wiederverwendet, verwenden Sie Folgendes:
remember=5
.
So erzwingen Sie das Passwortalter:
- Suchen Sie die folgenden Zeilen in der
/etc/login.defs
Datei und ersetzen Sie sie durch Ihre bevorzugte Zeit (Tage). Beispielsweise:PASS_MIN_AGE: 3
PASS_MAX_AGE: 90
PASS_WARN_AGE: 14
So erzwingen Sie Zeichenspezifikationen:
- Die vier Parameter zum Erzwingen von Zeichenspezifikationen in Passwörtern sind
lcredit
(Kleinbuchstaben),ucredit
(Großbuchstaben),dcredit
(Ziffer) undocredit
(andere Zeichen). - In derselben Datei (
/etc/pam.d/common-password
), suchen Sie die Zeile mitpam_cracklib.so
.- Fügen Sie am Ende dieser Zeile Folgendes hinzu:
lcredit=-a ucredit=-b dcredit=-c ocredit=-d
- In der folgenden Zeile müssen beispielsweise Passwörter enthalten sein eins jedes Parameters. Sie können die Zahlen basierend auf Ihrer bevorzugten Passwortsicherheit ändern:
lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
- Fügen Sie am Ende dieser Zeile Folgendes hinzu:
4. Deaktivieren Sie nicht wesentliche Dienste, die anfällig für Ausbeutung sind
Es empfiehlt sich, unnötige Dienste zu deaktivieren. Dadurch können weniger Ports für die Ausnutzung geöffnet werden.
Installieren Sie das systemd-Paket:
sudo apt-get install systemd
Sehen Sie, welche Dienste ausgeführt werden:
systemctl list-units
Erkennen Sie, welche Dienste potenzielle Schwachstellen in Ihrem System verursachen könnten. Für jeden Dienst:
- Stoppen Sie den Dienst, wenn er gerade ausgeführt wird:
systemctl stop <service>
- Deaktivieren Sie das Starten des Dienstes beim Booten:
systemctl disable <service>
- Nachdem Sie diese Befehle ausgeführt haben, überprüfen Sie den Status des Dienstes:
systemctl status <service>
5. Auf Abhör-Ports prüfen
Offene Ports können Sicherheitsrisiken darstellen, daher ist es wichtig, nach Ports zu suchen, die auf Ihrem Server lauschen. Ich verwende den netstat-Befehl, um alle Netzwerkverbindungen anzuzeigen:
netstat -tulpn
Sehen Sie sich die Adressspalten an, um die Portnummer zu bestimmen. Wenn Sie offene Ports gefunden haben, überprüfen Sie sie, um sicherzustellen, dass sie alle erforderlich sind. Wenn dies nicht der Fall ist, passen Sie an, welche Dienste Sie ausführen, oder passen Sie Ihre Firewall-Einstellungen an (oder lassen Sie sie von fail2ban für Sie anpassen).
6. Auf Malware scannen
Antiviren-Scan-Software kann nützlich sein, um Viren von Ihrem System fernzuhalten. Ihre Verwendung ist eine einfache Möglichkeit, Ihren Server frei von Malware zu halten. Mein bevorzugtes Werkzeug ist die Open-Source-Software ClamAV.
ClamAV installieren:
sudo apt-get install clamav
Virensignaturen aktualisieren:
sudo freshclam
Scannen Sie alle Dateien und drucken Sie infizierte Dateien aus. Wenn eine gefunden wird, klingeln Sie:
sudo clamscan -r --bell -i /
Sie können und sollten Scans automatisieren, damit Sie sich nicht daran erinnern oder Zeit damit verbringen müssen, sie manuell durchzuführen. Für eine einfache Automatisierung wie diese können Sie systemd-Timer oder Ihren bevorzugten Cron verwenden.
Halten Sie Ihren Server sicher
Wir können die Verantwortung für die Sicherung von Servern nicht einer einzelnen Person oder Organisation überlassen. Da die Bedrohungslandschaft weiterhin schnell wächst, liegt es an jedem von uns, sich der Bedeutung der Serversicherheit bewusst zu sein und einige einfache, effektive Best Practices für die Sicherheit anzuwenden.
Dies sind nur einige der vielen Schritte, die Sie unternehmen können, um Ihren Linux-Server zu schützen. Prävention ist natürlich nur ein Teil der Lösung. Diese Richtlinien sollten mit einer strengen Überwachung auf Denial-of-Service-Angriffe, einer Systemanalyse mit Lynis und der Erstellung regelmäßiger Backups kombiniert werden.
Welche Open-Source-Tools verwenden Sie, um Ihren Server zu schützen? Erzählen Sie uns davon in den Kommentaren.