Учир нь WireGuard ирээдүйн цөм Linux 5.6 хувилбарт би энэ VPN-ийг өөрийнхтэй хэрхэн хамгийн сайн нэгтгэхийг харахаар шийдсэн. .
Тоног төхөөрөмж
- Raspberry Pi 3 нь LTE модуль болон нийтийн IP хаягтай. Энд VPN сервер байх болно (цаашид үүнийг бичвэрт гэж нэрлэдэг захад явагч)
- Утас асаалттай Android, бүх харилцаа холбоонд VPN ашиглах ёстой
- Зөөврийн компьютер Linux, энэ нь зөвхөн сүлжээнд VPN ашиглах ёстой
VPN-д холбогдсон төхөөрөмж бүр бусад бүх төхөөрөмжтэй холбогдох боломжтой байх ёстой. Жишээлбэл, хэрэв хоёр төхөөрөмж хоёулаа VPN сүлжээний нэг хэсэг бол утас зөөврийн компьютер дээрх вэб серверт холбогдох боломжтой байх ёстой. Хэрэв тохиргоо нь маш энгийн бол та ширээний компьютерийг VPN-тэй (Ethernet-ээр дамжуулан) холбох талаар бодож болно.
Утастай болон утасгүй холболтууд цаг хугацаа өнгөрөх тусам аюулгүй байдал муудаж байгааг харгалзан үзэхэд (, и ), Би ашиглах талаар нухацтай бодож байна 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 Би аппликейшнийг суулгасан албан ёсны 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 сервер болгон ашиглах ёстой (шугам DNS), мөн бүх урсгалыг VPN хонгилоор дамжуулдаг (AllowedIPs = 0.0.0.0/0).
Файлыг мобайл төхөөрөмждөө хуулахын оронд та QR код руу хөрвүүлж болно.
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confQR кодыг консол руу ASCII хэлбэрээр гаргах болно. Үүнийг аппликейшнаас сканнердах боломжтой. Android VPN болон VPN туннелийг автоматаар тохируулна уу.
дүгнэлт
тохируулга WireGuard харьцуулахад зүгээр л ид шидийн OpenVPN.
Эх сурвалж: www.habr.com
