Hướng dẫn tạo VPN Server miễn phí từ A đến Z – Phần 3: Cài đặt OpenVPN, EasyRSA và thiết lập Certificate Authority trên GCP VM Instance

Kết thúc Phần 2, hiện bạn đã có 1 con VM Instance trên GCP với các thiết lập liên quan để sẵn sàng cho việc cài đặt làm VPN Server. Và như tôi đã để cập ở Phần 1, phương án này sẽ giúp bạn một mình một cõi, toàn quyền sinh sát chứ không còn lệ thuộc vào mấy cha cung cấp VPN Server miễn phí nữa. Hiển nhiên, để ăn chùa mà còn bá đạo như thế thì bạn phải chịu khó xắn tay áo lên mà làm thêm một số việc.

Minh họa 1

Nội dung kỳ này sẽ dính líu đến khá nhiều thứ rối rắm nên nếu là gà mờ chính hiệu, để không bị ngộp, bạn có thể cứ làm theo nội dung demo trước. Sau khi đã tĩnh tâm thì bạn có thể quay lại đọc thêm các diễn giải bổ sung ở mục “Góc trợ giúp” sau. Và như đã nói ở Phần 1, trong nội dung demo kỳ này tôi sẽ làm chậm và kỹ đến mức có thể gây ức chế cho người đọc. Bạn nên cân nhắc kỹ trước khi bắt đầu.

#1. Cài đặt pakage OpenVPN và EasyRSA

#1.1 Chuẩn bị cài đặt pakage

Câu hỏi đầu tiên cần trả lời: “Cài OpenVPN và EasyRSA làm vẹo gì?

– OpenVPN là một trong các VPN Server software thuộc dạng open source project nên nói chung dễ chịu hơn mấy thằng khác. Bạn có thể xem thêm thông tin tại https://openvpn.net/. Hiển nhiên bạn có nhiều giải pháp thay thế chứ không bắt buộc phải dùng thằng này. Tuy nhiên, nếu sau này bạn cứng tay rồi thì hãy test thử với mấy thằng khác.

– Thằng EasyRSA thì chức năng là để thiết lập Certificate Authority – CA nội bộ dùng cho VPN ServerVPN Client. Cái CA tôi sẽ nói ngay ở phần bên dưới.

Đã rồi mục đích chiến đấu rồi thì bạn vào việc thôi. Ở cuối Phần 2, bạn đang SSH vào VM Instance với giao diện dòng lệnh như sau:

SSH vào VM Instance
SSH vào VM Instance

Tại đây, bạn có thể gõ trực tiếp hoặc copy dòng lệnh rồi paste vào giao diện bằng tổ hợp phím “Ctrl + V” (lưu ý, nếu bị lỗi khi thao tác trên Microsoft Edge thì bạn thử chuyển qua dùng Firefox hoặc Chrome thử). Dòng lệnh đầu tiên để tiến hành cập nhật là:

sudo apt-get update

Góc trợ giúp:

Sudo thường được hiểu là “superuser do” (nghĩa là user vô địch siêu cấp, không phải user hạng ruồi muỗi thông thường). Đây là câu thần chú trong Linux (hay chính xác hơn là Unix-like Operating System) cho phép bạn “buff privilege” để chạy một số dòng lệnh mà user thường không được phép.

Minh họa 2

Cái này có thể tạm hiểu giống giống với cái tùy chọn “Run as administrator” trong Windows ấy.

Run as Admin ...
Run as Admin …

Apt-getcommand-line tool để xử lý package của Ubuntu (Ở Phần 2 bạn chọn Boot DiskUbuntu 16.04 LTS đấy, nhớ không). Ở đây OpenVPNEasyRSA là 2 package bạn cần cài đặt.

– Và cuối cùng, dòng `apt-get update` có thể hiểu đơn giản là cập nhật để lấy thông tin về phiên bản mới nhất cho danh sách các package. Bạn có hứng thú thì bơi vào đây để đọc thêm http://manpages.ubuntu.com/manpages/cosmic/man8/apt-get.8.html.

