Optimiert und abgesichert: NextcloudPi als RasPi-Image

Konfiguration

Für die zentrale Konfiguration des Systems setzt NextcloudPi ein ähnliches Werkzeug ein wie Raspbian: Mit sudo nextcloudpi-config steuern Sie die Funktionen, die den Spezialisten von einer Standardinstallation abheben (Abbildung 3). Für einen Zugriff auf den Cloud-Speicher von außerhalb des lokalen Netzwerks (also über ein Smartphone mit der Nextcloud-App) sollten Sie zunächst eine Weiterleitung der Ports 80 (HTTP) und 443 (HTTPS) vom WLAN-Router auf den Raspberry Pi einrichten.

Abbildung 3: ein spezielles Werkzeug hilft Ihnen dabei, die spezifischen Einstellungen des System zu konfigurieren.

Anschließend richten Sie über die Option free Dynamic DNS provider (need account) in der Konfiguration mit No-IP eine DynDNS-Domain, sodass Sie Ihren eigenen Cloud-Speicher immer unter einer festen Domain wie zuhause.ddns.net erreichen. Eventuell bietet aber der Router bereits eine solche Funktion an.

Funktionieren die Port-Weiterleitung und der DynDNS-Name, holen Sie sich über Let's Encrypt: automatic signed SSL certificates ein kostenloses Let's-Encrypt-Zertifikat (Abbildung 4). Das sorgt für eine ordentlich verschlüsselte Verbindung, sowie dafür, dass sich der Browser oder ein Client sich beim Aufruf der Seite nicht über ein fehlerhaftes Zertifikat beschweren. Die weiteren Optionen in der Konfiguration beziehen sich auf Fail2Ban sowie Limits der Installation wie die maximale Dateigröße bei Uploads oder den Ablageort der Daten.

Abbildung 4: Die kostenlosen Zertifikate von Let's Encrypt sorgen dafür, dass Server und Client sicher und verschlüsselt kommunizieren.

Abgeriegelt

Haben Sie eine Portweiterleitung eingerichtet und ist der RasPi immer unter einer bestimmten DynDNS-Adresse zu erreichen, dann steht er wie jeder andere Server im Internet. Dabei hinkt er zwar in Sachen Leistung und Anbindung einem echten Root-Server hinterher (eine DSL-Leitung bietet besonders in Sachen Upload deutlich weniger Bandbreite als die Standleitung eines Rechenzentrums), doch er ist denselben Gefahren ausgesetzt wie jeder andere Rechner.

Ein beliebter Angriffspunkt sind Brute-Force-Angriffe auf SSH oder die auf dem Webserver laufenden Anwendungen. Dabei gerät der Server in der Regel nicht gezielt ins Visier der Angreifer; stattdessen beharken diese potenzielle Ziele wahllos in kompletten IP-Bereichen.

Hinter den Angriffen steckt in der Regel keine große Magie: Die Angreifer probieren einfach so lange automatisiert bekannte Kombinationen aus Benutzername und Passwort durch (bei einem RasPi etwa pi/raspberry) oder variieren beliebte Namen und Passwörter, etwa anhand eines Wörterbuchs, bis sie einen Treffer landen.

Mit Fail2Ban verhindern Sie das, indem das Tool über die Protokolldateien gescheiterte Logins verfolgt und entsprechende IP-Adressen nach bestimmten Kriterien einbremst. Je öfter ein Client versucht, sich mit falschen Daten einzuloggen, desto länger wartet das System, bis es einen weiterer Versuch zulässt. Am Ende blockiert Fail2Ban diese Adresse meist komplett.

Sie aktivieren diesen Schutz zunächst über die Option Brute force protection in der Konfiguration. Die vom System getroffenen Vorgaben passen in der Regel, Sie sollten an dieser Stelle nichts ändern. Anschließend ist das System automatisch scharfgeschaltet und überwacht den SSH-Server sowie die Nextcloud-Instanz (Listing 1).

Listing 1

 

