Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Thiết lập VPN tự lưu trữ bằng Wireguard

Một VPN (Virtual Private Network) cho phép người dùng kết nối với một mạng riêng từ xa như thể máy tính của người dùng đã được kết nối trực tiếp đến mạng riêng. Công nghệ này ban đầu được phát triển để cho phép truy cập từ xa vào mạng riêng nội bộ của công ty, đối với những nhân viên không thực sự có mặt tại vị trí của mạng nội bộ.

Máy chủ VPN được triển khai tại vị trí của mạng nội bộ. Máy chủ này nằm trên mạng công cộng và nhân viên có thể truy cập bằng máy khách VPN. Xác thực là cần thiết để kết nối với Máy chủ VPN. Giao tiếp giữa Máy chủ VPN và Máy khách VPN được bảo mật bằng giao thức đường hầm. Lưu ý rằng giao tiếp này có thể được mã hóa hoặc không, nhưng thông thường trong hầu hết các giao thức VPN, nó được mã hóa.

Một cách sử dụng khác của VPN là để ẩn danh khi truy cập Internet hoặc để vượt qua các giới hạn địa lý được áp đặt khi truy cập một số trang web. Trong những trường hợp như vậy, mạng mà người dùng muốn kết nối không phải là mạng riêng, mà thay vào đó, nó là Internet.

Nhiều giao thức VPN đã được phát triển trong nhiều năm. Các giao thức này sử dụng các giao thức đường hầm khác nhau và các thuật toán mã hóa để giao tiếp giữa máy chủ và máy khách.

Một giao thức như vậy, đang được sử dụng rộng rãi gần đây, là Wireguard . Wireguard nhẹ hơn, đơn giản hơn và hiệu suất hơn các giao thức VPN truyền thống được sử dụng phổ biến như OpenVPN, IPSec. Nó đã được triển khai cho Windows, Mac OS và một số lượng lớn các bản phân phối Linux. Trong Linux, nó được thực hiện như một mô-đun hạt nhân. Nó có sẵn trong kho lưu trữ chính thức của Ubuntu 20.04.

Trong bài viết này, chúng ta sẽ xem cách thiết lập Máy chủ và Máy khách Wireguard VPN trong Ubuntu 20.04.

Cài đặt

Đối với bài viết này, tôi đang thiết lập Máy chủ Wireguard trên Ubuntu 20.04 Linode và Máy khách Wireguard trên máy cục bộ của tôi với Ubuntu 20.04.

Gói wireguardcài đặt cả Máy chủ và Máy khách Wireguard. Chạy lệnh sau trên cả máy chủ và máy khách.

sudo apt install wireguard

Cấu hình máy chủ

Khóa bảo mật

Chúng tôi cần tạo một tập hợp các cặp khóa công khai / riêng tư để xác thực và bảo mật kết nối Wireguard. Điều này có thể được thực hiện bằng cách sử dụng các lệnh sau:

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee private_key | wg pubkey > public_key

Lưu ý rằng chúng tôi đang thực hiện tất cả các tác vụ cấu hình với tư cách là một siêu người dùng. Lý do là quyền truy cập vào thư mục /etc/wireguardbị ngăn chặn đối với người dùng bình thường và không thể đạt được quyền truy cập thư mục chỉ với các đặc quyền sudo cho người dùng bình thường.

Tiếp theo, chúng tôi đặt mặt nạ tạo tệp thành077 . Điều này có nghĩa là bất cứ khi nào một tệp mới được tạo trong thư mục này bằng bất kỳ quá trình nào, quyền của nó sẽ tự động được che bằng 077. Ví dụ: nếu tệp được tạo trong thư mục này với quyền 777, tệp đó sẽ tự động bị che và quyền có hiệu lực trở thành 700. Điều này được thực hiện để chỉ chủ sở hữu tệp mới có tất cả quyền đối với tệp và những người khác không có quyền.

Trên dòng tiếp theo, chúng tôi tạo cặp khóa công khai / riêng tư cho máy chủ. Chúng được lưu trong các tệp private_keypublic_key. Để xem các phím, hãy chạy:

cat private_key
cat public_key

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Sao chép khóa cá nhân, chúng ta cần nó trong bước tiếp theo.

Lưu ý: Không bao giờ chia sẻ khóa riêng tư của bạn một cách công khai!

Tập tin cấu hình

Hãy tạo một tệp cấu hình cho Máy chủ Wireguard. Bạn có thể chọn bất kỳ tên nào cho tệp. Chúng tôi sẽ tạo một tệp wg0.conftrong ví dụ này.

vim wg0.conf

Thêm phần sau vào tệp.

[Interface]
Address = 10.20.43.1/24
SaveConfig = true
ListenPort = 51190
PrivateKey = 

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o  -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o  -j MASQUERADE

Dán Khóa cá nhân mà chúng tôi đã sao chép trước đó vào dòng 5 trong đoạn mã trên.

Chúng ta phải định cấu hình Wireguard trên một mạng con (ảo) khác với Địa chỉ IP của máy chủ. Ở đây, tôi đã sử dụng 10.20.43.1 cho máy chủ và sẽ sử dụng 10.20.43.2 cho máy khách. Bất kỳ mạng con nào cũng có thể được sử dụng tại đây. Để lấy Địa chỉ IP của máy chủ và giao diện, hãy chạy:

ifconfig

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Phần được đánh dấu là Địa chỉ IP

Lưu ý Địa chỉ IP của máy chủ. Điều này là bắt buộc trong quá trình cấu hình máy khách.

Giao diện được sử dụng bởi máy chủ, như trong hình trên, là eth0. Tên giao diện có thể khác nhau tùy theo mạng của người dùng, có thể là wlan0hoặc wlp2s0trong trường hợp người dùng được kết nối với mạng WiFi bằng thẻ không dây.

Thay thế trong PostUpPostDownbằng giao diện của bạn; trong ví dụ này là như vậy eth0. PostUpvà các PostDownchỉ thị được sử dụng để chỉ định các lệnh nào sẽ được chạy khi máy chủ khởi động và dừng tương ứng. Trong ví dụ của chúng tôi, chúng tôi sử dụng iptableslệnh để đặt các quy tắc IP sao cho Địa chỉ IP của máy chủ được chia sẻ bởi các máy khách. Các quy tắc sẽ giảm xuống khi máy chủ dừng.

Lưu và thoát khỏi tệp. Khi sử dụng vim, nhấn Esc , sau đó gõ :wqvà nhấn Enter để lưu và thoát.

Nếu bạn đang sử dụng ufwtường lửa trên máy chủ, chúng tôi cần cho phép kết nối UDP tới cổng dành cho máy chủ VPN, 51190.

ufw allow 51190/udp

Bắt đầu dịch vụ

Bây giờ khi cấu hình xong, chúng ta có thể bắt đầu dịch vụ Wireguard VPN.

Để cho phép dịch vụ bắt đầu lúc khởi động, hãy chạy:

systemctl enable [email protected]

Lưu ý rằng đây wg0là tên của tệp cấu hình.

Để bắt đầu dịch vụ, hãy chạy:

service [email protected] start

Xác minh rằng dịch vụ đã bắt đầu thành công:

service [email protected] status

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Xác minh rằng giao diện chúng tôi tạo trong tệp cấu hình đã bắt đầu bằng cách sử dụng lệnh IP.

ip a show wg0

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Máy chủ Wireguard VPN hiện đã được thiết lập và đang chạy. Hãy cấu hình máy khách ngay bây giờ.

Cấu hình máy khách

Cấu hình máy khách cho Wireguard ít nhiều giống với cấu hình máy chủ. Chúng tôi tạo các khóa cho máy khách, sau đó tạo tệp cấu hình.

Khóa bảo mật

Để tạo cặp khóa công khai / riêng tư cho máy khách, hãy chạy:

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key

Các khóa công khai và riêng tư cho máy khách hiện được tạo tương ứng trong các tệp client_private_keyclient_public_key.

Kiểm tra xem chúng đã được tạo bằng catlệnh.

cat client_private_key
cat client_public_key

Sao chép khóa cá nhân được hiển thị khi chúng tôi cần thêm nó vào tệp cấu hình cho ứng dụng khách.

Tập tin cấu hình

Tạo tệp cấu hình với bất kỳ tên nào bạn muốn. Chúng tôi sẽ tạo nó với tên wg0-clientcho ví dụ này.

vim wg0-client.conf

Thêm cấu hình sau.

[Interface]
# IP Address and Private Key of the Client
Address = 10.20.43.2/24
PrivateKey = 

[Peer]
# Public key, IP Address and Port of the Server
PublicKey = 
Endpoint = :51190
AllowedIPs = 0.0.0.0/0, ::/0

Nhập địa chỉ mạng con cho máy khách. Như đã mô tả trước đây, chúng tôi sử dụng 10.20.43.2 cho máy khách trong ví dụ này.

Thêm khóa cá nhân của ứng dụng khách đã tạo ở bước trước vào dòng 4 trong mã cấu hình ở trên.

Trong 'Peer', chúng tôi thêm thông tin về máy chủ Wireguard VPN mà chúng tôi muốn kết nối.

Nhập khóa công khai của máy chủ. Nhập Địa chỉ IP của máy chủ , mà chúng tôi đã lưu ý trước đó và cổng ở định dạng nhất định đối với Điểm cuối . Đây là cổng mà chúng tôi đã chỉ định trong tệp cấu hình máy chủ và trên đó dịch vụ VPN trên máy chủ đã bắt đầu.

Các IP được phép phải được nhập như đã cho (0.0.0.0/0) để mọi yêu cầu về IP công cộng động được ứng dụng khách sử dụng sẽ luôn chuyển tiếp đến máy chủ VPN.

Lưu và thoát khỏi tệp. Khi sử dụng vim, nhấn Esc , sau đó gõ :wqvà nhấn Enter để lưu và thoát.

Cho phép dịch vụ khách chạy với mỗi lần khởi động và khởi động nó.

systemctl enable [email protected]
service [email protected] start

Xác minh xem dịch vụ đã bắt đầu chưa.

service [email protected] status

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Thêm ngang hàng vào máy chủ

Bây giờ chúng ta có máy chủ và máy khách VPN đang hoạt động. Tuy nhiên, một đường hầm an toàn giữa cả hai sẽ không được thiết lập trừ khi chúng tôi thiết lập một kết nối ngang hàng giữa máy chủ và máy khách.

Quay lại máy chủ. Đầu tiên, dừng dịch vụ VPN .

service [email protected] stop

Tiếp theo, mở tệp cấu hình để thêm cấu hình cho ngang hàng (máy khách).

vim /etc/wireguard/wg0.conf

Nối các dòng sau vào tệp.

[Peer]
PublicKey = 
AllowedIPs = 10.20.43.2/32

Bây giờ, hãy khởi động lại dịch vụ VPN .

service [email protected] start

Đó là nó! Đây là tất cả cấu hình cần thiết để thiết lập máy khách và máy chủ Wireguard VPN. Bây giờ hãy thử nghiệm VPN của chúng tôi.

Kiểm tra VPN

Đầu tiên, hãy thực hiện một ping đơn giản từ máy khách đến máy chủ để đảm bảo giao tiếp đường hầm VPN hoạt động. Chạy phần sau trên máy khách :

ping 10.20.43.1

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Tiếp theo, mở trình duyệt web và mở bất kỳ trang web nào để kiểm tra xem bạn có thể kết nối Internet từ máy khách hay không. Bạn cũng có thể kiểm tra kết nối internet của mình từ dòng lệnh bằng cách sử dụng wget.

