Kể từ khi WireGuard cốt lõi tương lai Linux 5.6, tôi quyết định tìm hiểu cách tốt nhất để tích hợp VPN này với hệ thống của mình. .
Оборудование
- 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 đang bật Androidvà phải sử dụng VPN cho tất cả các hoạt động liên lạc.
- Máy tính xách tay Linux, và chỉ nên sử dụng VPN trong phạm vi 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 (, и ), Tôi đang nghiêm túc cân nhắc việc sử dụng WireGuard Áp dụng cho tất cả các thiết bị của tôi, bất kể chúng hoạt động trong môi trường nào.
Cài đặt phần mềm
WireGuard cung cấp đối với hầu hết các bản phân phối Linux, Windows и macOSĐơn đăng ký cho Android và iOS được phân phối thông qua các cửa hàng ứng dụng.
Tôi đang dùng phiên bản Fedora mới nhất. Linux 31, và trước khi cài đặt tôi quá lười đọc hướng dẫn sử dụng. Tôi chỉ tìm các gói hàng thô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 wireguardTrên điện thoại Android Tôi đã cài đặt ứng dụng từ danh mục chính thức của Google App Store.
Cài đặt các phím
Để xác thực các nút Wireguard Sử dụng sơ đồ khóa riêng/công khai đơn giản để xác thực các nút VPN. 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/32Mộ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/PostDownTô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=wg0Ngoà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 ACCEPTBâ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 wg-quick@wg0.serviceCấ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:51820Ghi 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
AllowedIPstrê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 wg-quick@wg0.serviceThiết lập máy khách cho Android-điện thoại
Dành cho điện thoại Android Chúng ta tạo một tệp cấu hình rất tương tự (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.confMã QR sẽ được xuất ra màn hình console dưới dạng ASCII. Có thể quét mã này từ ứng dụng. Android VPN và tự động cấu hình đường hầm VPN.
Đầu ra
điều chỉnh WireGuard đơn giản là kỳ diệu so với OpenVPN.
Nguồn: www.habr.com
