Анткени WireGuard
жабдуулар
- Raspberry Pi 3 LTE модулу жана коомдук IP дареги менен. Бул жерде VPN сервери болот (мындан ары текстте ал деп аталат edgewalker)
- Бардык байланыштар үчүн VPN колдонушу керек болгон Android телефону
- Тармак ичинде VPN гана колдонушу керек болгон Linux ноутбуку
VPNге туташкан ар бир түзмөк башка бардык түзмөктөргө туташа алышы керек. Мисалы, эки түзмөк тең VPN тармагынын бир бөлүгү болсо, телефон ноутбуктагы веб-серверге туташа алышы керек. Орнотуу абдан жөнөкөй болуп чыкса, анда сиз иш тактасын VPNге (Ethernet аркылуу) туташтыруу жөнүндө ойлонсоңуз болот.
Убакыттын өтүшү менен зымдуу жана зымсыз байланыштар азыраак коопсуз болуп баратканын эске алсак (
орнотулууда программа
WireGuard камсыз кылат
Менде акыркы Fedora Linux 31 бар жана орнотуудан мурун окуу куралын окууга жалкоо болдум. Жаңы эле пакеттерди таптым wireguard-tools
, аларды орнотуп, анан эмне үчүн эч нерсе иштебей жатканын түшүнө алган жок. Андан аркы иликтөөлөр менде пакет орнотулган эмес экенин көрсөттү wireguard-dkms
(тармак драйвери менен), бирок ал менин бөлүштүрүү репозиторийинде болгон эмес.
Эгерде мен көрсөтмөлөрдү окуган болсом, анда мен туура кадамдарды жасамакмын:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
Менин Raspberry Piде Raspbian Buster дистрибьютору орнотулган, ал жерде пакет бар wireguard
, аны орнотуу:
$ sudo apt install wireguard
Мен Android телефонума тиркемени орнотуп койдум
Ачкычтарды орнотуу
Теңдештердин аутентификациясы үчүн Wireguard VPN курбуларынын аныктыгын текшерүү үчүн жөнөкөй жеке/ачык ачкыч схемасын колдонот. Төмөнкү буйрукту колдонуп VPN ачкычтарын оңой түзө аласыз:
$ 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
Бул бизге үч негизги жуп (алты файл) берет. Конфигурациялардагы файлдарга кайрылбайбыз, бирок мазмунду бул жерге көчүрүңүз: ар бир ачкыч base64 бир саптан турат.
VPN сервери үчүн конфигурация файлын түзүү (Raspberry Pi)
Конфигурация абдан жөнөкөй, мен төмөнкү файлды түздүм /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
Бир нече эскертүү:
- Тиешелүү жерлерде баскычтар менен файлдардан сызыктарды киргизүү керек
- Менин VPN ички тилкесин колдонуп жатат
10.200.200.0/24
- Командалар үчүн
PostUp
/PostDown
Менде wwan0 тышкы тармак интерфейси бар, сизде башка болушу мүмкүн (мисалы, eth0)
VPN тармагы төмөнкү буйрук менен оңой көтөрүлөт:
$ sudo wg-quick up wg0
Бир кичинекей деталь: мен колдонгон DNS сервери катары dnsmasq
тармак интерфейси менен байланышкан br0
, Мен дагы түзмөктөрдү коштум wg0
уруксат түзмөктөрдүн тизмесине. dnsmasqда бул конфигурация файлына жаңы тармак интерфейс линиясын кошуу менен жасалат /etc/dnsmasq.conf
Мисалы:
interface=br0
interface=wg0
Кошумча, мен UDP угуу портуна (51280) трафикке уруксат берүү үчүн iptable эрежесин коштум:
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT
Эми баары иштеп жатат, биз VPN туннелин автоматтык түрдө ишке киргизе алабыз:
$ 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
Эскертүүлөр:
- Edgewalkerдин ордуна коомдук IP же VPN серверинин хостун көрсөтүшүңүз керек
- Жөндөө менен
AllowedIPs
боюнча10.200.200.0/24
, биз ички тармакка кирүү үчүн гана VPN колдонобуз. Бардык башка IP даректерге/серверлерге трафик "кадимки" ачык каналдар аркылуу уланат. Ал ошондой эле ноутбукта алдын ала конфигурацияланган DNS серверин колдонот.
Сыноо жана автоматтык ишке киргизүү үчүн биз ошол эле буйруктарды колдонобуз wg-quick
и systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Android телефонуна кардарды орнотуу
Android телефону үчүн биз абдан окшош конфигурация файлын түзөбүз (келгиле, аны чакыралы 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
Ноутбуктагы конфигурациядан айырмаланып, телефон биздин VPN серверибизди DNS сервери катары колдонушу керек (сап DNS
), ошондой эле бардык трафикти VPN туннели аркылуу өткөрөт (AllowedIPs = 0.0.0.0/0
).
Файлды мобилдик түзмөгүңүзгө көчүрүүнүн ордуна, сиз аны QR кодуна айландырсаңыз болот:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
QR коду консолго ASCII катары чыгат. Аны Android VPN колдонмосунан сканерлеп алса болот жана автоматтык түрдө VPN туннелин орнотот.
жыйынтыктоо
WireGuard орнотуу OpenVPNге салыштырмалуу сыйкырдуу.
Source: www.habr.com