wget 

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Bây giờ, chúng tôi đã kiểm tra kết nối đường hầm và kết nối Internet. Nếu cả hai đều hoạt động, bây giờ chúng ta cần đảm bảo rằng tất cả lưu lượng truy cập internet đến máy khách đều đi qua máy chủ.

Đối với điều này, chúng tôi chỉ cần kiểm tra Địa chỉ IP của máy khách như đã thấy trên Internet. Một cách để làm điều đó là truy cập whatsmyip.org . Hoặc từ dòng lệnh khác, chúng ta có thể truy vấn một dịch vụ tương tự khác được gọi là thông tin IP, sử dụng Curl.

Chạy phần sau trên máy khách

curl https://ipinfo.io/ip

Cách thiết lập Máy chủ và Máy khách WireGuard VPN trên Ubuntu 20.04

Đúng. Đây là Địa chỉ IP công khai của Linode nơi máy chủ VPN được lưu trữ. Đây là cách đạt được tính ẩn danh khi sử dụng VPN, vì trên Internet giờ đây IP của máy chủ VPN được nhìn thấy chứ không phải của máy tính của bạn.

Phần kết luận

Dễ dàng thiết lập là một trong những lợi thế quan trọng nhất của Wireguard so với phần mềm VPN truyền thống như OpenVPN, phần mềm này cần kiến ​​thức mạng và định tuyến cao hơn để thiết lập. Tuy nhiên, thiếu tài liệu chính thức chi tiết về Wireguard, điều này có thể gây ra sự cố nếu thiết lập Wireguard của bạn gặp lỗi hoặc không hoạt động như mong đợi.

Tuy nhiên, Wireguard là một lựa chọn tuyệt vời nếu bạn muốn có một VPN tự lưu trữ để liên lạc an toàn qua Internet. Để tìm hiểu thêm về Wireguard cũng như các giao thức và công nghệ mà nó sử dụng, bạn có thể xem trang web chính thức .


Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Ubuntu phổ biến vì tính mạnh mẽ và tương đối ít lỗi. Nhưng chắc chắn không phải là không có vấn đề. Một trong những vấn đề như vậy là với trình điều khiển Wi-Fi của nó. Bạn có thể bật nguồn hệ thống của mình chỉ khi thấy rằng Wi-Fi của bạn không hoạt động.

Cách di chuyển tệp Linux bằng lệnh Mv

Cách di chuyển tệp Linux bằng lệnh Mv

Mặc dù bạn có thể đã biết cách di chuyển tệp trong Linux bằng trình duyệt tệp GUI, nhưng bạn có thể tự hỏi liệu có lệnh di chuyển trong thiết bị đầu cuối cho phép bạn nhanh chóng di chuyển tệp đến các thư mục khác nhau hay không. Lệnh mv là lệnh bạn muốn và nó dễ sử dụng với cú pháp đơn giản và một số cờ an toàn tùy chọn.

10 bản phân phối Linux tốt nhất dựa trên Debian

10 bản phân phối Linux tốt nhất dựa trên Debian

Debian tiêu chuẩn và các phiên bản nhánh phổ biến của nó là Ubuntu là những lựa chọn tuyệt vời cho hệ thống Linux, nhưng nếu bạn có nhu cầu chuyên biệt hơn, bạn có thể muốn có một bản thay thế Debian.

10 phân phối Linux tốt nhất cho nhà phát triển

10 phân phối Linux tốt nhất cho nhà phát triển

Mặc dù Linux có thể không phải là hệ điều hành ưa thích đối với người dùng bình thường, nhưng nó là lựa chọn hàng đầu của hầu hết các nhà phát triển và lập trình viên. Linux là một hệ điều hành thực tế hơn, được thiết kế rõ ràng với lập trình và các nhà phát triển.

