WireGuard là một VPN đơn giản và hiện đại (Mạng riêng ảo) với mật mã hiện đại. Nó nhanh hơn, dễ cấu hình hơn và hiệu suất cao hơn các giải pháp tương tự khác, chẳng hạn như IPsec và OpenVPN .
WireGuard là nền tảng chéo và có thể chạy hầu hết mọi nơi, bao gồm cả Linux, Windows, Android và macOS. Wireguard là một VPN ngang hàng; nó không dựa trên mô hình máy khách-máy chủ. Tùy thuộc vào cấu hình của nó, một máy ngang hàng có thể hoạt động như một máy chủ hoặc máy khách truyền thống.
WireGuard hoạt động bằng cách tạo giao diện mạng trên mỗi thiết bị ngang hàng hoạt động như một đường hầm. Các đồng nghiệp xác thực lẫn nhau bằng cách trao đổi và xác thực các khóa công khai, bắt chước mô hình SSH. Các khóa công khai được ánh xạ với một danh sách các địa chỉ IP được phép trong đường hầm. Lưu lượng VPN được gói gọn trong UDP.
Hướng dẫn này mô tả cách thiết lập WireGuard trên máy CentOS 8 sẽ hoạt động như một máy chủ VPN. Chúng tôi cũng sẽ chỉ cho bạn cách định cấu hình WireGuard với tư cách là khách hàng. Lưu lượng của khách hàng sẽ được chuyển qua máy chủ CentOS 8. Thiết lập này có thể được sử dụng như một biện pháp bảo vệ chống lại các cuộc tấn công của Man in the Middle, lướt web ẩn danh, bỏ qua nội dung bị giới hạn Geo hoặc cho phép các đồng nghiệp của bạn làm việc tại nhà kết nối an toàn với mạng công ty.
Điều kiện cài đặt
Bạn sẽ cần một máy chủ CentOS 8 mà bạn có thể truy cập dưới dạng root hoặc tài khoản với các đặc quyền sudo .
Cài đặt WireGuard trên CentOS 8
Các công cụ và mô-đun kernel của WireGuard có sẵn để cài đặt từ kho Epel và Elrepo. Để thêm các kho lưu trữ vào hệ thống của bạn, hãy chạy lệnh sau:
Sau khi hoàn tất, hãy cài đặt các gói WireGuard:
Tạo khóa công khai và khóa riêng trong /etc/wireguard
thư mục.
$wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
Tạo một tệp mới có tên wg0.conf
và thêm các nội dung sau:
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = firewall-cmd –zone=public –add-port 51820/udp && firewall-cmd –zone=public –add-masquerade
PostDown = firewall-cmd –zone=public –remove-port 51820/udp && firewall-cmd –zone=public –remove-masquerade
Giao diện có thể được đặt tên bất cứ điều gì bạn muốn, tuy nhiên, nên sử dụng một cái gì đó như bao gồm wg0
hoặc wgvpn0
. Các cài đặt trong phần giao diện có ý nghĩa như sau:
- Địa chỉ – danh sách địa chỉ IP v4 hoặc v6 được phân tách bằng dấu phẩy cho
wg0
giao diện. Sử dụng IP từ một phạm vi được dành riêng cho các mạng riêng (10.0.0.0/8, 172.16.0.0/12 hoặc 192.168.0.0/16). - HearPort – cổng mà WireGuard sẽ chấp nhận các kết nối đến.
- PrivateKey – một khóa riêng được tạo bởi
wg genkey
lệnh. (Để xem nội dung của tệp chạysudo cat /etc/wireguard/privatekey
🙂 - SaveConfig – khi được đặt thành true, trạng thái hiện tại của giao diện được lưu vào tệp cấu hình khi tắt máy.
- PostUp – lệnh hoặc tập lệnh được thực thi trước khi đưa giao diện lên. Trong ví dụ này, chúng tôi đang sử dụng
firewall-cmd
để mở cổng WireGuard và cho phép giả mạo. Điều này sẽ cho phép lưu lượng truy cập rời khỏi máy chủ, cho phép các máy khách VPN truy cập Internet. - PostDown – lệnh hoặc tập lệnh được thực thi trước khi đưa giao diện xuống. Các quy tắc tường lửa sẽ được gỡ bỏ khi giao diện không hoạt động.
Các tập tin wg0.conf
và privatekey
không nên đọc được cho người dùng bình thường. Sử dụng chmod
để đặt quyền thành 600
:
Sau khi hoàn tất, hãy đưa wg0
giao diện lên bằng các thuộc tính được chỉ định trong tệp cấu hình:
Lệnh sẽ xuất ra một cái gì đó như thế này:
ip link add wg0 type wireguard wg setconf wg0 /dev/fd/63 ip -4 address add 10.0.0.1/24 dev wg0 ip link set mtu 1420 up dev wg0 iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Để mang wg0
giao diện lúc khởi động, hãy chạy lệnh sau:
CloudViet là đơn vị cho thuê máy chủ ảo, VPS, server uy tín và chất lượng.
Nguồn: https://linuxize.com/post/how-to-set-up-wireguard-vpn-on-centos-8/