Mehrere VLANs mit einem Netzwerkadapter auf der Synology

eingetragen in: Allgemein, Docker, ioBroker, Synology 4

Manchmal benötigt man mehrere Netzwerke auf der Synology NAS. Bei einer Netzwerkkarte kann man dieses, wenn es die Netzwerkkomponenten wie z.B. Router und Switches zulassen mit VLANs abbilden.

Bei mir läuft auf der Synolgy NAS 216+II im Docker Container die IOT Anwendung ioBroker um meine Smarthomegeräte zu steuern. Alle Smarthomegeräte im LAN und WLAN sollen in einem extra Netzwerk ohne Zugriff auf das Heimnetzwerk und Internet sein.

Aus diesem Grund benötige ich 2 von einander getrennte Netzwerke. Eines für mein Heimnetzwerk mit Zugriff auf das Internet, Drucker, heimische PCs usw. Und ein Netzwerk für die Geräte ohne Zugriff auf die heimischen PCs und Internet. Da ich keine 2 Netzwerkanschlüsse habe, wird dieses über VLANs wie folgt abgebildet:

NetwerkVLANAufgabe
192.168.20.0/24VLAN 20Heimnetzwerk mit Zugriff auf das Internet und die heimischen PCs und mit Verbindung zum Smarthomenetzwerk (VLAN 25)
192.168.25.0/24VLAN 25Netzwerk mit den Smarthomegeräten ohne Internetzugriff und ohne Verbindung zum Homenetzwerk (VLAN 20)

Leider kann man auf der Synology NAS mit einer Netzwerkkarte genau ein VLAN über die Oberfläche einrichten. Dieses ist als erstes zu tun. Dafür in der Systemsteuerung der Punkt Netzwerk aufzurufen. Dort auf den Reiter „Netzwerk-Schnittstelle“ auswählen. Hier LAN anklicken und auf bearbeiten gehen. Jetzt das VLAN aktivieren und das VLAN eingeben.

Damit ist das VLAN 20 eingerichtet. Vergesse vorher nicht den Port der NAS an dem Switch auf VLAN 20 tagged zu stellen. Sonst kannst Du die Synology NAS nicht mehr erreichen.

Nun musst Du Dich per ssh oder telnet auf der Synology NAS anmelden. Wechsele in das Verzeichnis /etc/sysconfig/network-scripts und kopiere die Konfiguration des VLAN 20 welches Du über die Synology Oberfläche angelegt hast für das VLAN 25.

cd /etc/sysconfig/network-scripts
sudo cp ifcfg-eth0.20 ifcfg-eth0.25

Im nächsten Schritt musst Du die Netzwerkadressen und Devices des eben kopierten Interfaces ifcfg-eth0.25 ändern.

# Geänderte ifcfg-eth0.25 
DEVICE=eth0.25
VLAN_ROW_DEVICE=eth0
VLAN_ID=25
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.25.30
NETMASK=255.255.255.0

Entweder Du startest die NAS neu oder die Netzwerk Services mit sudo /etc/rc.network restart

Wer wie ich noch für die eingerichteten VLANs die MACVLANs für die Docker Container erstellen möchte, muss folgendes tun:

# MACVLAN für VLAN 20 - IP Adresse 192.168.20.80/32 
ip link del mac20
ip link add mac20 link eth0.20 type macvlan mode bridge
ip addr add 192.168.20.80/32 dev mac20
ip link set mac20 up
ip route add 192.168.20.80/28 dev mac20

# MACVLAN für VLAN 25 - IP Adresse 192.168.25.80/32 
ip link del mac25
ip link add mac25 link eth0.25 type macvlan mode bridge
ip addr add 192.168.25.80/32 dev mac25
ip link set mac25 up
ip route add 192.168.25.80/28 dev mac25

# Anlage MACVLAN 20 für Docker Container für Netz 192.168.20.80/28
docker network create -d macvlan --subnet=192.168.20.0/24 --gateway=192.168.20.1 --ip-range=192.168.20.80/28  --aux-address 'host=192.168.20.80' -o parent=eth0.20 macvlan20

# Anlage MACVLAN 25 für Docker Container für Netz 192.168.25.80/28
docker network create -d macvlan --subnet=192.168.25.0/24 --gateway=192.168.25.1 --ip-range=192.168.25.80/28  --aux-address 'host=192.168.25.80' -o parent=eth0.25 macvlan25

Mehr zu MACVLANs den findet Du hier. Das Thema ist nicht ganz einfach!

Damit sind die MACVLANs für beide VLANs eingerichtet und können im Docker verwendet werden. Der ioBroker Docker Container hat bei mir 2 MACVLANs. Die Sonoff, Shelly, Yelight, Xiaomi, … Adapter horchen im 192.168.25.0 Netz. Die ioBroker Web und Admin Oberfläche sind nur im 192.168.20.0 erreichbar aber nicht im 192.168.25.0 Netz.

SSH Login ohne Passwort auf dem Raspberry

eingetragen in: Allgemein, Synology 4