Tìm hiểu cách cài đặt Npm và Node.js trên Ubuntu

Tìm hiểu cách cài đặt Npm và Node.js trên Ubuntu

Node.js thực sự là một môi trường thời gian chạy JavaScript đa nền tảng mã nguồn mở. Với Node.js được bật, bạn có thể chạy JavaScript trên máy Ubuntu của mình mà không phải lo lắng về việc mở bất kỳ trình duyệt nào. Nó được xây dựng trên công cụ JavaScript V8 của Chrome và nó có thể được cài đặt theo nhiều cách trên Linux.

Cách bật SSH trên Ubuntu 20.04

Cách bật SSH trên Ubuntu 20.04

Truy cập an toàn vào máy Ubuntu của bạn từ mọi nơi

Cách tắt thanh Dock Ubuntu trên Ubuntu 20.04

Cách tắt thanh Dock Ubuntu trên Ubuntu 20.04

Đôi khi tốt hơn là rời bến tàu và đi thuyền đi!

Cách tạo người dùng Sudo trên Ubuntu 20.04 LTS

Cách tạo người dùng Sudo trên Ubuntu 20.04 LTS

Cấp quyền root cho bất kỳ người dùng nào có sudo trên Ubuntu 20.04 LTS

Cách thay đổi mật khẩu gốc trên Ubuntu 20.04

Cách thay đổi mật khẩu gốc trên Ubuntu 20.04

Đặt, đặt lại và thay đổi mật khẩu gốc trong Ubuntu 20.04

Cách cài đặt máy chủ FTP trên Ubuntu trong 5 bước

Cách cài đặt máy chủ FTP trên Ubuntu trong 5 bước

Nếu bạn đang thiết lập một máy chủ Linux, bạn sẽ cần quyền truy cập FTP. Điều này có nghĩa là trước tiên phải cài đặt một máy chủ FTP trên Linux. Đây phải là một trong những điều đầu tiên bạn làm sau khi cài đặt hệ điều hành máy chủ của mình.

Cách cài đặt Google Chrome trên Ubuntu 20.04

Cách cài đặt Google Chrome trên Ubuntu 20.04

Hướng dẫn nhanh để cài đặt Google Chrome từ dòng lệnh trên Ubuntu 20.04

Cách cài đặt Notepadqq trên Ubuntu 20.04, một giải pháp thay thế Notepad ++ xứng đáng

Cách cài đặt Notepadqq trên Ubuntu 20.04, một giải pháp thay thế Notepad ++ xứng đáng

Tìm kiếm một giải pháp thay thế xứng đáng cho Notepad ++ trên Ubuntu? Không cần tìm đâu xa hơn ứng dụng Notepadqq miễn phí

Cách cập nhật Firefox từ Terminal trên PC chạy Ubuntu Linux

Cách cập nhật Firefox từ Terminal trên PC chạy Ubuntu Linux

Tìm hiểu cách cập nhật Firefox từ Terminal trên PC chạy Ubuntu Linux

Cách cài đặt Git trên Ubuntu 20.04 LTS

Cách cài đặt Git trên Ubuntu 20.04 LTS

Một trong những thứ đầu tiên bạn nên cài đặt trên máy Linux của mình

Cách khắc phục lỗi make: not found trong Ubuntu

Cách khắc phục lỗi make: not found trong Ubuntu

Lệnh make có lẽ là một trong những lệnh được sử dụng rộng rãi nhất trong hệ sinh thái Linux. Lệnh này được sử dụng để xây dựng và biên dịch chương trình trực tiếp từ mã nguồn.

Cách sao chép và dán trên Chromebook

Cách sao chép và dán trên Chromebook

Điều đầu tiên bạn có thể thắc mắc khi chuyển sang Chromebook là làm thế nào để thực hiện những thứ cơ bản — loại nội dung bạn có trong tay trong hệ điều hành trước đó của mình. Sao chép và dán là một trong những chức năng cơ bản mà bạn phải sử dụng vào lúc này hay lúc khác.

