Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
de:server:security [15.09.2019 12:00] – [fail2ban] admin | de:server:security [03.06.2021 12:21] – angelegt admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Server-Sicherheit ====== | ====== Server-Sicherheit ====== | ||
- | Dieses Kapitel erklärt einige für die Sicherheit des Servers empfehlenswerte Konfigurations-Einstellungen. | + | Ein Webserver dient dazu, Inhalte einem breiten Publikum verfügbar zu machen. Dies bedeutet zugleich, dass Dritte mit dem Server interagieren. In aller Regel mehrfach täglich (meist automatisierte) Angriffe auf Webserver. Das Ziel ist es dabei, durch die Ausnutzung von Sicherheitslücken an geschützte Daten zu kommen oder den Server für kriminelle Zwecke zu missbrauchen. |
+ | Neben Angriffen von Außen werden Sie beim langfristigen Betrieb auch mit Problemen konfrontiert, | ||
- | ===== fail2ban ===== | + | Es hat sich bewährt, einen Befragungsserver (welcher oftmals [[: |
- | Für den Zugriff auf laufende Interviews wird jedem Interview ein " | + | Um einen sicheren Server-Betrieb zu gewährleisten, sind folgende Punkte zu beachten: |
- | Damit man gültige Tokens nicht einfach durch Ausprobieren | + | * Sichere Umgebung |
- | + | * Wahl eines zuverlässigen Hosters bzw. Rechenzentrums | |
- | Auf Linux-Systemen kann man IP-Adressen, die in dieser Liste häufiger auftauchen, mittels [[https:// | + | * Verwendung sicherer und unterschiedlicher Passwörter für SSH (hier zusätzlich Keyfile), MySQL, Administrator-Konto in SoSci Survey, Serverüberwachung u.s.w. -- der Einsatz eines Passwort-Managers |
- | + | * Allgemeine Sicherheitsfunktionen | |
- | | + | |
- | + | * Freigabe von Ports 80 und 443 (SMTP-Port 25 nur, wenn der Server auch eingehende Mails verarbeiten muss) | |
- | Zunächst muss eine Datei ''/ | + | * Restriktive IP-Beschränkung des SSH-Ports 22 |
- | + | * MySQL-Port 3306 nur durch einen SSH-Tunnel | |
- | < | + | * Malware-Scanner (z.B. '' |
- | [Definition] | + | * Automatisierte Sicherheitsupdates (z.B. '' |
- | failregex = < | + | * Zusätzlich wöchentliche oder monatliche Systemupdates |
- | ignoreregex = | + | * Absicherung von Teilnahmeschlüsseln (z.B. Seriennummern) gegen Brute-Force-Angriffe ([[de: |
- | </ | + | |
- | + | * SSL-Verschlüsslung, sodass jeglicher Zugriff auf Fragebögen und Projektverwaltung nur über HTTPS möglich ist | |
- | Anschließend muss die Datei '' | + | * Data-at-Rest-Verschlüsselung für die Datenbank (MariaDB |
- | + | * Alternativ Verwendung einer verschlüsselten Partition auf dem Server, wenn auch hochgeladene Dateien abgesichert werden müssen | |
- | < | + | * Datensicherung |
- | [DEFAULT] | + | * Tägliches Datenbank-Dump ('' |
- | ignoreip = 127.0.0.1/8 | + | * Inkrementelles Dateisystem-Backup |
- | maxretry = 3 | + | * Kryptografische Schlüssel sicher verwahren |
- | banaction = iptables-multiport | + | * Server-Stabilität im Langzeit-Betrieb |
- | + | | |
- | [serial-fail] | + | * Automatisierter Server-Neustart (z.B. einmal pro Woche oder pro Monat) |
- | enabled | + | |
- | port = http,https | + | |
- | filter | + | |
- | action | + | |
- | mail-whois[name=Serial Fail, dest=IHRE@E-MAIL-ADRESSE] | + | |
- | logpath | + | |
- | maxretry = 50 | + | |
- | bantime | + | |
- | # SoSci Survey will lock IPs by itself, this is just the uppermost limit | + | |
- | + | ||
- | [sshd-ddos] | + | |
- | enabled = true | + | |
- | + | ||
- | [php-url-fopen] | + | |
- | enabled = true | + | |
- | </file> | + | |
- | + | ||
- | Dieser Eintrag sperrt eine IP-Adresse für 2 Stunden (`bantime`), wenn von dieser binnen 10 Minuten | + | |
- | + | ||
- | Laden Sie die Konfiguration | + | |
- | + | ||
- | sudo fail2ban-client reload | + | |
- | | + | |
- | + | ||
- | Die Ausgabe sieht z.B. wie folgt aus: | + | |
- | + | ||
- | < | + | |
- | Status | + | |
- | |- Number of jail: 3 | + | |
- | `- Jail list: | + | |
- | </ | + |