Leserartikel How-To: Rsync, SSH und/oder DynDNS am Raspberry Pi Zero benutzen

Kettenhunt

Lt. Commander
Dabei seit
Feb. 2012
Beiträge
1.086
In dieser Anleitung wird beschrieben wie ihr auf einen Raspberry Pi Zero W mit Rapbian Buster über Dyndns, mit SSH und/oder rsync, darauf zugreift

Meine Hardware:
Raspberry Pi Zero W (ca. 15 EUR)
128GB Kingston High Endurance microSD (ca. 25 EUR)
Gehäuse mit diversen Adaptern (ca. 9 EUR)
USB-Kabel (ca. 2 EUR)
USB-Netzteil (ca. 5 EUR)
Kostenpunkt: ca. 55 EUR

OS: Raspbian Buster with Desktop


WICHTIG: IHR MÜSST FÜR DIESE ANLEITUNG UNBEDINGT WISSEN, WIE IHR(ODER WER) EUREN ROUTER/EUER MODEM KONFIGURIEREN KÖNNT/KANN.

Wenn nur SSH (oder auch nur DynDNS) genutzt werden soll, kann die Anleitung ebenfalls genutzt werden, den gespoilerten Rsync-Teil dann einfach überspringen.

Also um Rsync aus dem Internet, in meinem speziellen Falle für ein Synology-NAS, erreichbar zu machen müsst ihr folgendes tun:

Empfehlenswert kann es auch sein, das SSH-Passwort von "pi" generell zu ändern. User Pi kann über dyndns zwar nicht benutzt werden(sobald ihr euch über dyndns als User "pi" einloggt, werdet ihr gleich wieder gekickt-weil angeblich zu unsicher), aber wer weiß schon so genau, ob es nicht irgendwann eine Lücke dazu gibt.

----------------------------------------
Da ich den Zero irgendwo außerhalb meiner Bude aufstelle, möchte ich zukünftig per SSH darauf zugreifen können. Also muss ich SSH erst aktivieren.
Außerdem will ich meine SSID in "zerorsync" ändern und den gesamten Speicherplatz nutzen.

(Wenn Raspbian ohne Bildschirm benutzt wird, dann bitte mal nach dem "SSH Datei hinzufügen"-Tutorial bei Google suchen und den "SSH Enable"-Schritt bei mir ignorieren)

Ich öffne also LX Terminal und tippe folgenden Code ein:

Code:
sudo raspi-config

Dann navigiere ich zu Interfacing Options ---> SSH Enable
# Jetzt kann ich mich mit der IP des Zero per bspw. PuTTY verbinden
Dann navigiere ich zu Network Options ---> auf Hostname und ändere meine SSID auf "zerorsync".
Dann navigiere ich zu Advanced Options ---> Expand Filesystem

Wenn ich alles erfolgreich erledigt habe, dann starte ich den Zero erstmal neu

Code:
sudo reboot
--

Nach dem Neustart verbinde ich mich mit PuTTY.

Ich verwende dafür erstmal einfach den Standard-User mit Standard-Passwort. Alternativ kann ich auch gleich Passwort ändern(über "sudo raspi-config ---> Change User Password") oder einen neuen Benutzer anlegen(siehe weiter unten)

Code:
User: pi
Password: raspberry

Dann aktualisiere ich den Zero erstmal

Code:
sudo apt-get update && sudo apt-get upgrade -y
sudo rpi-update (#mit "y" ausführen)
sudo reboot

---

Um den Zero über seinen Hostnamen zu erreichen, den Avahi-Daemon installieren und beim booten automatisch starten lassen:
Code:
sudo apt-get install avahi-daemon
sudo update-rc.d avahi-daemon defaults

Dann bitte weiter scrollen...
----------------------------------------
Passwort vom User Pi ändern(falls noch nicht geschehen)

Code:
sudo raspi-config ----> Change User Password

Alternativ könnten wir auch den User "pi" deaktivieren, wenn wir den neuen User angelegt haben. --> Bitte selbst Anleitungen suchen
Alternativ können wir auch den User "pi" für die rsync-Konfiguration behalten. Nur SSH über dyndns funktioniert dann nicht, das geht nur mit einen neuen User.

Wenn wir uns mit PuTTY über SSH an unserem Raspberry Pi Zero verbunden haben, wechseln wir erstmal zu root

Code:
sudo -i

Dann erstellen wir den neuen Benutzer mit Homeverzeichnis(Groß- und Kleinschreibung des neuen Benutzers beachten - im ersten Durchlauf hab ich ich "Zero" eingegeben und kamm dann natürlich mit "zero" nicht weit. Um Verwechslungen zu vermeiden, diesmal lieber mit einen anderem Namen.

Code:
sudo useradd -m deinemudder

Dann wollen wir ein Passwort für deinemudder vergeben ( :-) )

Code:
passwd deinemudder

und dann sinngemäß die blinde Passworteingabe

starkes Beispielpasswort(genrell bei mir: Klein- und Großbuchstaben sowie Zahlen folgen nicht aufeinander sondern im Wechsel und niemals die gleichen Zeichen verwenden):
Code:
Q1x0#y6K9

Dann soll deinemudder auch noch die Gruppe "users", SSH-, Shell-(nicht zu verwechseln mit der Tankstelle :-) ) und Sudo-Zugriff bekommen

