OpenWRT als ortsunabhängiges NAS über Wireguard?

Ziel ist es ein NAS auf OpenWRT zu erzeugen, welches, egal wo am Internet angeschlossen, immer von Zuhause aus erreichbar ist und mir als Backup Lösung zur Verfügung steht.

Mögliches Szenario: Ich gebe mein mobiles NAS einem Freund mit der Bitte es an sein Internet anzuschließen. Ohne seine Konfiguration zu kennen, ohne einen Port zu öffnen, und das NAS meldet sich automatisch bei mir.

Dann mal los:

Ich habe hier eine altes RaspberryPI mit externer SSD Festplatte und einen alten Thinclient mit interner SSD. Zuhause habe ich bereits einen funktionierenden Wireguard Server und ein konfiguriertes Peer. Der Wireguard Server ist von Extern zu erreichen.

Ich starte mit dem Thinclient. Das passende OpenWRT Image fix mit baleaEtcher auf die Platte geschrieben. Platte eingebaut und gestartet. Der Thinclient ist dann über 192.168.1.1 erreichbar. Der OpenWRT Client benötigt Internet Zugriff. Nun die root-Partition auf die komplette Kapazität vergrößern.

Ich mache das über die CLI:

ssh root@192.168.1.1

Die benötigten Pakete installieren:

opkg update
opkg install cfdisk resize2fs tune2fs

Nun die Partition vergrößern (interne SSD oder Speicherkarte):

cfdisk /dev/mmcblk0
oder
cfdisk /dev/sda

Das rootfs auswählen, Resize, Rest nutzen, Write, Yes und Quit. Ein Reboot erledigt den Rest.

reboot

remount root as RO und entferne reservierte GDT blocks (alles fixen) danach neu starten:

mount -o remount,ro /

tune2fs -O^resize_inode /dev/mmcblk0p2
fsck.ext4 /dev/mmcblk0p2 

oder

tune2fs -O^resize_inode /dev/sda2
fsck.ext4 /dev/sda2 
reboot

Nun muss nur noch das Filesystem vergrößert werden:

resize2fs /dev/mmcblk0p2

oder

resize2fs /dev/sda2

Nun ist die root-Partition vergrößert.

Nun wird Wireguard installiert:

In der GUI: System -> Software -> Update lists, Filter: wireguard, dann luci-proto-wireguard installieren. Dann: System -> Reboot -> Perform Reboot

Unter “Network – Interfaces” auf “Add new interface” klicken. Einen Namen, z.B. wg0, eingeben und bei “Protocol” “WireGuard VPN” auswählen. Auf “Create interface” klicken.

Unter import configuration die vorbereitete peer Konfiguration einspielen.

[Interface]
Address = 10.0.0.7/24
ListenPort = 51919
PrivateKey = gPut+A3NOREDwCQSbbxxxxxxQpYIa2dZAGCeU2hruVY=
[Peer]
PublicKey = JZbLwM8PQd2onZ+2/W2bxxxxxxxxMYxBu1xCjCURKlY=
PresharedKey = DP8m0t+Wix9Xat1Zc6eCxxxxxxffCDaUmQE8cK8hARQA=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = myserver.dyndns.org:51919

Save & Apply drücken. Ggfls. das Interface einmal Restarten. Nun können wir unter Network -> Diagnostics prüfen, ob wir einen Ping zu unserem Wireguard Server schicken können:

Super! Nun wollen wir das NAS auch erreichbar machen.

Unter Network -> Firewall -> Add eine neue Regel erstellen:

Danach Save & Apply

Nun zur Samba Freigabe:

System -> Software -> Update lists -> Filter: samba -> luci-app-samba4 opkg, wsdd2 und block-mount installieren. Danach Reboot.

Nun einen Samba User anlegen. Das geht nur im CLI:

opkg update
opkg install nano
nano /etc/passwd
klaus:x:1001:65534:klaus:/var:/bin/false

Hier wird ein Benutzer klaus hinzugefügt. Die UIDs ab 1001 stehen zur freien Verfügung. Die GID 65534 ist nobody, /var bedeutet, dass der User kein spezielles home-Verzeichnis auf dem Server hat, /bin/false bedeutet, er hat kein default shell Programm.

Dem Benutzer klaus ein Kennwort vergeben:

smbpasswd -a klaus
service samba4 restart (Optional)

Einen Freigabeordner erstellen und Schreibrechte setzten:

mkdir /mnt/nas
chmod -R 777 /mnt/nas

Nun wieder in der GUI unter Services -> Network Shares eine Freigabe einrichten. Bei Interface das gewünschte Interface auswählen. Z.Bsp.: wg0. Bei der Freigaben einen Namen vergeben, den Pfad eintragen und den erlaubten Benutzer. Save & Apply drücken und Freigabe testen.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert