Uhrzeit über systemd-timesyncd synchronisieren

Vor knapp einem Jahr habe ich einen Artikel über Zeitsynchronisation am Raspberry Pi mittels NTP geschrieben Zum Artikel. NTP kann in zwei Varianten betrieben werden. Im Client Modus wird lediglich die lokale Uhrzeit aktualisiert und im Server Modus können sich andere Geräte im Netzwerk die aktuelle Uhrzeit vom NTP Server abholen. In vielen Fällen ist es vermutlich ausreichend, die Client Funktionalität zu nutzen. Dafür ist NTP aber eine relativ komplexe Lösung mit vielen Möglichkeiten, die gar nicht unbedingt benötigt werden. In vielen Linux Distributionen ist systemd bereits als Init-System implementiert. Ab Version 213 bringt systemd einen sehr leichtgewichtigen Dienst names “timesyncd” mit, der sich um den Abgleich der lokalen Uhrzeit kümmert.

„Uhrzeit über systemd-timesyncd synchronisieren“ weiterlesen

Raspberry Pi über IPv6 erreichbar machen

Viele nutzen Ihren Raspberry Pi oder andere Single Boards, wie z.B. einen Odroid, um gewisse Dienste wie Webserver, Cal- und CardDAV Server oder anderer beliebige Cloud Dienste im Internet erreichbar zu machen. Im privaten Bereich wird dazu der eigene Internetanschluss verwendet und ein einfaches Portforwarding auf den Raspberry Pi konfiguriert, damit dieser auch im Internet über die benötigten Ports ansprechbar ist. In den meisten Fällen (>90%) geschieht dies aktuell noch über IPv4, da es für viele Anwender das vertrautere Protokoll ist. Die Erreichbarkeit von Webdiensten über IPv6 ist nach wie vor erschreckend gering. Der folgende Artikel soll zeigen, wie ein eigener Server auch per IPv6 über das Internet erreichbar sein kann und welche Hürden es möglicherweise zu nehmen gibt.

„Raspberry Pi über IPv6 erreichbar machen“ weiterlesen

Linux mit Lynis analysieren und härten

Linux sorgt von Haus aus schon dafür, ein System möglichst sicher zu betreiben. Allerdings ist das immer von der Konfiguration des Systems und der installierten Pakete abhängig. Unsachgemäße Handhabung, mangelndes Wissen oder auch schlechte Dokumentationen können ein System schnell zur Angriffsfläche machen. Gerade Einplatinencomputer wie zum Beispiel ein Raspberry Pi hängen oft direkt im Internet und werden somit schnell ein Ziel für Angreifer. Neben einer Firewall, die wirklich nur den Traffic durchlässt, der wirklich erforderlich ist, aktuellen Paketen, sicheren Passwörtern und einer abgesicherten SSH Konfiguration müssen auch weitere Systemkomponenten möglicherweise gehärtet werden, um Angriffsflächen zu minimieren. Um das eingesetzte System zu analysieren gibt es mehrere Möglichkeiten. Eine davon ist das Open Source Audit Werkzeug “Lynis”. Es führt einige individuelle Tests durch und gibt Ratschläge wie das eigene System weiter abgesichert werden kann.

„Linux mit Lynis analysieren und härten“ weiterlesen

MySQL Binary Logs belegen viel Speicherplatz

Auf einem Einplatinencomputer wie dem Raspberry Pi lassen sich prima diverse Anwendungen betreiben. Für kleine Benutzergruppen ist es zum Beispiel recht einfach möglich, eine Private Cloud einzurichten, um Daten zu synchronisieren oder um Kalender und Kontakte mit unterschiedlichen Geräten abzugleichen. Damit solche Anwendungen auch funktionieren wird in den meisten Fällen eine Datenbank vorausgesetzt. Als Datenbanksystem kann auf aktuellen Generationen der Einplatinencomputer “MySQL” bzw. dessen Fork “MariaDB“ zum Einsatz kommen. Die Leistung der Geräte ist zwischenzeitlich so gut, dass dies problemlos funktioniert. MySQL bzw. MariaDB sollten vor dem ersten Einsatz zwingend abgesichert werden, damit zumindest die wichtigsten Grundkonfigurationen abgeschlossen sind.

„MySQL Binary Logs belegen viel Speicherplatz“ weiterlesen

Seafile Library für Backup optimieren

Mit der Open Source Software „Seafile“ lassen sich Daten über eine Private Cloud auf diversen Endgeräten synchron halten. Wird eine synchronisierte Datei bearbeitet, wird diese auf alle Endgeräte verteilt. Dabei lässt sich die Synchronisation automatisch durchführen, sobald eine Veränderung festgestellt wird oder nur bei Bedarf auf Anforderung. Um eine gewisse Grundstruktur zu erreichen, lassen sich beliebige Libraries erstellen, über die dann die Dateien synchronisiert werden. So lassen sich zum Beispiel private von beruflichen Daten trennen. Auf jedem konfigurierten Endgerät lassen sich die zu synchronisierenden Libraries individuell festlegen. Jede Library wird dann fest mit einem lokalen Verzeichnis verbunden. Für viele Fälle ist dieses Verhalten auch absolut ausreichend. Wenn jedoch aus Gründen der Datensicherung viele verschiedene Verzeichnisse in die Private Cloud geschoben werden sollen, macht es wenig Sinn, für jedes Verzeichnis eine eigene Library anzulegen.

