Mobiltelefon és számítógép közötti biztonságos adatátvitel helyi hálózaton is
2026-03-11
Műhely #linux #android #útmutató #wireguard #vpn #fájlmegosztás #biztonság #linux mint #szinkronizálás
Célok és megvalósítás elve
Mobiltelefon és számítógép közötti adatátvitel helyi hálózaton keresztül jól és hatékonyan megvalósítható, ezért olyan megoldást kerestem és alakítottam ki, amely Android rendszerű telefon és számítógép között képes gyors, mégis biztonságos adatmozgást biztosítani külső szolgáltatók bevonása nélkül. A telefon kliensként csatlakozik a számítógéphez, ahol egy szinkronizáló alkalmazás segítségével az adatátvitel automatizált módon működik, ugyanakkor a folyamat tudatosan manuálisan indítható, így teljes kontrollt ad az adatmozgás felett.
Megjegyzés: Ez a cikk elsősorban Linux felhasználóknak szól, ugyanakkor Windows felhasználók számára is érdemes lehet elolvasni, elsősorban az alkalmazott szemlélet és gondolatmenet miatt, inspirációként. A fájlmegosztás mind Linuxon, mind Windows alatt önálló szolgáltatásként működik, amely igény szerint ki- és bekapcsolható, valamint egyedileg konfigurálható. Linux környezetben mindez különösen egyszerűen megvalósítható néhány parancs kiadásával és egy szöveges konfigurációs fájl logikus módosításával vagy újraalkotásával.
A célom az volt, hogy ne kelljen felhőszolgáltatást használnom, az adatátvitel sebessége ne csökkenjen, és mindez biztonságos módon történjen, ezért a helyi hálózat védelmét tovább erősítettem egy WireGuard VPN kapcsolat kiépítésével a telefon és a számítógép között. Ennek eredményeként az adatátvitel nagy sebességgel zajlik, miközben a kommunikáció titkosított csatornán halad, így a hálózaton belüli forgalom védetté válik.
A megoldás fontos része volt a hálózati biztonság tudatos kezelése a számítógépen is, ezért nem a WireGuard virtuális interfészhez, hanem a tényleges hálózati csatolóhoz – vagyis a LAN vagy Wi-Fi interfészhez – rendeltem külön tűzfalszabályokat. Ez a hálózati csatoló egy elkülönített, például wg-home nevű szabálycsoportba került, amely alapértelmezetten nem engedélyezi a belső szolgáltatások elérését, kizárólag a WireGuard VPN működéséhez szükséges portot. A Samba szolgáltatás portjai csak a VPN-en keresztül érkező forgalom számára vannak engedélyezve, így a helyi hálózaton fizikailag jelen lévő eszközök sem érik el közvetlenül a megosztásokat.
Ennek a felépítésnek az az eredménye, hogy VPN kapcsolat nélkül a hálózati megosztások nem érhetők el, vagyis a Samba szolgáltatás kizárólag a védett VPN kapcsolaton keresztül használható, ami jelentősen csökkenti a támadási felületet a helyi hálózaton belül, még akkor is, ha egy nem megbízható eszköz csatlakozna ugyanarra a hálózatra.
A rendszer kialakítása arra is felkészít, hogy távoli vagy nem megbízható Wi-Fi hálózat esetén is használható maradjon, ilyen helyzetekre például a Tailscale VPN nyújthat alternatív megoldást a telefon és a számítógép közötti biztonságos kapcsolathoz. A Tailscale, valamint a WireGuard részletes konfigurációját és finomhangolását külön cikkekben tervezem bemutatni, ahogyan a különböző hálózati környezetekhez igazított döntési szempontokat is.
Az egész struktúrát azért alakítottam ki, mert szerettem volna az eszközeim között egy- vagy kétirányú adatátvitelt megvalósítani külső szolgáltatók nélkül, biztonságosan és nagy sebességgel.
A bemutatott megoldás az én esetemben Linux Mint operációs rendszer alatt működik, de a koncepció más Linux disztribúciókon, illetve akár Windows környezetben is megvalósítható.
Samba + WireGuard – biztonságos és teljesítménybarát fájlmegosztás helyi hálózaton
Ebben a cikkben egy tudatosan felépített Samba konfigurációt mutatok be, amely helyi hálózaton és WireGuard VPN-en keresztül is biztonságosan használható jelszavas autentikáció mellett, miközben elkerüli a felesleges lassításokat. A célom nem az volt, hogy minden létező biztonsági opciót bekapcsoljak, hanem az, hogy rétegenként a megfelelő védelmet alkalmazzam: amit a WireGuard már megold titkosítás szintjén, azt nem duplázom Sambában, viszont mindazt, amit a Samba hatékonyabban kezel – hitelesítés, integritásvédelem és jogosultságkezelés –, tudatosan kihasználom.
Megjegyzés: A cikk nem célja, hogy minden lehetséges Samba- és hálózati beállítást lefedjen. A bemutatott konfiguráció egy konkrét, működő struktúrát mutat be, amely kiindulási alapként szolgálhat, és az egyéni igényeknek megfelelően tovább finomítható.
Értelemszerűen a konfigurációban szereplő felhasználóneveket mindenki a saját rendszerének megfelelően módosítsa, ezek kizárólag egy általam létrehozott példát tükröznek. Ugyanez igaz a megosztásokra és a megosztott mappák felépítésére is, amelyek szabadon bővíthetők és alakíthatók az egyedi elképzelések és felhasználási szokások szerint.
Konfiguráció
A konfigurációs fájl szerkesztése előtt rendszergazdai jogosultságra van szükség. Én ilyenkor ideiglenesen átváltok root felhasználóra, így a szerkesztés során nem kell minden parancs elé külön sudo előtagot írni.
sudo su
Megjegyzés: A
sudo suparancs használatakor nincs időkorlátos kilépés, a root jogosultság addig él, amíg a shell munkamenetet nem zárom be.
A Samba konfigurációs fájl alapértelmezetten az /etc/samba/smb.conf útvonalon található, amelyet tetszőleges szövegszerkesztővel lehet módosítani.
Terminálos szerkesztés esetén például:
nano /etc/samba/smb.conf
Grafikus környezetben pedig használható egy egyszerű GUI-s szerkesztő is, például:
geany /etc/samba/smb.conf &
Konfigurációs fájl tartalma
# /etc/samba/smb.conf
[global]
server min protocol = SMB2
server max protocol = SMB3
security = user
ntlm auth = ntlmv2-only
client ntlmv2 auth = yes
lanman auth = no
client lanman auth = no
map to guest = never
restrict anonymous = 2
name resolve order = host
wins support = no
server signing = mandatory
access based share enum = yes
server multi channel support = yes
aio read size = 1
aio write size = 1
use sendfile = yes
min receivefile size = 16384
getwd cache = yes
directory name cache size = 100
kernel oplocks = yes
oplocks = yes
deadtime = 15
usershare allow guests = no
[IstvanShare]
comment = István Share
path = /home/istvan/Share
browseable = yes
writeable = yes
force user = istvan
force group = istvan
valid users = istvan
create mask = 0775
directory mask = 0775
force create mode = 0775
force directory mode = 0775
[KonvertaltKepek]
comment = Fényképek és videók
path = /home/istvan/Képek/Fényképek és videók
browseable = yes
read only = yes
force user = istvan
force group = istvan
valid users = istvan
[IstvanCloud]
comment = István Cloud
path = /home/istvan/Cloud
browseable = yes
writeable = yes
force user = istvan
force group = istvan
valid users = istvan
create mask = 0775
directory mask = 0775
force create mode = 0775
force directory mode = 0775
[IstvanKeePassXC]
comment = István KeePassXC
path = /home/istvan/Dokumentumok/Informatika/KeePassXC/Adatbázisok
browseable = yes
writeable = yes
force user = istvan
force group = istvan
valid users = istvan
create mask = 0775
directory mask = 0775
kernel oplocks = no
oplocks = no
strict locking = yes
posix locking = yes
Samba konfiguráció módosítása után – újraindítás és ellenőrzés
A konfigurációs fájl módosítása után a változtatások csak a szolgáltatás újratöltése vagy újraindítása után lépnek életbe, ezért ezt soha nem hagyom ki.
# Konfiguráció ellenőrzése
testparm
# Konfiguráció újratöltése
sudo systemctl reload smbd
# Teljes újraindítás nagyobb módosítások után
sudo systemctl restart smbd
Samba felhasználók kezelése
A Samba saját felhasználói adatbázist használ, ezért egy rendszerfelhasználó önmagában még nem jogosult a megosztások elérésére.
Új Samba felhasználó hozzáadása
sudo smbpasswd -a felhasznalo
Meglévő Samba felhasználó jelszavának módosítása
sudo smbpasswd felhasznalo
Felhasználók hozzáadása vagy módosítása után minden esetben újratöltöm a Samba szolgáltatást.
sudo systemctl reload smbd
Miért nincs SMB titkosítás WireGuard mellett?
WireGuard VPN használata esetén az adatforgalom már végponttól végpontig titkosított csatornán halad, ezért az SMB további titkosítása (smb encrypt = required) ebben a környezetben nem növeli érdemben a biztonságot. A dupla titkosítás ezzel szemben mérhető CPU-terhelést és késleltetést okozna, különösen nagyobb fájlok másolásánál. Emiatt tudatos döntés volt, hogy a titkosítást a WireGuard réteg végzi, míg a Samba a hitelesítésért, az adatforgalom integritásáért és a jogosultságkezelésért felel.
A konfiguráció során külön figyelmet fordítottam arra is, hogy a KeePass adatbázist tartalmazó megosztás eltérő paraméterezést kapjon. Az adatbázis-érzékeny fájlok esetében az opportunistic locking tiltásra került, miközben a szigorú és POSIX alapú fájllockolás engedélyezve van, így elkerülhető a cache-elésből vagy párhuzamos hozzáférésből adódó adatvesztés.
Összegzés
Ez a megoldás nem támaszkodik külső szolgáltatóra, gyors marad helyi hálózaton és VPN-en keresztül is, tudatosan kezeli a biztonsági rétegeket, és külön figyelmet fordít az adatbázis-érzékeny fájlokra. Nem „túlkonfigurált”, hanem átgondolt és célszerű biztonságot valósít meg.
A sorozat következő részében külön-külön foglalkozunk a Samba konfigurációban használt paraméterek áttekintésével és magyarázatával, a WireGuard beállítása és felépítése során alkalmazott megoldásokkal – beleértve a tűzfal szabály parancssoros létrehozását a hálózati csatolóhoz rendelve –, valamint a Tailscale-alapú távoli elérés lehetőségeivel és gyakorlati alkalmazásával.