Јер ВиреГуард
Оборудование
- Распберри Пи 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
КР код ће се приказати на конзоли као АСЦИИ. Може се скенирати из Андроид ВПН апликације и аутоматски ће поставити ВПН тунел.
Излаз
Подешавање ВиреГуард-а је једноставно магично у поређењу са ОпенВПН-ом.
Извор: ввв.хабр.цом