Làm thế nào để làm bài kiểm tra đánh máy trên Linux với tt

Làm thế nào để làm bài kiểm tra đánh máy trên Linux với tt

Trong thời đại công nghệ hiện đại, đánh máy đã trở thành một trong những hoạt động phổ biến nhất cho rất nhiều ngành nghề. Học cách gõ nhanh hơn với độ chính xác có thể giúp bạn hoàn thành nhiều việc hơn trong cùng một khoảng thời gian.

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Ubuntu phổ biến vì tính mạnh mẽ và tương đối ít lỗi. Nhưng chắc chắn không phải là không có vấn đề. Một trong những vấn đề như vậy là với trình điều khiển Wi-Fi của nó. Bạn có thể bật nguồn hệ thống của mình chỉ khi thấy rằng Wi-Fi của bạn không hoạt động.

Cách tạo và quét mã QR trên Chromebook

Cách tạo và quét mã QR trên Chromebook

Mã phản hồi nhanh, gọi tắt là mã QR, là mã vạch nâng cao chứa nhiều thông tin hơn mã vạch truyền thống. Các mã này là hai chiều, cho phép bạn quét chúng theo chiều dọc hoặc chiều ngang.

Cách cài đặt và gỡ bỏ các gói trong Arch Linux

Cách cài đặt và gỡ bỏ các gói trong Arch Linux

Bạn muốn cài đặt các gói trên Arch Linux nhưng không biết làm thế nào? Rất nhiều người gặp phải vấn đề này khi lần đầu tiên họ chuyển từ các bản phân phối dựa trên Debian sang Arch. Tuy nhiên, bạn có thể dễ dàng quản lý các gói trên hệ thống dựa trên Arch của mình bằng cách sử dụng các trình quản lý gói.

Cách cài đặt Spotify trên Linux

Cách cài đặt Spotify trên Linux

Spotify là một trong những dịch vụ phát trực tuyến nhạc lớn nhất hiện có. Nó có các ứng dụng khách dành cho cả thiết bị di động (Android và iOS) và máy tính để bàn (Mac và Windows).

9 lệnh cơ bản giúp bạn bắt đầu với Linux

9 lệnh cơ bản giúp bạn bắt đầu với Linux

Hướng dẫn cách sử dụng Linux thường mong đợi bạn thực hiện một số thao tác nhất định trong thiết bị đầu cuối, điều này thoạt đầu có vẻ đáng sợ. Nhưng không băn khoăn; Bảng lừa đảo lệnh Linux này sẽ trình bày quá trình mở một thiết bị đầu cuối và đưa ra một vài lệnh hữu ích.

Trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu năm 2020

Trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu năm 2020

Bỏ qua tất cả những điều sơ sài, đây là danh sách các trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu mà bạn có thể sử dụng để tạo ra những video tuyệt đẹp.

15 chủ đề hay nhất cho Ubuntu 20.04 vào năm 2020

15 chủ đề hay nhất cho Ubuntu 20.04 vào năm 2020

Rất nhiều chủ đề cập nhật mới đã sẵn sàng được cài đặt trên máy tính để bàn GNOME mới của Ubuntu 20.04. Đây là danh sách các chủ đề ubuntu tốt nhất vào năm 2020

Cách di chuyển tệp Linux bằng lệnh Mv

Cách di chuyển tệp Linux bằng lệnh Mv

Mặc dù bạn có thể đã biết cách di chuyển tệp trong Linux bằng trình duyệt tệp GUI, nhưng bạn có thể tự hỏi liệu có lệnh di chuyển trong thiết bị đầu cuối cho phép bạn nhanh chóng di chuyển tệp đến các thư mục khác nhau hay không. Lệnh mv là lệnh bạn muốn và nó dễ sử dụng với cú pháp đơn giản và một số cờ an toàn tùy chọn.