Server Hardening (Debian): Unterschied zwischen den Versionen
Aus MattWiki
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) |
||
Zeile 58: | Zeile 58: | ||
Protocol 2 # Idealerweise nur Protocol 2 benutzen, Protocol 1 hat Sicherheitslücken | Protocol 2 # Idealerweise nur Protocol 2 benutzen, Protocol 1 hat Sicherheitslücken | ||
PermitRootLogin no # Root-Login deaktivieren | PermitRootLogin no # Root-Login deaktivieren | ||
#Alternativ: | |||
PermitRootLogin without-password # Root-Login nur ohne Passwort | |||
IgnoreRhosts yes # Ignore old RSH-Access | IgnoreRhosts yes # Ignore old RSH-Access | ||
RhostsRSAAuthentication no | RhostsRSAAuthentication no |
Version vom 5. November 2016, 20:33 Uhr
Apache Webserver
Serverversion und Betriebssystem ausblenden
# nano /etc/apache2/conf-available/security.conf
Änderungen:
# ServerTokens Minimal # Zeile dekommentieren ServerTokens OS # Zeile auskommentieren # ServerSignature Off # Zeile dekommentieren ServerSignature On # Zeile auskommentieren
Verzeichnisauflistungen deaktivieren
# nano /etc/apache2/apache2.conf
bearbeiten
Folgenden Abschnitt suchen
<Directory /var/www/> # Options Indexes FollowSymLinks # Zeile auskommentieren Options FollowSymLinks # Zeile einfügen AllowOverride None Require all granted </Directory>
Alle Anfragen auf HTTPS umleiten
Hierfür am besten eine komplette Subdomain benutzen. Einrichtung per VirtualHost. Darin diese Zeile einfügen:
Redirect permanent / https://host1.domain.tld/
Ergebnis:
<VirtualHost *:80> DocumentRoot /var/www/host1 ServerName host1.domain.tld Redirect permanent / https://host1.domain.tld/ </VirtualHost>
SSL Konfiguration härten
Die hierfür notwendigen Einstellungen lassen sich nicht pauschal benennen.
Daher am besten den Mozilla SSL Configuration Generator verwenden.
Inhalte in die ssl.conf-Datei einbauen.
Serverkonfiguration neu laden
Nach den Bearbeitungen Konfiguration neu laden
# /etc/init.d/apache2 reload # Nur Konfiguration neu laden # oder # service apache2 restart # Weberserver neu starten
SSH Server
# nano /etc/ssh/sshd_config
Änderungen:
Port 22 # Auf einen anderen Port stellen ListenAddress :: # ??? ListenAddress 192.168.1.100 # Login z. B. nur über lokale Netzwerk 192.168.1.xxx Protocol 2 # Idealerweise nur Protocol 2 benutzen, Protocol 1 hat Sicherheitslücken PermitRootLogin no # Root-Login deaktivieren #Alternativ: PermitRootLogin without-password # Root-Login nur ohne Passwort IgnoreRhosts yes # Ignore old RSH-Access RhostsRSAAuthentication no HostbasedAuthentication no # Keine Host-Basierte Authentifizierung PermitEmptyPasswords no # User mit leeren Passwörtern erlauben PasswordAuthentication no # Stattdessen Zertifikatsauthentifizierung ohne Password X11Forwarding no # Wenn Hochsicherheitsserver ohne GUI-Notwendig UserPAM no AllowUsers xxx yyy # Nur User xxx und yyy zulassen DenyUsers zzz # User zzz ablehnen
Danach noch Config-Datei neu laden oder SSH-Server neu starten
# service ssh reload # oder # service ssh restart
Optional installieren:
- Fail2Ban (Debian) oder
- DenyHosts oder
- Knockd (Debian)
Netzwerk
IPv6 deaktivieren
Im Kernel deaktivieren
# echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d/disableipv6.conf
Zusätzlich
# nano /etc/hosts # Alle IPv6-relevanten Zeilen entfernen.
Neustarten