Synology Hyper Backup Tailscale-n keresztül rsync-et használva

Tailscale Logo

Welcome in the house, Tailscale!

Nem olyan régen Mastadon-on ajánlották a Tailscale szolgáltatását, ami gyakorlatilag egy privát VPN megoldás, személyes használatra ingyenesen. A konkrét csomagról itt olvashattok.

Ma délután gondoltam átállítom az infrámat erre a megoldásra, az alábbi célok voltak elérendőek:

  • van 1-2 szerverem, aminek az elérése SSH-n biztosított kell, hogy legyen,
  • az itthon duruzsoló Synology NAS-ra a családi eszközöknek a Synology alkalmazásoknak működniük kell (Synology Photos, Synology Drive és Synology Chat),
  • A NAS-nak tudnia kell mentenie az egyik szerverre.

A Tailscale (Wireguard alapon működik egyébként) azért tetszett meg, mert így nem kell portokat nyitogatnom itthon és a NAS felől a DDNS szolgáltatástól is elköszönhetek.

A Tailscale beállítása alapvetően sima volt, végig kellett menni a beállítási folyamaton és kész is. Én még kicsit reszeltem az ACL (Access Control List), mert azt is szabályozni szerettem volna, hogy a Tailscale hálózatomon belül ki mihez és mihez nem férhet hozzá. Ez a része is a doksi átolvasása után egész egyszerű volt, elértem vele azt amit akartam (bár azért vannak hiányosságok még…).

A szivattyú

Na de a brutális szivattyút a NAS rsync alapú backup-ja okozta a távoli egyik szerveremre, mivel semmi sem akart működni, ill. most is csak kisebb kerülő megoldással tudtam megoldani, remélem ezen majd a Synology javítani fog (hibajegyeket feladtam).

A lényeg, hogy:

  1. A Synology elmehet a picsába a hibaüzenettel, mivel amit hibaüzenetet ad a leírás szerinti beállítás után, annak köze sincs a valósághoz.
  2. A Synology elmehet a picsába, amiért valamiért a névfeloldás csak úgy nem megy, mindenképp IP-t (Tailscale) kell használni…
  3. A Synology elmehet a picsába, mert hiányos a doksi…
  4. Kell egy rsyncd.conf fájl a backup user ~-jába…

A lényeg, hogy:

  1. A backup szerveren (ahova menteni akarsz), annak a felhasználónak, akinek a nevében csatlakozni fog a NAS, kell egy rsyncd.conf nevű fájl a ~ könyvtárába. Példa tartalom lejjebb.
  2. Ezek után a Hyper Backup feladat beállítása közben értelemszerűen töltsük ki az űrlapot, de figyeljünk rá, hogy célnak ne a Tailscale által generált DNS nevet adjuk meg, hanem a hozzá tartozó IP címet. Lásd lejjebb!
  3. A Backup Module mezőbe írjuk be azt az azonosítót, amit az rsyncd.conf fájlban a [] között megadtunk, az esetemben /mnt/backup.
  4. Végezetül a Directory mezőbe adjuk meg a könyvtár nevét, ahova menthet a Hyper Backup. Ez a könyvtár fog majd egyébként az rsyncd.conf fájl path mezőjében megadott útvonal alatt létrejönni.
  5. És voilá… minden működik.

Minta rsyncd.conf

burgatshow@server1[~] cat rsyncd.conf
[/mnt/backup]
path = /mnt/backup
comment = Backup
uid = burgatshow
gid = burgatshow
read only = no
list = yes
charset = utf8

Hab a tortán

Ezt viszont végképp nem értem, hogy a NAS-ra SSH-n belépve a Tailscale által adott névfeloldás miért nem megy, a top level az oké, de ezt majd talán egyszer valaki megválaszolja (a <>-ban jelölt adatokat kimaszkoltam)

burgatshow@nas:~$ nslookup <nas-dns>.<tailscale-node>.ts.net
Server:		10.0.0.1
Address:	10.0.0.1#53

** server can't find <nas-dns>.<tailscale-node>.ts.net: NXDOMAIN

burgatshow@nas:~$ nslookup <tailscale-node>.ts.net
Server:		10.0.0.1
Address:	10.0.0.1#53

** server can't find <tailscale-node>.ts.net: NXDOMAIN

burgatshow@nas:~$ nslookup ts.net
Server:		10.0.0.1
Address:	10.0.0.1#53

Non-authoritative answer:
Name:	ts.net
Address: 76.76.21.21

UPDATE

Meg is kaptam a választ a DNS gondra, azért nem megy a névfeloldás, mert a Synology Tailscale kliensnek valószínűleg nincs jogosultsága a /etc/resolv.conf-ot módosítani, így nyilván a Tailscale specifikus subdomain-ek feloldása sem fog menni. Én nem fogok ezen változtatni, mert a teljes DNS forgalmát a NAS-nak nem akarom a Tailscale DNS szervere felé terelni, de aki így tenne, az állítsa be a 100.100.100.100-at DNS szervernek és menni fog.