Қарапайым VPN орнату арқылы WireGuard және Raspberry Pi сервер ретінде

Өйткені WireGuard бөлігіне айналады болашақ өзек Linux 5.6 нұсқасында мен осы VPN-ді менің құрылғыммен қалай біріктіру керектігін көруді шештім Raspberry Pi жүйесіндегі LTE маршрутизаторы/кіру нүктесі.

Жабдық

  • LTE модулі және жалпы IP мекенжайы бар Raspberry Pi 3. Мұнда VPN сервері болады (бұдан әрі мәтінде ол деп аталады). шеткері)
  • Телефон қосулы Android, ол барлық байланыс үшін VPN пайдалануы керек
  • Ноутбук Linux, ол тек желі ішінде VPN пайдалануы керек

VPN желісіне қосылатын әрбір құрылғы барлық басқа құрылғыларға қосыла алуы керек. Мысалы, егер екі құрылғы да VPN желісінің бөлігі болса, телефон ноутбуктағы веб-серверге қосыла алуы керек. Орнату өте қарапайым болып шықса, жұмыс үстелін VPN желісіне қосу туралы ойлануға болады (Ethernet арқылы).

Сымды және сымсыз қосылымдардың уақыт өте келе қауіпсізі азайып бара жатқанын ескере отырып (мақсатты шабуылдар, KRACK WPA2 крекинг шабуылы и WPA3-ке қарсы айдаһар қанының шабуылы), мен пайдалануды шынымен қарастырып жатырмын WireGuard барлық құрылғыларым үшін, олар қандай ортада жұмыс істейтініне қарамастан.

Бағдарламалық жасақтаманы орнату

WireGuard қамтамасыз етеді алдын ала құрастырылған пакеттер көптеген дистрибуциялар үшін Linux, Windows и macOSӨтінімдер Android және iOS қолданба дүкендері арқылы жеткізіледі.

Менде ең соңғы 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 ресми Google App Store каталогынан.

Кілттерді орнату

Түйіндерді аутентификациялау үшін 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 wg-quick@wg0.service

Ноутбукте клиент конфигурациясы

Ноутбукта конфигурация файлын жасаңыз /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 wg-quick@wg0.service

Клиентті орнату 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

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster