Webserver Hardening: Nginx & Apache sicher konfigurieren

Die Absicherung von Webservern ist essenziell, um Angriffe wie SQL-Injection, Cross-Site Scripting (XSS) oder Denial-of-Service zu verhindern. Sowohl Nginx als auch Apache sind weit verbreitete Webserver, die durch gezielte Hardening-Maßnahmen sicher konfiguriert werden können. In diesem Leitfaden zeigen wir Schritt für Schritt, wie Webserver gehärtet, Sicherheitslücken minimiert und die Infrastruktur für Web-Anwendungen robust gemacht wird.

Systemvorbereitung

Bevor Sicherheitsmaßnahmen umgesetzt werden, sollte das System auf dem neuesten Stand sein und notwendige Pakete installiert werden.

System aktualisieren

sudo apt update
sudo apt upgrade -y

Für CentOS/RHEL:

sudo yum update -y

Basis-Pakete installieren

sudo apt install ufw fail2ban wget curl git unzip -y

Benutzer und Rechte

Webserver sollten mit minimalen Rechten betrieben werden, um potenzielle Angriffsflächen zu reduzieren.

Dedizierte Benutzer anlegen

sudo useradd -r -s /usr/sbin/nologin webuser
sudo chown -R webuser:webuser /var/www/html

Dateisystemrechte

  • Nur notwendige Schreibrechte für Webverzeichnisse
  • Logs in sicheren Verzeichnissen ablegen
  • Config-Dateien nur für Administratoren zugänglich
sudo chmod -R 755 /var/www/html
sudo chmod 640 /etc/nginx/nginx.conf
sudo chmod 640 /etc/apache2/apache2.conf

Firewall konfigurieren

Eine Firewall schützt den Server vor unerwünschtem Zugriff auf nicht benötigte Ports.

UFW für Ubuntu/Debian

sudo ufw allow 'Nginx Full'    # oder 'Apache Full'
sudo ufw enable
sudo ufw status

FirewallD für CentOS/RHEL

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

SSL/TLS Absicherung

HTTPS schützt die Datenübertragung zwischen Client und Server.

Let’s Encrypt Zertifikate

sudo apt install certbot python3-certbot-nginx -y   # für Nginx
sudo apt install certbot python3-certbot-apache -y  # für Apache
sudo certbot --nginx -d meinewebsite.de -d www.meinewebsite.de
sudo certbot renew --dry-run

SSL-Konfiguration optimieren

  • Nur TLSv1.2 und TLSv1.3 erlauben
  • Starke Cipher Suites aktivieren
  • HSTS Header setzen
  • OCSP Stapling aktivieren

Apache Hardening

Apache bietet zahlreiche Module und Optionen, die für ein sicheres Setup angepasst werden sollten.

Unnötige Module deaktivieren

sudo a2dismod status
sudo a2dismod autoindex
sudo systemctl restart apache2

Directory- und Zugriffskontrolle

sudo nano /etc/apache2/apache2.conf
<Directory /var/www/>
    Options -Indexes
    AllowOverride None
    Require all granted
</Directory>

Security Header setzen

Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Content-Security-Policy "default-src 'self';"

Nginx Hardening

Nginx kann durch Konfiguration der Serverblöcke, Header und Limits gehärtet werden.

Unnötige Module deaktivieren

Nur die benötigten Module laden, Standardmodule wie autoindex vermeiden.

Server- und Location-Block konfigurieren

server {
    listen 80;
    server_name meinewebsite.de www.meinewebsite.de;
root /var/www/html;
index index.html index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ /.ht {
deny all;
}

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self';" always;

}

Rate Limiting und Schutz vor Brute-Force

Rate Limiting schützt vor Überlastung und Angriffen auf Login-Seiten.

Nginx Beispiel

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    server {
        location /login {
            limit_req zone=one burst=20 nodelay;
        }
    }
}

Fail2ban einrichten

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Logs und Monitoring

Regelmäßige Überprüfung von Logs hilft, Sicherheitsvorfälle und Anomalien frühzeitig zu erkennen.

Apache Logs

tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log

Nginx Logs

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

Netzwerk und Subnetze

Eine korrekte Netzwerkkonfiguration ist entscheidend, um unbefugten Zugriff zu vermeiden.

Subnetzberechnung

Beispiel: Server-IP 192.168.60.15/24

<math>
Subnetzadresse = 192.168.60.15 & 255.255.255.0 = 192.168.60.0
Broadcastadresse = 192.168.60.0 | ~255.255.255.0 = 192.168.60.255
</math>

Netzwerkinterface konfigurieren

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.60.15/24
      gateway4: 192.168.60.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Best Practices

  • Regelmäßige Updates von Apache, Nginx und Linux-Paketen
  • Minimalrechte für Benutzer und Verzeichnisse vergeben
  • Automatische SSL-Erneuerung testen
  • Monitoring und Log-Analyse implementieren
  • Backups der Konfigurationen und Webverzeichnisse regelmäßig durchführen
  • Firewalls und Fail2ban einsetzen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles