Tự tạo VPN Server với OpenVPN trên Ubuntu

Trong thời gian nghỉ do dịch Covid-19, mạng internet nhà mình liên tục bị chậm do sự cố đứt cáp quang của nhà mạng. Mình đã thử sử dụng dịch vụ Cloudflare WARP để cải thiện tốc độ nhưng thấy không khá hơn bao nhiêu, nhất là vào buổi tối thì Cloudflare WARP gần như không sử dụng được nữa. Do đó mình đã quyết định tự tạo VPN Server để xem tốc độ có cải thiện hơn không. Sau khi tìm hiểu trên mạng thì mình phát hiện có một nơi cho thuê máy chủ hoàn toàn miễn phí đó là DigitalOcean. Chỗ này cho người dùng mới miễn phí $100 đô để sử dụng thử dịch vụ trong vòng 2 tháng thông qua đường link sau:

Link đăng ký miễn phí 2 tháng sử dụng dịch vụ thuê máy chủ của DigitalOcean

Lưu ý là để hưởng ưu đãi này bạn phài có thẻ thanh toán quốc tế (Visa/ MasterCard/ JCB) hoặc có tài khoảng PayPal cho mục đích xác minh tài khoản (Yên tâm là bạn hoàn toàn không bị mất tiền trong 2 tháng đầu)

Sau khi đăng ký tài khoản thì mình đã tạo một máy chủ với tại Singapore với giá chỉ $5/tháng với 1 CPU, 1GB RAM, 25GB HDD và được 2TB băng thông mỗi tháng. Đối với mình như vậy là quá đủ với một VPN Server.

Với máy chủ này, mình đã chọn cài đặt Ubuntu phiên bản 20.04. Thời gian khởi tạo khá nhanh, trong vòng chưa đến 5 phút mình đã có thể đăng nhập vào server với quyền root.

Việc cài đặt OpenVPN diễn ra khá thuận lợi và nhanh chóng nhờ vào việc sử dụng script có sẳn tren Github. Chỉ cần 1 vài dòng lệnh thì mình đã có được máy chủ OpenVPN và sẳn sàng kết nối với máy tính và điện thoại của mình. Dưới đây là các bước thực hiện:

Bước 1:

Chạy tuần tự các lệnh sau từ shell của Ubuntu:

$ wget https://git.io/vpn -O openvpn-install.sh
$ sudo chmod +x openvpn-install.sh
$ sudo bash openvpn-install.sh

Bước 2:

Trả lời các câu hỏi để bắt đầu bước cài đặt:

Welcome to this OpenVPN road warrior installer!

Which protocol should OpenVPN use?
   1) UDP (recommended)
   2) TCP
Protocol [1]: 1

What port should OpenVPN listen to?
Port [1194]: 

Select a DNS server for the clients:
   1) Current system resolvers
   2) Google
   3) 1.1.1.1
   4) OpenDNS
   5) Quad9
   6) AdGuard
DNS server [1]: 2

Enter a name for the first client:
Name [client]: laptop-1

OpenVPN installation is ready to begin.
Press any key to continue...

sau đó bạn chỉ việc chờ đợi quá trình cài đặt và cấu hình hoàn thành

Bước 3:

Cấu hình trên máy khách (máy laptop, hoặc điện thoại)

Lúc này trên thư mục gốc của máy chủ Ubuntu sẽ có một file với đuôi .ovpn (Vd. laptop-1.ovpn). Bạn sẽ phải chép file này ra laptop hoặc điện thoại cần sử dụng.

Với laptop có thể chép thông qua lệnh scp từ Windows

scp root@<IP may chủ Ubuntu>:~/laptop-1.ovpn .

Ví dụ: scp [email protected]:~/laptop-1.ovpn .

Với điện thoại bạn có thể ghim dây để chép qua hoặc sử dụng Zalo để gởi file từ máy tính qua.

Sau đó bạn cài phần mềm OpenVPN Client từ địa chỉ sau:

Link tải về OpenVPN Client

Và cuối cùng bạn chọn import và chọn file .ovpn đã tải về là có thể kết nối với máy chủ.

Bước 4:

Để thêm/xóa người dùng bạn chỉ cần gõ dòng lệnh sau:

$ ./openvpn-install.sh
OpenVPN is already installed.

Select an option:
   1) Add a new client
   2) Revoke an existing client
   3) Remove OpenVPN
   4) Exit
Option: 1

Provide a name for the client:
Name: laptop-2

Bước 5: (Không bắt buộc)

Tối ưu OpenVPN

Mặc định OpenVPN sử dụng công nghệ mã hóa AES-256-CBC với SHA512. Đối với OpenVPN 2.4 trở lên thì mình khuyến nghị nên sử dụng chuẩn AES-128-GCM để tối ưu hiệu năng và bảo mật cho cả máy chủ và máy khách.

Để thay đổi thông số này bạn phải sửa file “server.conf” theo hướng dẫn sau:

$ sudo nano /etc/openvpn/server/server.conf

Bạn thêm dòng này:

ncp-disable

Và thay đổi phần “cipher” thành

cipher AES-128-GCM

Tiếp tục thay đổi file template cho client:

$ sudo nano /etc/openvpn/server/client-common.txt

Và thay đổi phần “cipher” thành

cipher AES-128-GCM

Sau đó khởi động lại OpenVPN bằng lệnh

$ sudo systemctl restart [email protected]

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *