VPN към домашна LAN

VPN към домашна LAN

TL; DR: Инсталирам Wireguard на VPS, свързвам се с него от домашния си рутер на OpenWRT и получавам достъп до домашната си подмрежа от телефона си.

Ако поддържате личната си инфраструктура на домашен сървър или имате много IP-контролирани устройства у дома, тогава вероятно искате да имате достъп до тях от работа, от автобуса, влака и метрото. Най-често за подобни задачи IP се закупува от доставчика, след което портовете на всяка услуга се препращат навън.

Вместо това създадох VPN с достъп до моята домашна LAN. Предимствата на това решение:

  • прозрачност: Чувствам се като у дома си при всякакви обстоятелства.
  • Лекота: задайте го и го забравете, няма нужда да мислите за пренасочване на всеки порт.
  • Цена: Вече имам VPS; за такива задачи съвременен VPN е почти безплатен от гледна точка на ресурси.
  • сигурност: нищо не стърчи, можете да оставите MongoDB без парола и никой няма да ви открадне данните.

Както винаги, има минуси. Първо, ще трябва да конфигурирате всеки клиент поотделно, включително от страната на сървъра. Може да е неудобно, ако имате голям брой устройства, от които искате да получите достъп до услуги. Второ, може да имате LAN със същия обхват на работа - ще трябва да разрешите този проблем.

Имаме нужда от:

  1. VPS (в моя случай на Debian 10).
  2. OpenWRT рутер.
  3. Телефон.
  4. Домашен сървър с някаква уеб услуга за тестване.
  5. Правни ръце.

VPN технологията, която ще използвам, е Wireguard. Това решение също има силни и слаби страни, няма да ги описвам. За VPN използвам подмрежа 192.168.99.0/24, и в моята къща 192.168.0.0/24.

VPS конфигурация

Дори и най-мизерният VPS за 30 рубли на месец е достатъчен за бизнес, ако имате късмета да имате такъв грабвам.

Извършвам всички операции на сървъра като root на чиста машина; ако е необходимо, добавете `sudo` и адаптирайте инструкциите.

Wireguard нямаше време да бъде въведен в конюшнята, така че стартирах `apt edit-sources` и добавих backports в два реда в края на файла:

deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main

Пакетът се инсталира по обичайния начин: apt update && apt install wireguard.

След това генерираме двойка ключове: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Повторете тази операция още два пъти за всяко устройство, участващо във веригата. Променете пътя до ключовите файлове за друго устройство и не забравяйте за сигурността на личните ключове.

Сега подготвяме конфигурацията. Да подаде /etc/wireguard/wg0.conf конфиг е поставен:

[Interface] Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=

[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24

[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32

В раздела [Interface] са посочени настройките на самата машина и в [Peer] — настройки за тези, които ще се свържат с него. IN AllowedIPs разделени със запетаи, са посочени подмрежите, които ще бъдат насочени към съответния партньор. Поради това партньорите на „клиентските“ устройства в VPN подмрежата трябва да имат маска /32, всичко останало ще бъде маршрутизирано от сървъра. Тъй като домашната мрежа ще бъде маршрутизирана през OpenWRT, в AllowedIPs Добавяме домашната подмрежа на съответния партньор. IN PrivateKey и PublicKey разлагат съответно частния ключ, генериран за VPS и публичните ключове на партньорите.

На VPS всичко, което остава, е да изпълните командата, която ще изведе интерфейса и ще го добави към автоматично стартиране: systemctl enable --now wg-quick@wg0. Текущото състояние на връзката може да се провери с командата wg.

Конфигурация на OpenWRT

Всичко, от което се нуждаете за този етап, е в модула luci (уеб интерфейс OpenWRT). Влезте и отворете раздела Софтуер в системното меню. OpenWRT не съхранява кеш на машината, така че трябва да актуализирате списъка с налични пакети, като щракнете върху зеления бутон Актуализиране на списъците. След завършване закарайте във филтъра luci-app-wireguard и, гледайки прозореца с красиво дърво на зависимостите, инсталирайте този пакет.

В менюто Мрежи изберете Интерфейси и щракнете върху зеления бутон Добавяне на нов интерфейс под списъка със съществуващи. След въвеждане на името (също wg0 в моя случай) и избиране на WireGuard VPN протокол, се отваря формуляр за настройки с четири раздела.

VPN към домашна LAN

В раздела Общи настройки трябва да въведете частния ключ и IP адреса, подготвени за OpenWRT, заедно с подмрежата.

VPN към домашна LAN

В раздела Настройки на защитната стена свържете интерфейса към локалната мрежа. По този начин връзките от VPN ще влизат свободно в локалната зона.

VPN към домашна LAN

В раздела Peers щракнете върху единствения бутон, след което попълнете данните на VPS сървъра в актуализирания формуляр: публичен ключ, разрешени IP (трябва да насочите цялата VPN подмрежа към сървъра). В Хост на крайна точка и Порт на крайна точка въведете IP адреса на VPS с порта, посочен преди това съответно в директивата ListenPort. Проверете Route Allowed IPs за маршрути, които трябва да бъдат създадени. И не забравяйте да попълните Persistent Keep Alive, в противен случай тунелът от VPS към рутера ще бъде прекъснат, ако последният е зад NAT.

VPN към домашна LAN

VPN към домашна LAN

След това можете да запазите настройките и след това на страницата със списъка с интерфейси щракнете върху Запазване и прилагане. Ако е необходимо, изрично стартирайте интерфейса с бутона Рестартиране.

Настройка на смартфон

Ще ви трябва клиентът Wireguard, той е наличен в F-Droid, Google Пускайте и App Store. След като отворите приложението, натиснете знака плюс и в секцията Интерфейс въведете името на връзката, частния ключ (публичният ключ ще се генерира автоматично) и телефонния адрес с маската /32. В секцията Peer посочете VPS публичния ключ, адресна двойка: портът на VPN сървъра като крайна точка и маршрути към VPN и домашната подмрежа.

Удебелена екранна снимка от телефона
VPN към домашна LAN

Кликнете върху дискетата в ъгъла, включете я и...

Край

Сега можете да получите достъп до домашно наблюдение, да промените настройките на рутера или да правите каквото и да било на ниво IP.

Екранни снимки от местната област
VPN към домашна LAN

VPN към домашна LAN

VPN към домашна LAN

Източник: www.habr.com

Добавяне на нов коментар