Code:
usermod -s /bin/bash deinemudder
usermod -g users deinemudder
gpasswd -a deinemudder sudo
gpasswd -a deinemudder ssh

Dann wechseln wir zum Benutzer deinemudder bzw. testen ihn.

Code:
su deinemudder

Alternative: Wir legen keinen neuen Benutzer an.


Gruppen des Users mit PuTTY prüfen mit:

Code:
-i


------------------------------------------------------------------

Jetzt gibt es mehrere Möglichkeiten. Alternativ diesen Teil überspringen, wenn kein rsync benötigt wird.

Alternativ können wir auch den User "pi" für die rsync-Konfiguration behalten. Ein neuer Benutzer ist primär nur für SSH-Zugriff über DynDNS notwendig.
Zu viele Wege führen nach Rom...

Dann Rsync installieren:

Code:
sudo apt-get install rsync
---

dann aktivieren wir Rsync

Code:
sudo nano /etc/default/rsync

Dann ändern wir folgende Werte(ggf. "#" vor den einzelnen Werten entfernen, dann erst sind diese aktiv)

Code:
RSYNC_ENABLE=true
RSYNC_CONFIG_FILE=/etc/rsyncd.conf

Dann abspeichern und Beenden

Code:
#STRG+O, Enter, STRG+X

------

Dann bestimmen wir, wie Rsync funktionieren soll:

Code:
sudo nano /etc/rsyncd.conf

und fügen folgenden Text ein
(siehe auch letzter Befehl "-i")
und wieder denken wir daran, "deinemudder" = User.(Siehe Zeilen 9,10,11 und 12)

"abcDEINEMUDDERxyz" = anpassbar

path = anpassbar

gid= GRUPPE, bei User "pi" ist sie gleichnamig "pi", bei User "deinemudder" haben wir sie auf "users" eingestellt



Code:
max connections = 3
log file = /var/log/rsync.log
timeout = 800
[DEINEMUDDER synct R]
comment = Rsync für DEINEMUDDER
path = /media/rsync
read only = no
list = yes
uid = deinemudder
gid = users
auth users = deinemudder
secrets file = /etc/rsyncd.secrets.deinemudder

Dann abspeichern und Beenden

Code:
#STRG+O, Enter, STRG+X
--

Dann bestimmen wir User und Passwort, User und Passwort bleibt bei mir 1:1 wie bei SSH



Code:
sudo nano /etc/rsyncd.secrets.deinemudder

# bei mir also sinnbildlich: "deinemudder:Q1x0#y6K9", Passwort kann natürlich nach Bedarf angepasst werden

Code:
user:password

Dann abspeichern und Beenden

Code:
#STRG+O, Enter, STRG+X
-----

Dann die Rechte der Datei anpassen:

Code:
sudo chmod 600 /etc/rsyncd.secrets.deinemudder
-----

Dann erstellen wir den Rsync-Ordner, wo nachher alles mit Rsync hineingeschubst wird(in der rsyncd.conf anpassbar)

Code:
sudo mkdir /media/rsync
---

Dann vergeben wir die Ordnerrechte an den Rsync-User

Code:
sudo chown deinemudder /media/rsync -R
---

Dann soll rsync beim booten automatisch starten(oder beim starten automatisch starten? :) )

Code:
sudo update-rc.d rsync enable

dann Rsync neustarten

Code:
sudo /etc/init.d/rsync restart

und dann können wir auch gleich den Zero neu starten

Code:
sudo reboot


FERTIG

Log lesen

Code:
less  /var/log/rsync.log

Von den anderen Optionen habe ich, Stand jetzt, keine Ahnung.

Dann Rsync installieren:

Code:
sudo apt-get install rsync
---

dann aktivieren wir Rsync

Code:
sudo nano /etc/default/rsync

Dann ändern wir folgende Werte(ggf. "#" vor den einzelnen Werten entfernen, dann erst sind diese aktiv)

Code:
RSYNC_ENABLE=true
RSYNC_CONFIG_FILE=/etc/rsyncd.conf

Dann abspeichern und Beenden

Code:
#STRG+O, Enter, STRG+X

------

Dann bestimmen wir, wie Rsync funktionieren soll:

Code:
sudo nano /etc/rsyncd.conf

und fügen folgenden Text ein
(siehe auch letzter Befehl "-i")
und wieder denken wir daran, "pi" = User.(Siehe Zeilen 9,10,11 und 12)

"abcPixyz" = anpassbar

path = anpassbar

gid= GRUPPE, bei User "pi" ist sie gleichnamig "pi"


Code:
max connections = 3
log file = /var/log/rsync.log
timeout = 800
[Pi synct R]
comment = Rsync für Pi
path = /media/rsync
read only = no
list = yes
uid = pi
gid = pi
auth users = pi
secrets file = /etc/rsyncd.secrets.pi


Dann abspeichern und Beenden


Code:
#STRG+O, Enter, STRG+X
--


Dann bestimmen wir User und Passwort

Code:
sudo nano /etc/rsyncd.secrets.pi

# bei mir also sinnbildlich: "pi:deinPasswort", "deinPasswort" kann natürlich nach Bedarf angepasst werden, um es sich leichter zu merken könnte es identisch mit dem SSH-Passwort sein.
# Außer natürlich ihr benutzt noch das Standard-Passwort "raspberry"

Code:
user:password

Dann abspeichern und Beenden

Code:
#STRG+O, Enter, STRG+X
-----

Dann die Rechte der Datei anpassen:

Code:
sudo chmod 600 /etc/rsyncd.secrets.pi
-----

Dann erstellen wir den Rsync-Ordner, wo nachher alles mit Rsync hineingeschubst wird(in der rsyncd.conf anpassbar)

Code:
sudo mkdir /media/rsync
---

Dann vergeben wir die Ordnerrechte an den Rsync-User

Code:
sudo chown pi /media/rsync -R
---

Dann soll rsync beim booten automatisch starten(oder beim starten automatisch starten? :) )

Code:
sudo update-rc.d rsync enable

dann Rsync neustarten

Code:
sudo /etc/init.d/rsync restart


und dann können wir auch gleich den Zero neu starten

Code:
sudo reboot


FERTIG

Log lesen

Code:
less  /var/log/rsync.log

Von den anderen Optionen habe ich, Stand jetzt, keine Ahnung.

Dann soll deinemudder an rsync gebunden werden

Code:
sudo nano /etc/rsyncd.conf

und wie folgt geändert werden(siehe auch letzter Befehl "-i")

und wieder denken wir daran, "deinemudder" = User.(Siehe Zeilen 9,10,11 und 12)

"abcDEINEMUDDERxyz" = anpassbar

path = anpassbar

gid= GRUPPE, bei User "pi" ist sie gleichnamig "pi", bei User "deinemudder" haben wir sie auf "users" eingestellt

Code:
uid = deinemudder
gid = users
auth users = deinemudder
secrets file = /etc/rsyncd.secrets.deinemudder

Dann abspeichern und nano verlassen mit

Code:
#STRG+O, Enter, STRG+X


dann bearbeiten wir die secrets-Datei

Code:
sudo nano /etc/rsyncd.secrets.deinemudder

und geben Benutzer:passwort ein, Passwort kann natürlich beliebig angepasst werden.
also bei mir sinnbildlich:

Code:
deinemudder:Q1x0#y6K9

Dann abspeichern und nano verlassen

Code:
#STRG+O, Enter, STRG+X

Dann starten wir rsync erstmal neu

Code:
sudo /etc/init.d/rsync restart

...dann scroll doch endlich mal weiter :-)
--------------------------------


Dann installieren wir ddclient, also einen DynDNS-Client.

Meine DynDNS habe ich bei freedns.afraid.org erstellt, allerdings sind auch andere Anbieter möglich.
Freedns hatte ich aber schon vorher einmal benutzt, deswegen wollte ich es auch wieder nutzen.
Bei Verwendung von anderen DynDNS-Anbietern, kann es sein, dass die ddclient.conf aus meiner Anleitung unverändert nicht funktionieren wird.
Bitte selbst nach der richtigen Konfiguration suchen oder bei eurem Anbieter nachfragen.

