Sicherheitsaufgaben

Die Sicherheit eines Linux-Systems ist eine der wichtigsten Aufgaben für Systemadministratoren. In einer Welt, in der Cyberangriffe immer häufiger werden, ist es von entscheidender Bedeutung, die bestmöglichen Sicherheitsmaßnahmen zu ergreifen, um Systeme vor Angriffen zu schützen. Dieser Blog-Beitrag bietet eine Übersicht über die wesentlichen Sicherheitsaufgaben unter Linux, die dabei helfen, Systeme abzusichern und gegen Bedrohungen zu verteidigen.

1. Regelmäßige Updates und Patches

Eine der einfachsten, aber effektivsten Maßnahmen zur Sicherung eines Linux-Systems ist die regelmäßige Aktualisierung der Software. Sicherheitslücken in Betriebssystemen und Anwendungen werden kontinuierlich entdeckt, und Sicherheits-Patches werden von den Entwicklern bereitgestellt, um diese Schwachstellen zu schließen.

  • Auf Debian/Ubuntu-basierten Systemen verwenden Sie:
sudo apt update && sudo apt upgrade

Auf Red Hat/CentOS-basierten Systemen:

sudo yum update

Es ist eine gute Praxis, automatische Updates für kritische Sicherheitspatches einzurichten. Bei Debian-basierten Systemen können Sie dies durch das Paket unattended-upgrades konfigurieren:

sudo apt install unattended-upgrades

2. Benutzer- und Rechteverwaltung

Die Verwaltung von Benutzern und deren Rechten ist eine grundlegende Sicherheitsaufgabe. Es ist wichtig, den Zugang auf ein Minimum zu beschränken und sicherzustellen, dass jeder Benutzer nur die Rechte hat, die er für seine Arbeit benötigt.

a) Root-Zugriff minimieren

Der Root-Benutzer hat volle Kontrolle über das System und sollte nur für administrative Aufgaben verwendet werden. Es wird empfohlen, den Root-Zugriff über SSH zu deaktivieren, wie bereits in früheren Beiträgen erwähnt:

PermitRootLogin no

Stattdessen sollten Benutzer sudo verwenden, um vorübergehend Root-Rechte zu erhalten:

sudo usermod -aG sudo username
b) Benutzerrechte einschränken

Verwenden Sie die Berechtigungsstruktur von Linux (lesen, schreiben, ausführen) und Tools wie chown und chmod, um den Zugriff auf Dateien und Verzeichnisse zu beschränken.

chmod 700 /sensitive_directory
chown root:root /sensitive_directory

3. Passwortsicherheit

Starke Passwörter sind unerlässlich, um Brute-Force-Angriffe zu verhindern. Die Passwortrichtlinien sollten strenge Anforderungen stellen, einschließlich Mindestlänge, Verwendung von Sonderzeichen, Zahlen und Groß-/Kleinbuchstaben.

a) Passwortregeln setzen

Um die Komplexität von Passwörtern zu erzwingen, können Sie das PAM (Pluggable Authentication Modules)-System nutzen. Bearbeiten Sie die Datei /etc/pam.d/common-password und fügen Sie die folgenden Regeln hinzu:

password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
b) Passwort-Ablaufzeiten

Es ist eine gute Praxis, die Passwort-Ablaufzeiten zu konfigurieren, um Benutzer regelmäßig zur Aktualisierung ihrer Passwörter zu zwingen. Dies kann mit dem chage-Befehl geschehen:

sudo chage -M 90 username

Dieser Befehl setzt das Passwort-Intervall für den Benutzer username auf 90 Tage.

4. Firewalls konfigurieren

Eine Firewall ist ein entscheidendes Sicherheitswerkzeug, um unerwünschte Netzwerkzugriffe zu blockieren. Unter Linux gibt es mehrere Firewall-Lösungen, darunter iptables und ufw (Uncomplicated Firewall).

a) UFW (Uncomplicated Firewall)

UFW ist eine benutzerfreundliche Firewall, die es einfach macht, Regeln zu erstellen und zu verwalten. Sie können die Firewall aktivieren und Standardregeln festlegen:

sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing

Um bestimmte Dienste wie SSH zu erlauben:

sudo ufw allow 22/tcp
b) Iptables

Iptables bietet eine detailliertere Kontrolle über den Netzwerkverkehr. Ein Beispiel für eine einfache Regel zum Zulassen von SSH-Verbindungen:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

5. Überwachung und Logging

Regelmäßige Überwachung und Protokollierung der Systemaktivitäten sind wesentliche Bestandteile der Sicherheitsverwaltung. Log-Dateien bieten wichtige Hinweise auf verdächtige Aktivitäten und potenzielle Sicherheitsvorfälle.

