Administrationsaufgaben für Sicherheit durchführen

Administrationsaufgaben für Sicherheit unter Linux – Ein Leitfaden

Einleitung

Die Sicherheit von Linux-Systemen ist ein zentraler Aspekt der Systemadministration. Obwohl Linux oft als sichereres Betriebssystem gilt, erfordert auch ein Linux-Server oder -Desktop regelmäßige Wartung und Sicherheitsmaßnahmen, um Angriffe zu verhindern und sensible Daten zu schützen. In diesem Blogbeitrag zeige ich dir einige der wichtigsten Administrationsaufgaben, um die Sicherheit deines Linux-Systems zu gewährleisten. Dazu gehören Benutzerverwaltung, Dateisystemrechte, Firewalls, Updates und mehr.


1. Regelmäßige System-Updates und Patching

Ein wesentliches Element der Systemsicherheit ist das regelmäßige Einspielen von Sicherheitsupdates und Patches. Schwachstellen in Software und Betriebssystem können von Angreifern ausgenutzt werden, wenn sie nicht rechtzeitig behoben werden.

Update-Management auf Debian-basierten Systemen (z.B. Ubuntu):

sudo apt update
sudo apt upgrade
  • apt update: Aktualisiert die Paketlisten, damit das System über die neuesten verfügbaren Updates informiert wird.
  • apt upgrade: Installiert alle verfügbaren Updates für installierte Pakete.

Update-Management auf Red Hat-basierten Systemen (z.B. CentOS, Fedora):

sudo dnf update

Zusätzlich zu regelmäßigen Updates solltest du langfristig überlegen, ob du automatisierte Updates einrichtest, um sicherzustellen, dass dein System auch ohne ständige manuelle Eingriffe aktuell bleibt.


2. Benutzer- und Gruppenverwaltung

Die richtige Verwaltung von Benutzern und Gruppen ist entscheidend, um unbefugten Zugriff auf das System zu verhindern. Du solltest sicherstellen, dass nur autorisierte Benutzer Zugang zu deinem System haben und jeder Benutzer über die minimal erforderlichen Rechte verfügt.

2.1 Erstellen und Verwalten von Benutzern

Einen neuen Benutzer hinzufügen:

sudo adduser username

Einem Benutzer Root-Rechte gewähren (Hinzufügen zur sudo-Gruppe):

sudo usermod -aG sudo username

2.2 Nicht benötigte Benutzerkonten deaktivieren

Wenn du Benutzerkonten auf deinem System hast, die nicht mehr verwendet werden, solltest du diese deaktivieren oder entfernen.

Einen Benutzer deaktivieren:

sudo usermod -L username

Benutzer komplett löschen:

sudo deluser username

3. SSH-Sicherheit

SSH (Secure Shell) ist ein zentraler Dienst für die Fernverwaltung von Linux-Systemen. Unsichere SSH-Konfigurationen können jedoch Angreifern die Tür zu deinem System öffnen. Hier sind einige Best Practices, um SSH sicherer zu gestalten:

3.1 Passwortlose Authentifizierung einrichten

Anstelle von Passwort-Authentifizierung solltest du auf die Nutzung von SSH-Schlüsseln setzen. Dies macht es Angreifern deutlich schwerer, durch Brute-Force-Angriffe Zugriff zu erlangen.

Öffentlichen SSH-Schlüssel auf den Server kopieren:

ssh-copy-id username@server-ip

3.2 SSH auf nicht-standardmäßigen Port ändern

Um automatisierte Angriffe zu reduzieren, kannst du den Standard-SSH-Port (22) ändern. Bearbeite die SSH-Konfigurationsdatei /etc/ssh/sshd_config und ändere den Port-Eintrag:

sudo nano /etc/ssh/sshd_config

Beispiel:

Port 2222

Nach der Änderung den SSH-Dienst neu starten:

sudo systemctl restart sshd

3.3 SSH-Zugang auf bestimmte IP-Adressen beschränken

Wenn nur bestimmte IP-Adressen auf dein System zugreifen sollen, kannst du die SSH-Zugriffe mit einer Firewall oder in der Datei /etc/hosts.allow und /etc/hosts.deny einschränken.

Beispiel für /etc/hosts.allow:

sshd: 192.168.1.0/24

4. Dateisystem- und Berechtigungen

Sichere Dateiberechtigungen sind ein grundlegender Aspekt der Linux-Sicherheit. Du solltest sicherstellen, dass Dateien und Verzeichnisse den richtigen Besitzern und Gruppen zugeordnet sind und nur die minimal erforderlichen Berechtigungen haben.

4.1 Überprüfen und Festlegen von Dateiberechtigungen