Ich möchte mich als User backup von der NAS auf meinem Raspberry mit root per ssh anmelden ohne ein Passwort einzugeben (das ist aus Sicherheitsgründen mit dem User root natürlich eine schlechte Idee) um z.B. Dateien jeden Tag von dem Raspberry auf die NAS zu kopieren.

Root Login per SSH erlauben

Melde Dich auf dem Raspberry mit dem User pi an (Default Passwort lautet raspberry). Als erstes änderst Du das Passwort vom User root.

pi@raspbery:~ $ sudo passwd root
New password: 
Retype new password: 

Anschließend musst Du die Datei Datei /etc/ssh/sshd_config editieren. Suche in der Datei nach dem Eintrag PermitRootLogin. Ersetze den Parameter mit yes. Sollte der Eintrag fehlen, dann füge diesen hinzu.

pi@raspbery:~ $ sudo vi /etc/ssh/sshd_config 

Ausschnitt aus der sshd_config.

# Authentication:
PermitRootLogin yes 

Jetzt noch sshd mit sudo service sshd reload neu starten. Jetzt solltest Du dich mit ssh@raspberry an Deinem Raspberry anmelden können.

SSH Login ohne Passwort

Da ich mich von meiner NAS mit dem User backup auf dem Raspberry mit User root ohne Passwort anmelden möchte, muss ein Zertifikat austauschen.

Prüfe als User backup auf der NAS ob es eine Datei ~/.ssh/id_rsa_pub gibt. Ist das nicht der Fall. Dann führe folgenden Befehl aus.

backup@nas:~ $ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): 
Created directory '~/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ez0m+hyjHk0at/kWbfYkgtFTJkj9hTQ90oPyFnm98tw 
backup@nas
The key's randomart image is:
+---[RSA 4096]----+
|         ..o .*o.|
|          ..o=+*+|
|           .o=+.+|
|          . o+.. |
|        S oo.o+ .|
|         B.+o =oE|
|        + O += + |
|         * *..  .|
|       .+.o..    |
+----[SHA256]-----+

Jetzt hast Du einen Private und Public Key im ~/.ssh/ Verzeichnis auf der NAS für den Benutzer backup erstellt. Als nächstes muss der Inhalt der id_rsa.pub auf den Rasperry in die Datei ~/.ssh/authorized_keys‘ kopiert werden.

backup@nas:~ $ ssh root@pi 'mkdir -p ~/.ssh'
backup@nas:~ $ cat ~/.ssh/id_rsa.pub | ssh root@pi 'cat >> ~/.ssh/authorized_keys'

Ab sofort kannst Du Dich nun von der NAS als Benutzer backup auf dem Raspberry als User root ohne Passwort anmelden.

backup@nas:~ $ ssh root@backup
pi@raspbery:~ $ 

Unifi Controller auf dem Raspberry

eingetragen in: Allgemein, Unifi 1

Installiere das Raspberry Lite Image. Dafür musst Du dieses downloaden und auf eine SD Karte schreiben. Auf dem Mac kannst Du dieses z.B. dem Tool ApplePi-Baker erledigen. Hast Du das Image erstellst und Du hast wie ich keinen Monitor und keine Tastatur für den Raspberry, erstelle auf der SD Karte im Verzeichnis boot eine leere Datei mit Namen ssh . Jetzt hast Du die Möglichkeit dich später per SSH auf den Raspberry anzumelden. 

Starte den Raspberry und melde Dich über den Mac mit ssh pi@<raspberry-ip> auf dem Raspberry an. Username ist pi und das default Passwort ist raspberry.

Du kannst anschließend die Einstellungen wie z.B. das Passwort im Anschluss mit dem Befehl sudo raspi-config ändern. Rufe dafür die Konfiguration auf dem Raspberry auf.

Nun musst Du den Downloadlink UniFi Network Controller X.YY.ZZ for Debian/Ubuntu Linux and UniFi Cloud Key kopieren. Den Link findest Du auf der Seite https://www.ui.com/download/unifi/

Normalerweise ist die JDK oracle-java8-jdk zu installieren. Die Version steht aber nicht mehr zur Verfügung. Ich konnte ohne Probleme auf dem Raspberry die JDK Version 9 oder 11 installieren. Damit ließ sich der Unifi Controller nur nicht starten. Abhilfe schuf die Installation der openjdk-8-jre (JRE) statt oracle-java8-jdk (JDK). Damit läuft der Unifi Controller auf dem Raspberry.

Beim ausführen von dpkg -i unifi_sysvinit_all.deb kommt es vielleicht zu Fehlern, da Pakete wie Mongo DB nicht installiert sind. Der Befehl apt-get -f install installiert anschließend die fehlenden Pakete.

~ $ sudo apt update
~ $ sudo apt install openjdk-8-jre
~ $ cd /usr/local/src
~ $ sudo wget https://dl.ui.com/unifi/5.12.22/unifi_sysvinit_all.deb
~ $ dpkg -i unifi_sysvinit_all.deb
~ $ sudo apt-get -f install

Nun sollte der Unifi Controller nach der Installation starten. Sollte das nicht der Fall sein, kann der Controller auch manuell mit sudo systemctl start unifi gestartet werden. Jetzt den Link