a) Log-Dateien prüfen

Wichtige Log-Dateien befinden sich im Verzeichnis /var/log/. Zu den wichtigsten Protokollen gehören:

  • /var/log/auth.log (Debian/Ubuntu): Authentifizierungsversuche
  • /var/log/secure (CentOS/RHEL): Sicherheitsbezogene Ereignisse
  • /var/log/syslog: Systemprotokolle

Verwenden Sie grep, um nach verdächtigen Ereignissen zu suchen:

sudo grep "Failed password" /var/log/auth.log
b) Überwachungsdienste verwenden

Tools wie Auditd und Sysstat bieten erweiterte Überwachungsfunktionen. Auditd kann verwendet werden, um spezifische Systemereignisse zu überwachen, während Sysstat Systemressourcen und Leistungsmetriken überwacht.

Installieren von auditd:

sudo apt install auditd

Starten Sie den Audit-Dienst:

sudo systemctl start auditd

6. Sicherheitssoftware: Anti-Malware und Rootkit-Erkennung

Während Linux im Allgemeinen als sicher gilt, ist es dennoch anfällig für Malware und Rootkits. Anti-Malware-Tools und Rootkit-Erkennungssoftware sollten regelmäßig verwendet werden, um verdächtige Aktivitäten zu überprüfen.

a) ClamAV

ClamAV ist ein Open-Source-Virenscanner, der auf Linux-Systemen verwendet werden kann, um Malware zu erkennen:

sudo apt install clamav
sudo freshclam  # Signaturen aktualisieren
sudo clamscan -r /home
b) Rootkit-Jäger

Rootkits sind besonders gefährlich, da sie versuchen, sich im System zu verstecken. Verwenden Sie Tools wie rkhunter oder chkrootkit, um Rootkits zu erkennen:

Installieren von rkhunter:

sudo apt install rkhunter
sudo rkhunter --check

7. SSH absichern

SSH ist ein häufig verwendeter Dienst, um Remote-Zugriff auf Server zu ermöglichen. Es ist wichtig, ihn sicher zu konfigurieren, um unbefugten Zugriff zu verhindern.

a) SSH-Schlüssel verwenden

Ersetzen Sie die Passwortauthentifizierung durch SSH-Schlüssel, um den Zugriff auf den Server sicherer zu gestalten. SSH-Schlüssel bieten eine deutlich höhere Sicherheit als Passwörter.

b) Brute-Force-Angriffe verhindern

Installieren Sie Tools wie Fail2ban, um wiederholte fehlgeschlagene Anmeldeversuche zu erkennen und die angreifende IP-Adresse zu blockieren:

sudo apt install fail2ban

Konfigurieren Sie Fail2ban für SSH:

sudo nano /etc/fail2ban/jail.local

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

8. Sicherheitskopien (Backups) regelmäßig durchführen

Das Erstellen von Backups ist eine grundlegende Sicherheitsmaßnahme, um Datenverluste durch Angriffe, Fehlkonfigurationen oder Hardwarefehler zu verhindern. Regelmäßige Backups stellen sicher, dass Sie im Falle eines Angriffs auf Ihr System Daten wiederherstellen können.

Verwenden Sie Tools wie rsync oder tar, um automatisierte Backups zu erstellen.

Beispiel für ein Backup mit rsync:

rsync -avz /home/user/ /backup/location/

9. Netzwerkdienste absichern

Es ist wichtig, nur die notwendigen Netzwerkdienste laufen zu lassen und nicht benötigte Dienste zu deaktivieren. Überprüfen Sie, welche Dienste auf Ihrem System aktiv sind:

sudo netstat -tuln

Deaktivieren Sie unnötige Dienste, um die Angriffsfläche zu minimieren.

10. Regelmäßige Sicherheitsüberprüfungen

Sicherheitsüberprüfungen (Security Audits) helfen, potenzielle Schwachstellen im System zu identifizieren. Tools wie Lynis können dabei helfen, eine Sicherheitsüberprüfung durchzuführen:

Installieren von Lynis:

sudo apt install lynis
sudo lynis audit system

Zusammenfassung

Die Sicherheit eines Linux-Systems erfordert regelmäßige und sorgfältige Maßnahmen. Von der Verwaltung von Benutzern und Passwörtern über das Einrichten von Firewalls bis hin zur Überwachung und Verwendung von Anti-Malware-Tools gibt es eine Vielzahl von Aufgaben, die ein Administrator regelmäßig durchführen muss. Durch die Implementierung dieser Sicherheitspraktiken können Sie das Risiko von Angriffen auf Ihr Linux-System erheblich verringern und sicherstellen, dass Ihr System robust und geschützt bleibt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert