Энгийн VPN тохируулах нь WireGuard болон Raspberry Pi-г сервер болгон ашигладаг

Учир нь WireGuard хэсэг болно ирээдүйн цөм Linux 5.6 хувилбарт би энэ VPN-ийг өөрийнхтэй хэрхэн хамгийн сайн нэгтгэхийг харахаар шийдсэн. Raspberry Pi дээрх LTE чиглүүлэгч/ хандалтын цэг.

Тоног төхөөрөмж

  • Raspberry Pi 3 нь LTE модуль болон нийтийн IP хаягтай. Энд 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 сервер болгон ашиглах ёстой (шугам 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