Ez a bejegyzés egy nyílt forráskódú eszközt mutat be, mely segítségével szinkronizálni tudjuk a különböző eszközeinken lévő állományainkat. Telepíthető Android-, Linux- és Windows környezetre egyaránt. Jelen esetben egy Debian 10 (buster) alaprendszeren mutatom be az eszköz telepítését.
Syncthing telepítése
Mielőtt bármit is tennénk, telepítsük a curl csomagot:
apt-get install gnupg gnupg2 gnupg1 curl sudo
Először is adjuk hozzá a Syncthing csomagtárolóját a rendszerünkhöz:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add - echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list apt-get update
Majd rögtön telepítsük is fel a szolgáltatást:
apt-get install syncthing
A szolgáltatás egy adott felhasználó nevében fut, amikor elindul. Biztonsági szempontból hasznosabb, ha szolgáltatás indításához egy külön felhasználót hozunk létre, akinek adunk egy külön könyvtárat, így ide fognak a távoli állományok szinkronizálódni. Így amennyiben támadás érné a szerverünket, csak az adott felhasználó jogosultságának megfelelő jogokkal fog rendelkezni a támadó:
useradd -r syncthing -m -d /home/syncthing
- r: rendszer felhasználó
- m: felhasználói könyvtár készítése
- d: felhasználói könyvtár elérési útja
A /lib/systemd/system könyvtár alatt fogjuk találni a syncthing@.service fájlt. Engedélyezzük az általunk létrehozott felhasználónak a szolgáltatás használatát:
systemctl enable syncthing@syncthing.service
Az első syncthing a futtatni kívánt szolgáltatás neve, míg a második syncthing a korábban létrehozott felhasználó. Az utasítás hatására létrejön egy symlink:
symlink /etc/systemd/system/multi-user.target.wants/syncthing@syncthing.service → /lib/systemd/system/syncthing@.service.
Indítsuk el a szolgáltatást:
systemctl start syncthing@syncthing.service
Ellenőrizzük, hogy a szolgáltatás elindult:
systemctl status syncthing@syncthing.service
Valami ilyesmit fogunk látni:
syncthing@syncthing.service - Syncthing - Open Source Continuous File Synchronization for syncthing
Loaded: loaded (/lib/systemd/system/syncthing@.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-12-29 15:56:10 CET; 9s ago
Docs: man:syncthing(1)
Main PID: 2256 (syncthing)
Tasks: 9 (limit: 1150)
Memory: 28.2M
CGroup: /system.slice/system-syncthing.slice/syncthing@syncthing.service
└─2256 /usr/bin/syncthing -no-browser -no-restart -logflags=0
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-******-******
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: QUIC listener ([::]:22000) starting
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: Loading HTTPS certificate: open /home/syncthing/.config/syncthing/https-cert.pem: no such file or directory
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: Creating new HTTPS certificate
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: TCP listener ([::]:22000) starting
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: GUI and API listening on 127.0.0.1:8384
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
dec 29 15:56:11 syncth syncthing[2256]: [7CGGB] INFO: My name is "syncth"
A szolgáltatás konfigurációs állománya a /home/syncthing/.config/syncthing/config.xml lesz. A szinkronizáció a /home/syncthing/Sync könyvtárba fog történni. Alapértelmezés szerint a webes adminisztrációs felület, a 127.0.0.1:8384 címen érhető el.
Apache2 beállítása
Én az Apache2 webszervert fogom használni a Syncthing alkalmazás kiszolgálására. Telepítsük- és konfiguráljuk a webszervert:
apt install apache2
Engedélyezzük a szükséges modulokat:
a2enmod proxy proxy_http systemctl restart apache2
Konfigurációs állomány létrehozása:
nano /etc/apache2/sites-available/syncthing.conf
<VirtualHost *:80>
ServerName syncth.vanyi.lan
ProxyPass / http://localhost:8384/
<Location />
ProxyPassReverse http://localhost:8384/
Require all granted
</Location>
</VirtualHost>
Engedélyezzük a konfigurációt, majd indítsuk újra a webszervert:
a2ensite syncthing.conf a2dissite 000-default.conf systemctl restart apache2
A default beállítást azért tiltottam le, mert a syncth.vanyi.lan domain név maga a szerverem neve, nem egy virtuális név. Így ha nem kapcsolom ki az alapértelmezett konfigurációt, az apache alapértelmezett weboldala jön be.
Legyen SSL
Telepítsük a Let’s Encrypt tanusítvány hatóság ingyenes tanusítványát. Először a szolgáltatás:
cd /usr/local/bin wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbot-auto --install-only
Majd telepítsük a tanusítványt:
certbot --apache
Tulajdonképpen el is készültünk. A weboldalon érdemes a bejelentkezéshez megadni a felhasználói nevet és jelszót. A bejegyzéshez készítéséhez a következő cikket használtam.