====== fail2ban für SoSci Survey ====== Für den Zugriff auf laufende Interviews wird jedem Interview ein "Token" zugeteilt, eine 12-stellige alphanumerische Zeichenfolge. Wer das Interview-Token kennt, kann das Interview fortführen und ggf. mit dem Zurück-Knopf auch eingegebene Daten einsehen. Damit man gültige Tokens nicht einfach durch Ausprobieren (brute force) ermitteln kann, sollte der Server IP-Adressen sperren, wenn diese ungültige Tokens verwenden. Dafür speichert SoSci Survey ungültige Eingaben in der Datei ''system/logfiles/token-fail.log''. Auch ungültige Teilnahmecodes und Serienmail-Schlüssel werden in dieser Datei vermerkt. Auf Linux-Systemen kann man IP-Adressen, die in dieser Liste häufiger auftauchen, mittels [[https://www.fail2ban.org|fail2ban]] vorübergehend sperren. Auf Debian-basierten Systemen kann man fail2ban wie folgt installieren: sudo apt-get install fail2ban Zunächst muss eine Datei ''/etc/fail2ban/filter.d/serial-fail.conf'' mit folgendem Inhalt angelegt werden. [Definition] failregex = \s+(invalid|serial|deliveryToken|session\.id) ignoreregex = Anschließend muss die Datei ''/etc/fail2ban/jail.local'' angelegt oder (falls schon vorhanden) ein Abschnitt ''[serial-fail]'' einfügt werden, welcher auf die Logdatei mit den ungültigen Einträgen verweist: [DEFAULT] ignoreip = 127.0.0.1/8 maxretry = 3 banaction = iptables-multiport [serial-fail] enabled = true port = http,https filter = serial-fail action = iptables-allports mail-whois[name=Serial Fail, dest=IHRE@E-MAIL-ADRESSE] logpath = /PFAD_ZU_SOSCI/system/logfiles/token-fail.log maxretry = 50 bantime = 7200 # SoSci Survey will lock IPs by itself, this is just the uppermost limit [sshd-ddos] enabled = true [php-url-fopen] enabled = true Dieser Eintrag sperrt eine IP-Adresse für 2 Stunden (`bantime`), wenn von dieser binnen 10 Minuten (Standardeinstellung für `findtime`) 50 fehlerhafte Eingaben (`maxretry`) gemacht wurden. Man kann die Sperrzeit auch kürzer einstellen und dafür schon nach z.B. 10 fehlerhaften Einträgen sperren, aber nachdem SoSci Survey fehlerhafte Teilnahmecodes ohnehin schon sperrt, stellt diese Konfiguration nur eine zweite Sicherheitsbarriere dar. Laden Sie die Konfiguration und überprüfen Sie, ob alles funktioniert: sudo fail2ban-client reload sudo fail2ban-client status Die Ausgabe sieht z.B. wie folgt aus: Status |- Number of jail: 3 `- Jail list: serial-fail, sshd, sshd-ddos