2FA bei einer Synology NAS mit TOTP

Immer wieder hört man von Ransomware (bzw. Krypto-Trojanern), welche Daten auf Servern und Storagesystemen verschlüsseln und Lösegeld erpressen. Umso wichtiger ist es somit seine NAS-Systeme (Network Attached Storage) gegen so etwas abzusichern. Oft wird dazu die sogenannte 2FA (Zwei-Faktor-Authentifizierung) verwendet.

Die Zwei-Faktor-Authentifizierung (2FA) ist eine Technik, um die Benutzerkonten vor unberechtigtem Zugriff zu schützen. Sie funktioniert durch zwei verschiedene Identitätsbeweise. Der erste Beweis ist etwas, das nur Ihr wisst: Euer Passwort. Der andere Beweis ist meistens ein PIN, der über eines eurer Geräte angezeigt wird und sich alle 30 Sekunden ändert. Dazu wird üblicher Weise der TOTP (Time-based One-time Password Algorithmus) Standard verwendet.

Seit Synology in diesem Sommer für seine NAS-Systeme den DSM (DiskStation Manager) in der Version 7 rausgebracht hat, wird 2FA unterstützt. Und es ist jedem anzuraten, diese auch zu verwenden. Falls Ihr noch die alte Version 6 verwenden sollten, habe ich in dem Artikel „Synology Diskstation Manager 7.0“ beschrieben, wie man ein Upgrade durchführt.

Wenn man ein Smartphone hat, benötigt man für die Zwei-Faktor-Authentifizierung lediglich eine App die den TOTP (Time-based One-time Password Algorithmus) beherrscht. Ich selber nutze dazu aktuell 1Password. Es gibt aber auch diverse kostenlose Apps, welche diesen Standard beherrschen (z.B. Google Authenticator oder Microsoft Authenticator). Im folgenden Artikel werde ich erklären, wie man eine 2FA über TOTP für einen Benutzer im DSM einrichtet. Falls Ihr lieber ein Video mit einer Anleitung anschauen möchtet, verlinke ich hier auch ein Anleitungsvideo zu dem Thema, das ich auf YouTube hochgeladen habe.

Wie richtet man eine 2FA für einen Benutzer bei DSM ein?

Um die Zwei-Faktor-Authentifizierung bei einem Benutzer im DSM einzurichten, meldet man sich zunächst mit diesem an. Danach klickt man auf das Personen-Symbol oben rechte in der Ecke (siehe roter Kreis auf dem folgenden Screenshot).

In dem sich aufklappenden Menü wählt man dann den Menüpunkt „Persönlich“ aus und es öffnet sich eine Seite mit den persönlichen Einstellungen des Benutzers. Etwas weiter unten auf dieser Seite gibt es dann den Abschnitt „Anmeldemethode“. Dadrunter gibt es einen Bereich mit der Überschrift „2-Faktor-Authentifizierung“ (siehe blaues Viereck auf dem folgenden Screenshot). Wenn man auf diesen klickt, öffnet sich ein Einrichtungsdialog, der einen durch die Einrichtung der Zwei-Faktor-Authentifizierung führt.

In dem Dialog wird man zunächst nach der Methode gefragt. Synology bietet hier verschiedene an. Wie eingangs beschrieben wollen wir die Methode nach dem TOTP Standard verwenden. Deshalb wählen wir hier die Methode OTP aus (siehe blaues Viereck). Synology verzichtet in der Bezeichnung der Methode auf das „T“ von „TOTP“. Das kann an dieser Stelle leicht verwirren.

Nach der Auswahl der Methode, wird man nach seinem Passwort gefragt. Nach erfolgreicher Eingabe von diesem, erscheint ein allgemeines Hinweisfenster mit Informationen zu 2FA. Mit dem „Weiter“ Knopf gelang man im Anschluss zu einem Fenster mit Informationen zu der Installation der App „Synology Secure SignIn“. Wie bereits geschildert, kann man aber jede App verwenden, die den TOTP Standard unterstützt. Sofern man eine solche bereits installiert hat, benötigt man die App „Synology Secure SignIn“ also nicht. In diesem Fall klickt man einfach wieder auf „Weiter“ und ladet endlich in der eigentlichen Einrichtung von TOTP (siehe Screenshot).

Die konkrete Einrichtung von TOTP besteht jetzt aus zwei Schritten.

  • Scannen des angezeigten QR Codes mit der TOTP App.
  • Bestätigung des erfolgten Scanns durch Eingabe des richtigen PINs

Sobald man diese Schritte durchgeführt hat, ist die Zwei-Faktor-Authentifizierung aktiv. Sobald man sich mit einem neuen Gerät und seinem Benutzer an der Synology NAS anmeldet, wird man jetzt zusätzlich nach dem PIN gefragt. Erst nachdem man diesen mit Hilfe der TOTP App eingegeben hat, gelangt man auf den Desktop des DSM. Somit ist man zukünftig zusätzlich abgesichert, wenn einem das Passwort entwendet werden sollte.

ISPConfig: Upgrade von Ubuntu 10.04 auf 12.04

Ich habe heute mal einige Server die ich mit ISPConfig (aktuell Version 3.0.5.2) verwalte auf Ubuntu 12.04 aktualisiert. Nachdem Ubuntu 12.04 nun ziemlich genau ein Jahr draußen ist, war die Zeit nach meiner Meinung reif für ein Upgrade.

Das Upgrade lief auch ohne größere Probleme durch. Ich habe aber bei MySQL aus Kompatibilitätsgründen wieder MyISAM als Standard-Tabellentyp eingestellt. Dies kann mit der Zeile

default-storage-engine = MyISAM

in der Datei /etc/mysql/my.cnf bewerkstelligt werden.

Des weiteren hat Postfix ein bisschen rumgezickt. Beim starten hat es einige Zeilen in der main.cf und master.cf angemaul, die nicht mehr unterstützt werden. Diese kann man aber einfach auskommentieren. Außerdem lief die SASL-Authentifizierung von Postfix nicht mehr. Deshalb konnte man keine E-Mails per Authentifizierung verschicken. Die Lösung des Problems wird im Launchpad unter der folgenden URL aber schon beschrieben: https://bugs.launchpad.net/ubuntu/+source/cyrus-sasl2/+bug/875440/comments/34. Offensichtlich hat sich hier in der Schreibweise einiger Parameter etwas geändert. Wenn man die Datei /etc/postfix/sasl/smtpd.conf wie folgt abändert, läuft es wieder:

pwcheck_method: saslauthd
mech_list: plain login pam
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: [entfernt]
sql_passwd: [entfernt]
sql_database: dbispconfig
sql_select: select password from mail_user where login = '%u@%r'

FreeRADIUS: Begrenzung der Zugriffszeit nach der ersten Benutzung

Mit Hilfe eines Moduls kann man den FreeRADIUS dazu bringen, dass ein Benutzerzugang nach einer vorgegebenen Zeit nach der ersten Anmeldung abläuft. Dazu erzeugt man ein neues Modul innerhalb des Modulverzeichnisses (dieses findet man meistens unter /etc/freeradius/modules/). Ich habe da Modul passender Weise accessperiod genannt und es sollte wie folgt aussehen:

 sqlcounter accessperiod {
    counter-name = Max-Access-Period-Time
    check-name = Access-Period
    sqlmod-inst = sql
    key = User-Name
    reset = never
    query = "SELECT IFNULL((SELECT TIME_TO_SEC(TIMEDIFF(Now(),AcctStartTime)) FROM radacct WHERE UserName = '%{%k}' ORDER BY AcctStartTime LIMIT 1),0)"
}

Danach fügt man das Modul am Ende der entsprechenden Authorize-Section der Site des FreeRADIUS ein. Diese könnte dann z.B. wie folgt aussehen:

authorize {
        preprocess
        chap
        mschap
        suffix
        eap {
                ok = return
        }
        unix
        sql
        expiration
        logintime
        pap
        noresetcounter
        dailycounter
        monthlycounter
        accessperiod
}

Damit die Konfiguration aktiv wird, muss der FreeRADIUS neu gestartet oder geladen werden und bei den entsprechenden Benutzern muss in der Tabelle radcheck noch das Attribut Access-Period vorgegeben werden. Das könnte z.B. wie folgt aussehen:

+—-+———–+——————-+—-+————-+
| id | UserName | Attribute | op | Value |
+—-+———–+——————-+—-+————-+
| 2 | benutzer2 | Access-Period | := | 3600 |
+—-+———–+——————-+—-+————-+