Bởi vì WireGuard
Оборудование
- Raspberry Pi 3 với mô-đun LTE và địa chỉ IP công cộng. Sẽ có một máy chủ VPN ở đây (sau đây trong văn bản nó được gọi là người đi cạnh)
- Điện thoại Android phải sử dụng VPN cho mọi liên lạc
- Máy tính xách tay Linux chỉ nên sử dụng VPN trong mạng
Mọi thiết bị kết nối với VPN phải có khả năng kết nối với tất cả các thiết bị khác. Ví dụ: điện thoại có thể kết nối với máy chủ web trên máy tính xách tay nếu cả hai thiết bị đều là một phần của mạng VPN. Nếu quá trình thiết lập khá đơn giản, thì bạn có thể nghĩ đến việc kết nối máy tính để bàn với VPN (thông qua Ethernet).
Xét rằng các kết nối có dây và không dây ngày càng trở nên kém an toàn hơn theo thời gian (
Cài đặt phần mềm
WireGuard cung cấp
Tôi có Fedora Linux 31 mới nhất và tôi quá lười đọc hướng dẫn trước khi cài đặt. Vừa tìm thấy các gói wireguard-tools
, cài đặt chúng và sau đó không thể hiểu tại sao không có gì hoạt động. Điều tra sâu hơn cho thấy tôi chưa cài đặt gói này wireguard-dkms
(với trình điều khiển mạng), nhưng nó không có trong kho phân phối của tôi.
Nếu tôi đã đọc hướng dẫn, tôi sẽ thực hiện các bước chính xác:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
Tôi đã cài đặt bản phân phối Raspbian Buster trên Raspberry Pi của mình, ở đó đã có sẵn một gói rồi wireguard
, cài đặt nó:
$ sudo apt install wireguard
Trên điện thoại Android của tôi, tôi đã cài đặt ứng dụng
Cài đặt các phím
Để xác thực ngang hàng, Wireguard sử dụng sơ đồ khóa riêng/chung đơn giản để xác thực các VPN ngang hàng. Bạn có thể dễ dàng tạo khóa VPN bằng lệnh sau:
$ 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
Điều này cung cấp cho chúng tôi ba cặp khóa (sáu tệp). Chúng tôi sẽ không đề cập đến các tệp trong cấu hình mà sao chép nội dung ở đây: mỗi khóa là một dòng trong base64.
Tạo file cấu hình cho máy chủ VPN (Raspberry Pi)
Cấu hình khá đơn giản, mình tạo file sau /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
Một vài lưu ý:
- Ở những nơi thích hợp, bạn cần chèn dòng từ tệp bằng phím
- VPN của tôi đang sử dụng băng tần nội bộ
10.200.200.0/24
- Đối với các đội
PostUp
/PostDown
Tôi có giao diện mạng bên ngoài wwan0, bạn có thể có giao diện mạng khác (ví dụ: eth0)
Mạng VPN có thể dễ dàng được nâng cấp bằng lệnh sau:
$ sudo wg-quick up wg0
Một chi tiết nhỏ: là máy chủ DNS tôi đã sử dụng dnsmasq
gắn liền với giao diện mạng br0
, Tôi cũng đã thêm thiết bị wg0
vào danh sách các thiết bị được phép. Trong dnsmasq, việc này được thực hiện bằng cách thêm một dòng giao diện mạng mới vào tệp cấu hình /etc/dnsmasq.conf
, ví dụ:
interface=br0
interface=wg0
Ngoài ra, tôi đã thêm quy tắc iptable để cho phép lưu lượng truy cập vào cổng nghe UDP (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT
Bây giờ mọi thứ đã hoạt động, chúng ta có thể thiết lập khởi chạy tự động đường hầm VPN:
$ sudo systemctl enable [email protected]
Cấu hình máy khách trên máy tính xách tay
Tạo file cấu hình trên laptop /etc/wireguard/wg0.conf
với cùng các cài đặt:
[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
Ghi chú:
- Thay vì edgewalker, bạn cần chỉ định máy chủ IP công cộng hoặc máy chủ VPN
- Bằng cách thiết lập
AllowedIPs
trên10.200.200.0/24
, chúng tôi chỉ sử dụng VPN để truy cập mạng nội bộ. Lưu lượng truy cập đến tất cả các địa chỉ IP/máy chủ khác sẽ tiếp tục đi qua các kênh mở “bình thường”. Nó cũng sẽ sử dụng máy chủ DNS được cấu hình sẵn trên máy tính xách tay.
Để thử nghiệm và khởi chạy tự động, chúng tôi sử dụng các lệnh tương tự wg-quick
и systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Thiết lập ứng dụng khách trên điện thoại Android
Đối với điện thoại Android, chúng tôi tạo một tệp cấu hình rất giống nhau (hãy gọi nó là 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
Không giống như cấu hình trên máy tính xách tay, điện thoại phải sử dụng máy chủ VPN của chúng tôi làm máy chủ DNS (dòng DNS
) và cũng chuyển tất cả lưu lượng truy cập qua đường hầm VPN (AllowedIPs = 0.0.0.0/0
).
Thay vì sao chép tệp vào thiết bị di động, bạn có thể chuyển đổi tệp thành mã QR:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
Mã QR sẽ xuất ra bảng điều khiển dưới dạng ASCII. Nó có thể được quét từ ứng dụng VPN Android và sẽ tự động thiết lập đường hầm VPN.
Đầu ra
Việc thiết lập WireGuard đơn giản là điều kỳ diệu so với OpenVPN.
Nguồn: www.habr.com