Code:
sudo apt-get install ddclient
-> Ich habe den Installationsassistenten komplett übersprugen, da hab ich nicht durchgesehen. Das editiere ich lieber mit nano. Also fleißig wegdrücken.
Alternativ könnt ihr auch den Installationsassistenten nutzen, Izmir Lachs.
Meine Beispiel-DynDNS-Adresse heißt für diesen Artikel übrigens "klopapierundmehl.chickenkiller.com" - Produkte des Jahres 2020

Dann bearbeiten wir die ddclient.conf mit nano
Code:
sudo nano /etc/ddclient.conf

Und mischen folgenden Text rein
Code:
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

dprotocol=dyndns1
use=web, web=checkip.dyndns.org
server=freedns.afraid.org
login=meinloginname
password='meinpasswort'
klopapierundmehl.chickenkiller.com


Dann abspeichern und nano verlassen

Code:
#STRG+O, Enter, STRG+X

dann starten wir ddclient erstmal neu

Code:
sudo /etc/init.d/ddclient restart
---
Dann die Portfreigabe einrichten

In meinem Falle:

dann DNS-Ausnahme und/oder Portfreigabe für 22(SSH) und/oder 873(rsync unverschlüsselt) oder nach Bedarf in AVM FritzBox 6490 hinzufügen,
Heimnetz-->Netzwerk-->Netzwerkeinstellungen-->DNS-Rebind-Schutz

oder mit einer Telekom Digibox Premium: "Heimnetzwerk"-> Portfreigabe -> TCP/UDP -> alle oder nach Bedarf: 22, 873, etc.

-> dyndns funktioniert jetzt bestenfalls

Den ersten SSH-Test mit DynDNS hab ich mit der App "Terminus" an meinem Google Pixel 2 XL(Wechsel auf Mobilfunkdatenverbindung) vollzogen. Domain, Benutzername und Passwort eingeben - fertig, funktioniert.


---------------------------------------------

Dann könnt ihr die Rsync-Verbindung an euerem Endgerät testen bzw. ich in meinem Falle an meiner Synology-NAS.

Bei mir funktioniert es. Ich habe auf meiner zweiten Synology-NAS, die ein paar Kilometer von mir entfernt steht, dafür ein kleines Test-Backup über Rsync auf mein Pi Zero angestoßen.

Ich persönlich habe bei Rsync ausschließlich mit User "pi" gearbeitet und einen neuen User nur für SSH-Zugriff eingerichtet. Allerdings habe ich vorher rsync nur lokal ausprobiert.
Den Rest habe ich aus dem Kopf heraus zusammengezimmert.
Möglicherweise haben sich kleinere Fehler in meine Anleitung geschlichen, alle Angaben ohne Gewähr.

Wie das ganze mit Rsync und verschlüsselt funktioniert - keine Ahnung.
Ich hab mal versucht mit Rsync eine SSH-Key-Verbindung zwischen meiner damaligen Strato-Cloud und einer Vu+ Settop-Box aufzubauen und bin daran grandios gescheitert. Nextcloud auf einer HC2 mit DynDNS habe ich auch mal ausprobiert, aber gleiches Ergebnis = ich bin nicht dafür geeignet.
Seitdem sind mir solche Geschichten echt egal und ich versuche lieber Kompromisse/Alternativen zu finden.

Aber möglicherweise hilft meine Anleitung, eine Grundlage für alle weiteren Konfigurationen zu bieten.

Diese Anleitung ist übrigens kein Copy&Paste von einer anderen Seite, gefühlt habe ich dutzende Seiten durchforstet und meine bisherigen Anleitungen dafür als Stütze genommen

Rsync am Pi Zero: https://www.computerbase.de/forum/t...am-raspberry-pi-zero-einrichten-kann.1936014/

Tor Relay auf dem Pi Zero: https://www.computerbase.de/forum/t...-und-dem-raspberry-pi-zero-einrichte.1935746/
 

Kettenhunt

Lt. Commander
Ersteller dieses Themas
Dabei seit
Feb. 2012
Beiträge
1.086
Keys erstellen und verwenden geht natürlich auch, habe ich allerdings noch nie zusammenbauen können bzw. war jetzt beim Pi Zero für mich auch nicht relevant. Vielleicht probiere ich das mal irgendwann aus.
 
Top