Себебі WireGuard
Жабдық
- LTE модулі және жалпы IP мекенжайы бар Raspberry Pi 3. Мұнда VPN сервері болады (бұдан әрі мәтінде ол деп аталады). шеткері)
- Барлық байланыстар үшін VPN пайдалану керек Android телефоны
- Linux ноутбугі желі ішінде тек VPN пайдалануы керек
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 сервері ретінде пайдалануы керек (line 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-мен салыстырғанда сиқырлы.
Ақпарат көзі: www.habr.com