Röviden összefoglalva: Beállítom a Wireguard-ot egy VPS-en, csatlakozom hozzá az OpenWRT otthoni routeremről, és hozzáférek az otthoni alhálózathoz a telefonommal.
Ha a személyes infrastruktúráját otthoni szerveren tartja, vagy sok IP-alapú eszköze van otthon, valószínűleg szeretne hozzáférni ezekhez a munkahelyéről, a buszból, vonatról vagy a metróról. A hasonló feladatokhoz általában IP-t vásárolnak a szolgáltatótól, majd az egyes szolgáltatások portjait nyitják meg.
Ehelyett VPN-t állítottam be a helyi hálózathoz való hozzáféréshez. Ennek a megoldásnak az előnyei:
- Átláthatóság: bármilyen körülmények között otthon érzem magam.
- Egyszerűség: beállítva és elfelejtve, nem kell a portok nyitásával foglalkozni.
- Ár: már van VPS-em, a modern VPN szinte ingyenes erőforrással az ilyen feladatokhoz.
- Biztonság: semmi nem lóg ki kívülre, lehet MongoDB jelszó nélkül, és senki nem fogja ellopni az adatokat.
Mint mindig, vannak hátrányai is. Először is, minden klienst külön-külön kell beállítania, beleértve a szerveroldalt is. Ez kényelmetlen lehet, ha sok eszközből szeretne hozzáférést a szolgáltatásokhoz. Másodszor, lehet, hogy a munkahelyén átfedésben van a lokális hálózata — ezt a problémát is meg kell oldani.
Szükségünk lesz:
- VPS-re (az én esetemben Debian 10-en).
- Router OpenWRT-n.
- Telefonra.
- Otthoni szerverre valamilyen webszolgáltatással teszteléshez.
- Közvetlen kéz.
VPN technológiaként a Wireguard-ot fogom használni. Ennek a megoldásnak is vannak erősségei és gyengeségei, de ezeket nem fogom leírni. A VPN-hez egy alhálózatot használok 192.168.99.0/24, otthon pedig nekem van 192.168.0.0/24.
A VPS konfigurációja
Az ügyhöz elegendő akár egy legolcsóbb VPS is, havi 30 rubelért, ha szerencséd van, hogy így tudod megkapni .
Minden műveletet gyökérfelhasználóként hajtok végre egy tiszta gépen, ha szükséges, adj hozzá `sudo`-t és igazítsd a utasításokat.
A Wireguard még nem került a stabil verzióba, ezért végrehajtom az `apt edit-sources` parancsot, és két sorral hozzáadom a backportokat a fájl végéhez:
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
A csomag a megszokott módon települ: apt update && apt install wireguard.
Ezután generálj egy kulcspárt: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Ezt a műveletet ismételd meg kétszer minden résztvevő eszköz számára a sémában. Cseréld ki a kulcsok fájlútvonalait a másik eszközre, és ne felejtsd el a titkos kulcsok biztonságát.
Most készítjük el a konfigurációt. A fájlba /etc/wireguard/wg0.conf a következő konfiguráció kerül:
[Interface]
Cím = 192.168.99.1/24
FigyelmeztetésiPort = 57953
PrivátKulcs = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=
[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24
[Peer] # Okostelefon
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32
A szakaszban [Interface] itt a gép saját beállításait adjuk meg, és [Peer] — beállítások azok számára, akik csatlakozni fognak. Az , a VPN-t csak a belső hálózathoz való hozzáféréshez használjuk. A forgalom minden más IP-címre/szerverre továbbra is a "szokásos" nyílt csatornákon halad. Emellett a laptopon előre beállított DNS-szerver is lesz használatban. vesszővel elválasztva adjuk meg azokat a hálózati alhálózatokat, amelyeket a megfelelő peerhez fogunk irányítani. Emiatt a VPN alhálózatban lévő kliens eszközöknek maszkot kell használniuk, /32, minden más a szerveren lesz irányítva. Mivel a hazai hálózat az OpenWRT-n keresztül lesz irányítva, , a VPN-t csak a belső hálózathoz való hozzáféréshez használjuk. A forgalom minden más IP-címre/szerverre továbbra is a "szokásos" nyílt csatornákon halad. Emellett a laptopon előre beállított DNS-szerver is lesz használatban. a megfelelő peerhez hozzáadjuk a hazai alhálózatot. Az PrivateKey és PublicKey helyezze el a VPS számára generált privát kulcsot és a peer-ek nyilvános kulcsait megfelelően.
A VPS-en csak annyit kell tennie, hogy elindítja a parancsot, amely aktiválja az interfészt és hozzáadja azt az automatikus indításhoz: systemctl enable --now wg-quick@wg0. A kapcsolatok aktuális állapotát a következő paranccsal ellenőrizheti: wg.
OpenWRT konfiguráció
Minden, ami ehhez a lépéshez szükséges, megtalálható a luci modulban (OpenWRT webes felülete). Jelentkezzen be, és a Rendszer menüben nyissa meg a Szoftver fülét. Az OpenWRT nem tárol gyorsítótárat a gépen, ezért frissítenie kell a elérhető csomagok listáját a zöld Frissítések gombra kattintva. A befejezés után a szűrőbe írja be: luci-app-wireguard és nézze meg a szép függőségi fa ablakot, majd telepítse ezt a csomagot.
A Hálózatok menüben válassza az Interfészeket és nyomja meg a zöld Új interfész hozzáadása gombot a már meglévő lista alatt. A név megadása után (szintén wg0 az én esetemben) és a WireGuard VPN protokoll kiválasztása után egy beállító űrlap jelenik meg négy füllel.

A Általános beállítások fülön meg kell adni a privát kulcsot és az OpenWRT-hez előkészített IP címet az alhálózattal együtt.

A Tűzfal beállítások fülön az interfészt be kell hozni a helyi hálózatba. Így a VPN-ből származó kapcsolatok szabadon bejuthatnak a helyi hálózatba.

A Peerek fülön nyomja meg az egyetlen gombot, majd a frissített űrlapban töltse ki a VPS kiszolgáló adatait: nyilvános kulcs, Allowed IPs (az összes VPN alhálózatot a kiszolgáló irányába kell irányítani). Az Endpoint Host és az Endpoint Port mezőkbe adja meg a VPS IP címét a korábban a ListenPort parancsban megadott porttal. Jelölje be az Allowed IP-k irányítása lehetőséget, hogy legyenek útvonalak. És обязательно töltse ki a Persistent Keep Alive-t, különben a VPS és az útválasztó közötti alagútnak megszakad, ha az utóbbi behind NAT.


Ezt követően mentheti a beállításokat, majd az interfészek listáján kattintson a Mentés és alkalmazás gombra. Szükség esetén indítsa el kifejezetten az interfészt a Restart gomb megnyomásával.
Okostelefon beállítása
Wireguard kliensre van szüksége, amely elérhető a , és az App Store-ban. Az alkalmazás megnyitása után nyomja meg a plusz jelet, és a Interface szekcióban adja meg a kapcsolat nevét, privát kulcsát (a nyilvános automatikusan generálódik) és a telefon címét a maszkával /32. A Peer szekcióban adja meg a VPS nyilvános kulcsát, a VPN szerver végpont páros címét: port, és a VPN- és otthoni alhálózatra mutató útvonalakat.
Kiemelt képernyőkép a telefonról

Nyomja meg a floppy lemez ikonját a sarokban, kapcsolja be, és…
Kész
Most már hozzáférhet a hazai monitorozáshoz, módosíthatja a router beállításait, vagy bármit megtehet IP szinten.
Helyi képernyőképek


Forrás: habr.com
