Hướng dẫn cài đặt và unlock OpenVPN Access server

1. OpenVPN là gì?
OpenVPN là một phần mềm thương mại mã nguồn mở thực hiện kỹ thuật mạng riêng ảo (VPN) để tạo ra các kết nối điểm-tới-điểm hoặc site-to-site an toàn. Nó dùng một giao thức bảo mật tùy chỉnh sử dụng SSL/TLS để trao đổi khóa. Nó được viết bởi James Yonan và được phát hành theo giấy phép công cộng GNU (GPL).

OpenVPN cho phép các bên xác thực lẫn nhau bằng cách sử dụng khóa bí mật chia sẻ trước, chứng thư khoá công khai (public key certificate) hoặc tên người dùng/mật khẩu. Khi được sử dụng trong cấu hình multiclient-server, nó cho phép máy chủ phát hành một chứng thư xác thực cho mỗi client. Nó sử dụng thư viện mã hoá OpenSSL cũng như giao thức TLS một cách rộng rãi, và chứa nhiều tính năng kiểm soát và bảo mật.

Openvpn có phiên bản free và bản thương mại. Bản thương mại là OpenVPN Access Server, version này có nhiều tính năng nổi trội so với bản free như:
– có web quản trị
– Giao diện web cho enduser tự đổi password + lấy mã QRCODE TOTP
– VPN client khi VPN tự nhảy popup nhập 2FA
– Chỉ cần cài 1 lần, có tất cả thành phần cơ bản của 1 hệ thống VPN hoàn chỉnh, bảo mật, ko cần tốn thêm tài nguyên tự dựng radius hay webpage như đối với các phiên bản free.
Tuy nhiên mặc định nếu ko add license thì được phép sử dụng đồng thời 2 user, ko đủ để sử dụng cho bất cứ doanh nghiệp nào. Còn nếu mua license thì khá tốn kém , tầm chi phí cho nó đủ để mua các hệ thống VPN hardware chuyên nghiệp hơn như checkpoint, fortinet, pulse secure.
sau đây mình sẽ hướng dẫn cài đặt, và unlock license lên free 2048 user

2. Cài đặt
Chuẩn bị 1 máy chủ centos 7, yêu cầu:

Cấu hình sysctl

Cài đặt các gói cơ bản:

reboot lại server
sau khi server restart, lên trang chủ openvpn cài đặt bản mới nhất, hiện tại là ver 2.9.2

Get Open VPN


Cài đặt theo hướng dẫn của trang chủ

Sau khi cài xong, làm theo hướng dẫn, đặt password cho user openvpn mặc định (do openvpn tự tạo ra trong khi cài đặt)
User này cũng sẽ là user sử dụng để đăng nhập trang quản trị

Đăng nhập thử:

Đã cài đặt thành công, tuy nhiên, chúng ta thấy chỉ có 2 user được sử dụng đồng thời.
Giờ sẽ tiến hành sửa lại 2 –> 2048
Tắt hết openvpn service đi:

thư mục /usr/local/openvpn_as/lib/python chứa toàn bộ thư viện openvpn-as sử dụng, đương nhiên bao gồm cả phần license. phần license do thư viện pyovpn-2.0-py3.6.egg xử lý.
Chúng ta tiến hành edit lại file này để unlock, backup file gốc, tạo thư mục mới để làm việc tạm

bản chất egg là file zip, nên chỉ rename, rồi giải nén là có thể edit được nội dung.

Sửa tiếp file uprop.pyc trong thư mục pyovpn/lic

File pyc là file python đã compiled, tiến hành dịch ngược ra file source code python để chỉnh sửa, cài đặt uncompyle6

Dịch ngược

Mở file uprop.py, tìm tới funtion figure
Nội dung funtion như sau:

Để ý dòng cuối dùng return ret
Thêm 1 dòng ngay trước nó:ret[‘concurrent_connections’] = 2048
nội dung funtion sau khi sửa đổi như sau:

Tiến hành đóng gói lại thành file pyc như cũ

nén lại thành file egg như cũ

Xoá python cache trong /usr/local/openvpn_as/lib/python

Khởi tạo lại profile openvpn

Đăng nhập lại openvpn sẽ thấy license đã lên 2048 user