#1.2 Cài đặt OpenVPN và EasyRSA pakage

Vẫn tại vị trí cũ trong giao diện dòng lệnh (từ đoạn này về sau, nếu tôi không nói gì khác thì bạn sẽ hiểu là ở cùng vị trí), bạn chạy tiếp dòng lệnh cài đặt các package với:

sudo apt-get install openvpn easy-rsa

Chỗ này có điểm cần lưu ý là sau khi phun ra cả đống thông tin, nó sẽ hỏi bạn có muốn tiếp tục việc cài đặt không? Để tiếp tục thì bạn phải gõ vào “y” như sau.

Cài đặt OpenVPN và EasyRSA
Cài đặt OpenVPN và EasyRSA

Góc trợ giúp:

– Bạn đã biết chức năng của `sudo`, `apt-get` còn `install` thì nghĩa quá rõ rồi, nghĩa là tiến hành cài đặt

– Như vậy dòng `sudo apt-get install openvpn easy-rsa` là để yêu cầu cài đặt 2 packageopenvpneasyrsa

Ngồi chờ một tí để nó xử lý, bạn sẽ thấy thông báo việc cài đặt thành công như sau.

Sau khi tiến hành cài đặt
Sau khi tiến hành cài đặt

#2. Thiết lập CA

#2.1 Thiết lập CA để làm gì

Trả lời ngắn gọn: CA trên VPN Server tạo Certificate chứa Public Key (của VPN Server). VPN Client lấy Certificate để thực hiện Key-Exchange theo Asymetric Encryption. Cái key có được từ quá trình Key-Exchange sẽ được dùng trong các session theo dạng Symetric Encryption.

Trả lời dông dài: Bạn xem thêm các nội dung liên quan tôi trình bày trong các Sê-ri khác như sau.

– Nguyên tắc làm việc của VPNđây.

– Nội dung CA:đây;

– Nội dung Asymetric Encryption vs Asymetric Encryption: ở đây.

OpenVPN sẽ sử dụng SSL/TLS để mã hóa dữ liệu nhằm bảo đảm nguyên tắc bảo mật. Phần liên quan đến SSL/TLS tôi đề cập ở đây.

#2.2 Các bước thiết lập CA

Tạm giả định bạn đã nắm rõ mục tiêu của việc thiết lập CA, giờ tôi sẽ bắt tay vào quá trình này. Đầu tiên, bạn chạy dòng lệnh để tạo thư mục certificate với:

make-cadir ~/openvpn-ca

Góc trợ giúp:

– “~/”: là thư mục home tương ứng của user hiện hành (là bạn đấy). nếu bạn đặt tên là “gamo” thì “~/” tương ứng “/home/gamo/”.

– make-cadir: command-line để tạo thư mục certificate tên là “openvpn-ca”. Bạn có thể xem thêm ở http://manpages.ubuntu.com/manpages/bionic/man1/make-cadir.1.html

Kế đến, bạn chạy dòng lệnh để di chuyển đến thư mục vừa tạo để tiến hành các thao tác thiết lập với:

cd ~/openvpn-ca
Lần đầu tiên bạn đối mặt với giao diện dòng lệnh của Linux sẽ khá khó chịu vì mọi thứ không trực quan như Windows. Đối với Linux, để liệt kê danh sách file và thư mục con tại thư mục này, bạn sử dụng command `ls -l` để có thể “nhận biết” được xung quanh đang có cái gì.

Xác định vị trí file vars
Xác định vị trí file vars

Góc trợ giúp:

– cd: command-line để đổi thư mục (change directory).

ls: command-line để liệt kê file và thư mục con tại thư mục hiện hành. “-l” option ý muốn kêu nó hiển thị thông kiểu long list format để bạn theo dõi chi tiết