$ sudo fail2ban-client status
Status
|- Number of jail:      2
`- Jail list:           ssh, nextcloud

Den aktuellen Status für einen Dienst fragen Sie ab, indem Sie dessen Namen als Argument übergeben. Im Beispiel aus Listing 2 zeigt dieser noch keine Auffälligkeiten. Auf dem SSH-Server gab es jedoch von der IP 192.168.111.199 bereits zu viele gescheiterte Logins, sodass diese gesperrt wurde. Sollte es sich dabei um einen Fehler handeln, machen Sie diese Maßnahme wieder rückgängig (Listing 3).

Listing 2

 

$ sudo fail2ban-client status nextcloud
Status for the jail: nextcloud
|- filter
|  |- File list:        /var/www/nextcloud/data/nextcloud.log
|  |- Currently failed: 0
|  `- Total failed:     0
`- action
   |- Currently banned: 0
   |  `- IP list:
   `- Total banned:     0
$ sudo fail2ban-client status ssh
Status for the jail: ssh
|- filter
|  |- File list:        /var/log/auth.log
|  |- Currently failed: 0
|  `- Total failed:     6
`- action
   |- Currently banned: 1
   |  `- IP list:       192.168.111.199
   `- Total banned:     1

Listing 3

 

$ sudo fail2ban-client set ssh unbanip 192.168.111.199

Im Test funktionierte das mit der aktuellen Version von NextCloudPi jedoch nur für den SSH-Server in vollem Umfang. In Bezug auf das Webfrontend verzögerte Fail2Ban zwar weitere Login-Versuche subjektiv, doch zum kompletten Sperren der IP-Adresse kam es nie.

Bei der Abfrage des Status antwortete der Client immer Currently failed: 0, hatte also nie ein gescheitertes Login verbucht. Hier gilt es also, noch nachzubessern. Sie sollten daher auf jeden Fall das Standard-Login des Admin-Users ändern und dafür sorgen, dass die Nutzer des Cloud-Speichers sichere Passwörter verwenden.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

12/2018
Coole Projekte

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Bytes und Beats

    In Sonic Pi können Sie mit wenigen Codezeilen Klänge manipulieren, Beats zusammenstellen und ganze Songs komponieren.

  • Klein, aber fein

  • Trick or treat

    Das traditionelle RPG-Gruselkabinett glänzt dieses Jahr mit einer innovativen Umsetzung mittels Pneumatik und Elektropneumatik sowie ST-Programmierung.

  • Unter Kontrolle

    Traditionell stellen wir alljährlich ein selbst gebautes Halloween-Gespenst vor. Die pneumatischen und elektronischen Grundlagen erklärt dieser Artikel.

  • Go Pi Go!

    Der Bausatz GoPiGo3 liefert Bauteile und Software für ein kleines Roboterauto. Zusammen mit einem RasPi als Gehirn programmieren Sie den Roboter per Mausklick.

  • Handlicher Helfer

    Während die Folien der Präsentation durchlaufen, liefert ein kleiner Dokumentenserver auf Basis des GL-AR300M-ext zusätzliche Informationen aus.

  • Wiederverwertet

    Mithilfe eines einfachen Python-Programms recyceln Sie ein ausgedientes Smartphone als drahtlos angebundenes RasPi-Display.

  • Herzenssache

    Steigt beim Krimi der Herzschlag bedrohlich an? Mit einem Pulsmesser in Eigenbau ermitteln Sie einfach und kostengünstig, ob der Herzschlag noch in verträglichen Bereichen liegt.

  • Fernbedient

    Mit der Fernbedienung den RasPi steuern. In der Theorie möglich, in der Praxis oft beschwerlich. Die Libcec liefert praktische Tools zur Fehlersuche.

  • Musikwürfel

    Mit Musikcube machen Sie Ihre eigene Sammlung fit fürs Streamen. Der terminalbasierte Audioplayer lässt sich Fernsteuern und bietet eine App für Android-Smartphones.