Cấu hình vpn server linux
Giới thiệuWireGuard là một phần mềm VPN mã nguồn mở, miễn phí, hiện đại và nhanh chóng với mật mã hiện đại. Nó nhanh hơn và đơn giản hơn so với IPSec và OpenVPN. Ban đầu, được phát hành cho Kernel Linux, nhưng nó cũng đang được hỗ trợ đa nền tảng cho các hệ điều hành khác. Trong bài viết này sẽ hướng dẫn cài đặt và thiết lập WireGuard VPN trên Ubuntu 20.04 LTS. Show
Mô hình trong bài viết này như sau: Trong bài viết này chúng ta sử dụng máy chủ để cài WireGuard Server có thông tin như sau:
Cập nhật hệ thốngĐể đảm bảo rằng tất cả các phụ thuộc của WireGuard đều được cập nhật, hãy thực thi lệnh bên dưới: Trong quá trình cập nhật hệ thống chúng ta chờ từ 5 phút đến 15 phút. Bước 1: Cài đặt WireGuard VPNĐể có thể cài đặt WireGuard từ kho lưu trữ mặc định của Ubuntu chúng ta tiến hành thực thi lệnh bên dưới: Bước 2: Cấu hình WireGuard serverĐầu tiên, chúng ta cần tiến hành tạo một cặp private key và public key. WireGuard có hai công cụ dòng lệnh Sử dụng lệnh Sau khi đã tạo một cặp private key và public key tiến hành kiểm tra lại trong thư mục Tiếp theo, chúng ta cần cấu hình đường hầm sẽ định tuyến lưu lượng VPN. Chúng ta sẽ thực hiện tác vụ này bằng cách tạo file cấu hình có tên Thêm nội dung sau vào file cấu hình đã tạo ở trên: Trong đó:
Tiến hành start WireGuard và cho phép WireGuard khởi động cùng với hệ thống bằng câu lệnh sau: Wireguard sẽ được listen trên port UDP 51280: Kết quả Chúng ta có thể dùng lệnh sau để xem một số thông tin của wireguard: Kết quả Cài đặt và cấu hình WireGuard VPN ClientWireGuard Client Trên LinuxCài đặt Wireguard client trên Ubuntu tiến hành cài đặt trực tiếp từ repo của WireGuard: Tạo cặp key pair để sử dụng cấu hình cho client. Lưu lại Private key và public key sau khi hệ thống tạo ra. Private key sẽ được sử dụng tại file cấu hình của tunesafe client. Public key sẽ được sử dụng để cấu hình trên WireGuard server. Tạo file config dùng để kết nối cho WireGuard client tới server Điền các thông tin cấu hình như:
Save lại file cấu hình trên và khởi động WireGuard bằng câu lệnh: Chúng ta có thể dùng lệnh sau để xem một số thông tin của WireGuard: Kết quả Để stop WireGuard, chúng ta có thể sử dụng lệnh: Sau khi đã thiết lập kết nối VPN hoàn tất ở phía client chúng ta cần thực hiện thiết lập cho phép VPN Client kết nối ở phía Server: Trên Wireguard server, chạy câu lệnh sau với các thông số:
Trong ví dụ này ta chạy lệnh: Kiểm tra lại thông tin bằng cách sử dụng lệnh: Kết quả Lưu lại cấu hình: Như vậy cấu hình sẽ được lưu lại trong file wg0.conf của hệ thống, trong trường hợp hệ thống khởi động lại, cấu hình sẽ không bị mất đi. Chúng ta đã hoàn tất quá trình cài đặt WireGuard VPN Client Ubuntu và cho phép VPN Client kết nối ở phía Server WireGuard Client trên WindowsTiến hành cài đặt WireGuard client trên Windows bằng cách tải WireGuard tại đây Sau khi đã tải về và tiến hành cài đặt thì sẽ được giao diện như bên dưới, tại đậy chúng ta chọn GUI tự động tạo PrivateKey và PublicKey cho chúng ta: Điền các thông tin cấu hình như:
Khi đã điền các giá trị cần thiết như trên thì tiến hành Sau khi đã thiết lập kết nối VPN hoàn tất ở phía client chúng ta cần thực hiện thiết lập cho phép VPN Client kết nối ở phía Server: Trên WireGuard server, chạy câu lệnh sau với các thông số:
Trong ví dụ này ta chạy lệnh: Kiểm tra lại thông tin bằng cách sử dụng lệnh: Kết quả Lưu lại cấu hình: Như vậy cấu hình sẽ được lưu lại trong file wg0.conf của hệ thống, trong trường hợp hệ thống khởi động lại, cấu hình sẽ không bị mất đi. Chúng ta đã hoàn tất quá trình cài đặt WireGuard VPN Client Window và cho phép VPN Client kết nối ở phía Server WireGuard Client trên MacOSTiến hành tìm kiếm và tải WireGuard về máy thông qua appstore Tiến hành bật WireGuard và chọn Manage tunnels tại biểu tượng của WireGuard trên menubar: Bấm vào biểu tượng dấu Một cửa sổ mới sẽ hiện ra, có sẵn 1 số thông tin như sau, private key và public key sẽ được hệ thống tự động tạo ra: Điền các thông tin cấu hình như:
Chọn save sau khi hoàn tất. Để kết nối chúng ta tiến hành lick vào nút Sau khi đã thiết lập kết nối VPN hoàn tất ở phía client chúng ta cần thực hiện thiết lập cho phép VPN Client kết nối ở phía Server: Trên WireGuard server, chạy câu lệnh sau với các thông số:
Trong ví dụ này ta chạy lệnh: Kiểm tra lại thông tin bằng cách sử dụng lệnh: Kết quả Lưu lại cấu hình: Như vậy cấu hình sẽ được lưu lại trong file wg0.conf của hệ thống, trong trường hợp hệ thống khởi động lại, cấu hình sẽ không bị mất đi. Chúng ta đã hoàn tất quá trình cài đặt WireGuard VPN Client MacOS và cho phép VPN Client kết nối ở phía Server WireGuard Client trên iOS (Iphone)Truy cập Appstore, tìm kiếm và cài đặt app WireGuard Truy cập app WireGuard sau khi cài đặt, và chọn Chọn Điền các thông tin:
Điền các thông tin sau và chọn save khi hoàn tất:
Sau khi thiết lập hoàn tất nhấn Sau khi đã thiết lập kết nối VPN hoàn tất ở phía client chúng ta cần thực hiện thiết lập cho phép VPN Client kết nối ở phía Server: Trên WireGuard server, chạy câu lệnh sau với các thông số:
Trong ví dụ này ta chạy lệnh: Kiểm tra lại thông tin bằng cách sử dụng lệnh: Kết quả Lưu lại cấu hình: Như vậy cấu hình sẽ được lưu lại trong file wg0.conf của hệ thống, trong trường hợp hệ thống khởi động lại, cấu hình sẽ không bị mất đi. Chúng ta đã hoàn tất quá trình cài đặt WireGuard VPN Client Iphone và cho phép VPN Client kết nối ở phía Server Cấu hình NAT WireGuardChúng ta cần định cấu hình NAT để cho phép WireGuard Client truy cập Internet. Ở đây chúng ta sẽ sử dụng IPtables cấu hình NAT rule để WireGuard VPN phía client có thể ra internet bằng IP Public của WireGuard VPN Server. Thiết lập NAT rules ServerĐối với IPv4, chúng ta đặt các biến
Linux kernel sau để chấp nhận các gói mạng đến trên Cập nhật file cấu hình WireGuard để hỗ trợ firewall và định tuyến. Bằng cách thêm 2 dòng sau vào file cấu hình tại Kết quả như sau: Kết quả Tạo script NAT rules ServerChúng ta sẽ tiến hành tạo thư mục Thực hiện tạo 2 file Tiến hành thêm nội dung sau vào file /etc/wireguard/helper/add-nat-routing.sh Tiến hành thêm nội dung sau vào file /etc/wireguard/helper/remove-nat-routing.sh Sau khi đã tạo 2 file trên chúng ta cần cấp quyền thực thi để có thể sử dụng: Tiến hành tạo file /etc/sysctl.d/10-wireguard.conf Khởi động lại dịch vụ Chỉnh sửa file cấu hình WireGuard ClientTiến hành chỉnh sửa file cấu hình ở phía WireGuard Client tại phần Sau đó tiến hành lưu lại file cấu hình và tiến hành thực hiện kết nối VPN. Thực hiện kiểm tra IP sau khi kết nối VPN có phải là IP public của WireGuard Server VPN không tại link Đây chính là IP public của WireGuard Server như vậy là quá trình cấu hình NAT thành công, toàn bộ kết nối của bạn khi đi ra Internet sẽ được truyền mã hóa và bảo mất đến WireGuard VPN Server rồi mới đi ra Internet, vì thế khi truy cập Internet thì bạn chỉ để lại dấu vết là địa chỉ IP Public của WireGuard VPN Server và địa chỉ IP Public thật của đường truyền Internet nhà bạn sẽ được giấu đi. Bài viết trên đã hoàn tất việc cấu hình và kết nối tới WireGuard VPN server. Chúc các bạn thành công! |