Ở đây sẽ có 1 file bạn cần lưu ý đó là vars, nơi sẽ cung cấp các thiết lập variable (biến số) liên quan cho quá trình khởi tạo CA tiếp theo. Để chỉnh sửa nội dung của file này, hiển nhiên bạn sẽ cần 1 editor kiểu như notepad trên Windows. Tuy nhiên vì đang trên Linux nên bạn sẽ có một số tùy chọn như “vi/vim/nano”. Trong 3 thằng này thì thằng nano có vẻ thân thiện với người mới hơn nên tôi sẽ chọn demo với nó. Trường hợp bạn không xa lạ gì với các editor trên Linux thì cứ thoải mái chọn lựa theo ý thích. Bạn tiến hành mở file var để chỉnh sửa với dòng lệnh:

nano vars

Kết quả thu được sẽ kiểu như sau.

Nội dung file vars
Nội dung file vars

Dùng phím mũi tên trên bàn phím để di chuyển con trỏ xuống đến đoạn sau.

Vị trí cập nhật nội dung file vars
Vị trí cập nhật nội dung file vars

Tại đây bạn có thể chỉnh sửa nội dung file và cập nhật các thông tin theo tùy ý (hoặc kệ cha nó, không chỉnh gì cũng được). Tuy nhiên, bên dưới đoạn này bạn cần đặc biệt lưu ý dòng “export KEY_NAME=”EasyRSA””. Chỗ này bạn sẽ cần cập nhật theo thông tin tương ứng của bạn. Ở đây tôi ví dụ chỉnh lại với cái tên là:

export KEY_NAME=”server”

Với nano thì bạn lưu và đóng file lần lượt bằng các tổ hợp phím “Ctrl+x”, “y” và “Enter”. (Lưu ý, như tôi đã nói, thằng nano này khá thân thiện nên trên màn hình nó sẽ có hướng dẫn bạn đấy. Nếu dùng vi/vim không quen có khi bạn lại không biết đường thoát ra không chừng).

Và vẫn tại vị trí này sau khi đóng file “vars”, tiếp theo bạn cần chạy các nội dung cập nhật của file “vars” này với dòng lệnh:

source vars

Nếu mọi chuyện êm đẹp, bạn sẽ thấy một dòng thế này “NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/username/openvpn-ca/keys”. Tính đến lúc này, bạn vẫn chưa có “keys” gì cả nhưng cho “đúng quy trình” thì bạn cần dọn dẹp hết dữ liệu cho chắc với dòng lệnh:

./clean-all

Update vars
Update vars

Góc trợ giúp:

– Trong cái “rm -rf”: thì “rm” là remove (xóa file hoặc thư mục), “-rf” lần lượt là option “rrecursive” (tạm dịch là đệ quy nghĩa là giết sạch tất cả file và thư mục con từ trong ra ngoài) và “f-force” (nghĩa là ép nó xóa ngay và luôn, không nói nhiều).

Vẫn tại vị trí cũ, bạn bắt đầu khởi tạo CA với dòng lệnh:

./build-ca

Quan sát trên màn hình, bạn sẽ thấy nó phọt liên tục ra các thông tin liên quan đến các variable bạn đã thiết lập trong file “vars” ở trên. Bạn chỉ việc đực mặt ra ngồi nhìn và “Enter” đồng ý cho nó chạy thôi. Đến đoạn cuối sẽ kiểu như thế này. (Lưu ý chỗ Name nó phải khớp với thông tin bạn thiết lập nhé)

Quá trình Build CA
Quá trình Build CA

Ok, đến đây bạn đã có được CA sẵn sàng cho việc ký xác thực các Certificate rồi đấy. Kỳ tới tôi sẽ chuyển sang phần tạo Certificate, Key và một số thứ lằng nhằng khác.

2 thoughts on “Hướng dẫn tạo VPN Server miễn phí từ A đến Z – Phần 3: Cài đặt OpenVPN, EasyRSA và thiết lập Certificate Authority trên GCP VM Instance”

Leave a Reply

Your email address will not be published. Required fields are marked *