Verwende den Befehl ls -l, um die Berechtigungen von Dateien und Verzeichnissen anzuzeigen:

ls -l /path/to/file

Um Berechtigungen zu ändern, kannst du den Befehl chmod verwenden:

sudo chmod 700 /path/to/file
  • 700 bedeutet, dass nur der Besitzer die Datei lesen, schreiben und ausführen kann.

Den Besitz einer Datei kannst du mit chown ändern:

sudo chown username:groupname /path/to/file

4.2 SUID und SGID-Bits kontrollieren

Programme mit gesetztem SUID-Bit (setuid) oder SGID-Bit (setgid) führen bestimmte Aktionen mit den Rechten des Dateieigentümers bzw. der Gruppe aus. Angreifer könnten dies ausnutzen, um höhere Berechtigungen zu erlangen. Daher solltest du regelmäßig nach Dateien mit SUID- und SGID-Bits suchen und diese auf Notwendigkeit prüfen:

Suche nach SUID-Dateien:

find / -perm /4000

Suche nach SGID-Dateien:

find / -perm /2000

5. Firewall einrichten

Eine Firewall ist ein zentraler Bestandteil der Netzwerksicherheit. Mit einer Firewall kannst du eingehenden und ausgehenden Datenverkehr kontrollieren und potenziell gefährliche Verbindungen blockieren.

5.1 UFW – Die einfache Firewall

UFW (Uncomplicated Firewall) ist ein benutzerfreundliches Frontend für iptables, das sich besonders für einfache Firewall-Regeln eignet.

UFW installieren (falls nicht bereits vorhanden):

sudo apt install ufw

UFW aktivieren:

sudo ufw enable

SSH-Verbindungen zulassen:

sudo ufw allow ssh

Eine Firewallregel hinzufügen (z.B. HTTP-Verkehr auf Port 80 erlauben):

sudo ufw allow 80/tcp

Den Status der Firewall anzeigen:

sudo ufw status

5.2 Erweiterte Firewall-Konfiguration mit iptables

Für komplexere Konfigurationen kannst du iptables verwenden, um detaillierte Regeln für den Netzwerkverkehr zu erstellen.

Einfaches Beispiel: SSH-Zugriff nur von einer bestimmten IP-Adresse zulassen:

sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

6. Überwachung von Logdateien

Die Überwachung von Logdateien ist entscheidend, um sicherzustellen, dass du Sicherheitsvorfälle frühzeitig erkennst. Linux speichert wichtige Systemereignisse in /var/log/. Eine regelmäßige Durchsicht dieser Logs kann dabei helfen, unbefugte Aktivitäten oder Systemfehler zu entdecken.

6.1 Wichtige Logdateien

  • /var/log/auth.log (Debian/Ubuntu): Enthält Anmeldeinformationen, z.B. erfolgreiche und fehlgeschlagene SSH-Anmeldungen.
  • /var/log/secure (RHEL/CentOS): Protokolliert sicherheitsrelevante Ereignisse, einschließlich Anmeldungen.
  • /var/log/syslog: Protokolliert allgemeine Systemereignisse und Fehlermeldungen.

6.2 Logüberwachung mit journalctl

Systemd-basierte Systeme verwenden das Journal, um Logs zu speichern. Du kannst mit journalctl die System-Logs durchsuchen.

Aktuelle Logs anzeigen:

journalctl -xe

7. Intrusion Detection Systeme (IDS)

Ein Intrusion Detection System (IDS) kann helfen, unberechtigte Zugriffe oder verdächtige Aktivitäten auf dem System zu erkennen. Zwei bekannte IDS-Lösungen für Linux sind Fail2ban und AIDE.

7.1 Fail2ban

Fail2ban überwacht Logdateien und blockiert verdächtige IP-Adressen, die z.B. wiederholt fehlgeschlagene Login-Versuche verzeichnen.

Fail2ban installieren:

sudo apt install fail2ban

Konfigurationsdatei anpassen:

sudo nano /etc/fail2ban/jail.local

Fail2ban für SSH absichern:

[sshd]
enabled = true
maxretry = 3

7.2 AIDE

AIDE (Advanced Intrusion Detection Environment) erstellt eine Datenbank über den Zustand deines Dateisystems und kann später Änderungen erkennen.

AIDE installieren:

sudo apt install aide

Initialisiere die AIDE-Datenbank:

sudo aideinit

Um spätere Änderungen zu erkennen:

sudo aide --check

Fazit

Die Sicherheit eines Linux-Systems erfordert eine regelmäßige und proaktive Wartung durch den Administrator.

Schreibe einen Kommentar

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