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.