„Seafile Library für Backup optimieren“ weiterlesen

Nginx und Let’s Encrypt auf Raspberry Pi

Mit Let’s Encrypt lassen sich kostenlose SSL Zertifikate erstellen, die von allen gängigen Browsern akzeptiert werden ohne eigene Root Zertifikate hinzufügen zu müssen. Gerade im Consumer-Bereich werden viele Einplatinencomputer wie der Raspberry Pi oder Banana Pi als Webserver verwendet, um gewisse Dienste über das Internet zu veröffentlichen. Mit HTTPS verschlüsselten Verbindungen zum eigenen Webserver wird die Sicherheit erhöht, da keine Kommunikation mehr im Klartext über die Leitung geht und somit nicht mehr bzw. nur mit deutlich erhöhtem Aufwand abgehört werden kann. Als Webserver empfiehlt sich auf dem Raspberry Pi „nginx“ (Engine-X ausgesprochen), da dieser trotz extremer Leistungsfähigkeit sehr wenig Ressourcen benötigt.

„Nginx und Let’s Encrypt auf Raspberry Pi“ weiterlesen

sudo ohne Passwortabfrage

In der Linux und Unix Welt läuft sehr viel über strikte Berechtigungen. Viele Aktionen sind einem Standardbenutzer nicht gestattet, welches aus Sicherheitsgründen natürlich einige Vorteile mit sich bringt. Um eine gewisse Aktion mit den Berechtigungen eines anderen Benutzers ausführen zu können, gibt es zwei Möglichkeiten. Die wohl gängigere Methode dürfte der Befehl „sudo“ sein, welcher für substitute user, do steht. Damit lassen sich je nach Konfiguration Befehle bzw. Aktionen mit erhöhten Berechtigungen ausführen, ohne dass das Passwort von root bekannt sein muss. Des Weiteren werden alle Aktionen die mit „sudo“ ausgeführt werden auch protokolliert und lassen sich somit auf den tatsächlichen Benutzer zurückführen.

„sudo ohne Passwortabfrage“ weiterlesen

Raspberry Pi als OpenVPN Server

Wie kann ich eigentlich von außerhalb meines eigenen Netzwerks sicher auf interne Ressourcen zugreifen, ohne jeden dafür benötigten Port direkt über das Internet erreichbar zu machen? Will ich so etwas überhaupt? Den Zugriff wahrscheinlich schon. Direkt über das Internet vielleicht eher nicht. Um beide Ziele zu erreichen, wird ein VPN Tunnel benötigt, durch den die komplette Kommunikation abgeschottet von der Außenwelt läuft. Dazu wird im eigenen Netzwerk ein VPN Server aufgebaut. Die meiner Meinung nach beste Lösung hierfür ist OpenVPN. Je nach Netzwerk, kann der OpenVPN Server auch direkt auf dem heimischen Router laufen Klick.

„Raspberry Pi als OpenVPN Server“ weiterlesen

Richtige Uhrzeit am Raspberry Pi mit NTP

In vielen Fällen übernimmt ein Einplatinencomputer wie z.B. ein Raspberry Pi die Aufgabe eines Servers, indem er gewisse Dienste zur Verfügung stellt. Wenn das Gerät im 24*7 Modus betrieben wird, ist es sehr wichtig, dass die Uhrzeit und das Datum immer richtig gesetzt sind. Dafür ist bei der für den Raspberry Pi wohl gängigsten Distribution “Raspbian” bereits “NTP” mit an Bord, welches sich darum kümmert, dass das Gerät jeweils die aktuelle Zeit hat.

„Richtige Uhrzeit am Raspberry Pi mit NTP“ weiterlesen

User Agents mit nginx blockieren

Der Webserver nginx ist unter anderem wegen seinen geringen Ressourcenanforderungen sehr beliebt beim Einsatz auf Einplatinencomputern wie dem Raspberry Pi. Allerdings unterscheiden sich die Konfigurationsmöglichkeiten doch ganz deutlich vom bekannten Apache Webserver. Beim Apache werden viele Einstellungen die den Zugriff betreffen über die „.htaccess“ Datei umgesetzt. So eine Datei sucht man bei nginx vergeblich. Anpassungen werden entweder in der globalen „nginx.conf“ oder direkt in der Virtual Host Sektion durchgeführt. Um nicht alle Zugriffe auf einen Webhost zu erlauben, lassen sich diese anhand des User Agents filtern. Jeder Browser sendet zum Beispiel seine eigene Kennung mit.

„User Agents mit nginx blockieren“ weiterlesen