Постављање једноставног ВПН-а са ВиреГуард и Распберри Пи као сервером

Јер ВиреГуард постаће део предстојећег Линук кернела 5.6, одлучио сам да видим како најбоље да интегришем овај ВПН са својим ЛТЕ рутер/приступна тачка на Распберри Пи.

Оборудование

  • Распберри Пи 3 са ЛТЕ модулом и јавном ИП адресом. Овде ће постојати ВПН сервер (у даљем тексту се зове едгевалкер)
  • Андроид телефон који мора да користи ВПН за све комуникације
  • Линук лаптоп који би требало да користи само ВПН унутар мреже

Сваки уређај који се повезује на ВПН мора бити у могућности да се повеже са свим другим уређајима. На пример, телефон би требало да буде у могућности да се повеже са веб сервером на лаптопу ако су оба уређаја део ВПН мреже. Ако се испостави да је подешавање прилично једноставно, онда можете размислити о повезивању радне површине са ВПН-ом (преко Етхернета).

Имајући у виду да жичне и бежичне везе временом постају све мање безбедне (циљани напади, КРАЦК ВПА2 напад на крековање и Драгонблоод напад на ВПА3), Озбиљно размишљам да користим ВиреГуард за све своје уређаје, без обзира у ком окружењу се налазе.

Инсталација софтвера

ВиреГуард пружа унапред компајлирани пакети за већину Линук, Виндовс и мацОС дистрибуција. Андроид и иОС апликације се испоручују преко директоријума апликација.

Имам најновији Федора Линук 31 и био сам превише лењ да прочитам упутство пре инсталирања. Управо сам нашао пакете wireguard-tools, инсталирао их, а затим нисам могао да схватим зашто ништа не ради. Даља истрага је открила да немам инсталиран пакет wireguard-dkms (са мрежним драјвером), али није био у спремишту моје дистрибуције.

Да сам прочитао упутства, предузео бих исправне кораке:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

Имам инсталирану Распбиан Бустер дистрибуцију на мом Распберри Пи, тамо већ постоји пакет wireguard, инсталирајте га:

$ sudo apt install wireguard

На свом Андроид телефону сам инсталирао апликацију ВиреГуард ВПН из званичног каталога Гоогле Апп Сторе-а.

Уградња кључева

За аутентификацију равноправних корисника, Вирегуард користи једноставну шему приватног/јавног кључа за аутентификацију ВПН равноправних корисника. Можете лако да креирате ВПН кључеве помоћу следеће команде:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

Ово нам даје три пара кључева (шест датотека). Нећемо се позивати на датотеке у конфигурацијама, али копирајте садржај овде: сваки кључ је један ред у басе64.

Креирање конфигурационе датотеке за ВПН сервер (Распберри Пи)

Конфигурација је прилично једноставна, направио сам следећу датотеку /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

Пар напомена:

  • На одговарајућим местима потребно је да уметнете линије из датотека са кључевима
  • Мој ВПН користи интерни опсег 10.200.200.0/24
  • За тимове PostUp/PostDown Имам спољни мрежни интерфејс вван0, ви можда имате други (на пример, етх0)

ВПН мрежа се лако подиже следећом командом:

$ sudo wg-quick up wg0

Један мали детаљ: као ДНС сервер који сам користио dnsmasq везан за мрежни интерфејс br0, додао сам и уређаје wg0 на листу дозвољених уређаја. У днсмаск-у се ово ради додавањем нове линије мрежног интерфејса у конфигурациони фајл /etc/dnsmasq.conf, на пример:

interface=br0
interface=wg0

Поред тога, додао сам иптабле правило да дозволи саобраћај на УДП порт за слушање (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Сада када све функционише, можемо да подесимо аутоматско покретање ВПН тунела:

$ sudo systemctl enable [email protected]

Конфигурација клијента на лаптопу

Направите конфигурациону датотеку на лаптопу /etc/wireguard/wg0.conf са истим подешавањима:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

Напомене:

  • Уместо едгевалкер-а потребно је да наведете јавни ИП или ВПН сервер
  • Постављањем AllowedIPs на 10.200.200.0/24, ми користимо само ВПН за приступ интерној мрежи. Саобраћај ка свим осталим ИП адресама/серверима ће наставити да иде кроз „нормалне“ отворене канале. Такође ће користити унапред конфигурисани ДНС сервер на лаптопу.

За тестирање и аутоматско покретање користимо исте команде wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Подешавање клијента на Андроид телефону

За Андроид телефон креирамо веома сличну конфигурациону датотеку (назовимо је mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

За разлику од конфигурације на лаптопу, телефон мора да користи наш ВПН сервер као ДНС сервер (линија DNS), а такође пропушта сав саобраћај кроз ВПН тунел (AllowedIPs = 0.0.0.0/0).

Уместо да копирате датотеку на свој мобилни уређај, можете да је конвертујете у КР код:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

КР код ће се приказати на конзоли као АСЦИИ. Може се скенирати из Андроид ВПН апликације и аутоматски ће поставити ВПН тунел.

Излаз

Подешавање ВиреГуард-а је једноставно магично у поређењу са ОпенВПН-ом.

Извор: ввв.хабр.цом

Додај коментар