Учир нь WireGuard
Тоног төхөөрөмж
- Raspberry Pi 3 нь LTE модуль болон нийтийн IP хаягтай. Энд VPN сервер байх болно (цаашид үүнийг бичвэрт гэж нэрлэдэг захад явагч)
- Бүх харилцаанд VPN ашиглах ёстой Android утас
- Сүлжээнд зөвхөн 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
Би Андройд утсан дээрээ програм суулгасан
Түлхүүр суурилуулах
Үе тэнгийн баталгаажуулалтын хувьд 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]
Андройд утсан дээр үйлчлүүлэгч тохируулах
Андройд утасны хувьд бид маш төстэй тохиргооны файл үүсгэдэг (үүнийг нэрлэе 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