Ein gehärteter Linux-Server ist besser gegen Angriffe geschützt und bietet eine sicherere Umgebung für Anwendungen und Daten. Hier ist ein umfassendes Tutorial zur Härtung eines Linux-Servers unter Debian/Ubuntu:
1. System aktualisieren
Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist.
sudo apt update && sudo apt upgrade -y
2. Benutzer und Berechtigungen
a. Root-Anmeldung deaktivieren
Bearbeiten Sie die Datei /etc/ssh/sshd_config
und setzen Sie PermitRootLogin
auf no
.
sudo nano /etc/ssh/sshd_config
Fügen Sie die folgende Zeile hinzu oder ändern Sie sie:
PermitRootLogin no
Starten Sie den SSH-Dienst neu:
sudo systemctl restart ssh
b. Nicht benötigte Benutzer entfernen
Listen Sie alle Benutzer auf und entfernen Sie diejenigen, die nicht benötigt werden.
cut -d: -f1 /etc/passwd
sudo deluser BENUTZERNAME
3. SSH sichern
a. SSH-Port ändern
Ändern Sie den Standard-SSH-Port (22) auf einen anderen Port, z.B. 2222.
Bearbeiten Sie /etc/ssh/sshd_config
und ändern Sie den Port
.
sudo nano /etc/ssh/sshd_config
Fügen Sie die folgende Zeile hinzu oder ändern Sie sie:
Port 2222
Starten Sie den SSH-Dienst neu:
sudo systemctl restart ssh
b. Passwort-Authentifizierung deaktivieren
Erlauben Sie nur die Authentifizierung mit Schlüsselpaaren.
Bearbeiten Sie /etc/ssh/sshd_config
und setzen Sie PasswordAuthentication
auf no
.
sudo nano /etc/ssh/sshd_config
Fügen Sie die folgende Zeile hinzu oder ändern Sie sie:
PasswordAuthentication no
Starten Sie den SSH-Dienst neu:
sudo systemctl restart ssh
4. Firewall konfigurieren
a. UFW installieren und konfigurieren
Installieren Sie ufw
(Uncomplicated Firewall).
sudo apt install ufw -y
Erlauben Sie nur die notwendigen Verbindungen, z.B. SSH auf Port 2222, HTTP und HTTPS.
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Aktivieren Sie die Firewall:
sudo ufw enable
Überprüfen Sie den Status:
sudo ufw status
5. Fail2ban installieren
Installieren Sie fail2ban
, um Brute-Force-Angriffe zu verhindern.
sudo apt install fail2ban -y
Konfigurieren Sie fail2ban
durch Bearbeiten der Datei /etc/fail2ban/jail.local
.
sudo nano /etc/fail2ban/jail.local
Fügen Sie die Konfiguration für SSH hinzu:
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 5
Starten Sie den Dienst neu:
sudo systemctl restart fail2ban
6. Unnötige Dienste deaktivieren
Deaktivieren Sie alle unnötigen Dienste, um die Angriffsfläche zu reduzieren.
Listen Sie alle aktiven Dienste auf:
sudo systemctl list-unit-files --type=service --state=enabled
Deaktivieren Sie nicht benötigte Dienste:
sudo systemctl disable SERVICE_NAME
sudo systemctl stop SERVICE_NAME
7. Logwatch installieren
Installieren Sie logwatch
, um tägliche Log-Berichte zu erhalten.
sudo apt install logwatch -y
Konfigurieren Sie logwatch
durch Bearbeiten der Datei /etc/cron.daily/00logwatch
.
sudo nano /etc/cron.daily/00logwatch
Ändern Sie die Konfiguration entsprechend Ihren Bedürfnissen, z.B. die E-Mail-Adresse, an die Berichte gesendet werden sollen.
8. Automatische Updates konfigurieren
Installieren Sie das Paket unattended-upgrades
:
sudo apt install unattended-upgrades -y
Konfigurieren Sie automatische Updates:
sudo dpkg-reconfigure unattended-upgrades
Bearbeiten Sie die Datei /etc/apt/apt.conf.d/50unattended-upgrades
, um sicherzustellen, dass Sicherheitsupdates automatisch installiert werden.
9. Weitere Sicherheitsmaßnahmen
- AppArmor: Stellen Sie sicher, dass AppArmor aktiviert ist, um Anwendungen in eingeschränkten Umgebungen laufen zu lassen.
- Antivirus: Installieren Sie einen Antivirus wie
clamav
und führen Sie regelmäßige Scans durch. - Überwachung: Richten Sie ein Überwachungssystem wie
Nagios
oderZabbix
ein, um den Serverstatus und Sicherheitsvorfälle zu überwachen.
Durch diese Maßnahmen können Sie die Sicherheit Ihres Debian/Ubuntu-Servers erheblich erhöhen. Stellen Sie sicher, dass Sie regelmäßig Sicherheitsupdates installieren und Ihre Konfigurationen überprüfen, um neue Bedrohungen abzuwehren.