Mạng riêng ảo (VPN) cho phép bạn truy cập internet bằng cách che giấu vị trí của bạn, giúp bạn có thể tự do truy cập internet an toàn trên các mạng không đáng tin cậy và tránh được các hạn chế về mặt địa lý cũng như kiểm duyệt. OpenVPN là giải pháp VPN Bảo mật lớp truyền tải (TLS) nguồn mở để đạt được mục tiêu này.
Trong hướng dẫn của mình, chúng tôi sẽ cài đặt OpenVPN trên máy chủ Rocky Linux 9 và định cấu hình để có thể truy cập từ máy khách, đồng thời tạo kết nối VPN giữa chúng để chuyển hướng toàn bộ lưu lượng truy cập từ máy khách qua máy chủ OpenVPN.
Nhưng trước tiên, chúng ta cần kích hoạt kho lưu trữ EPEL chứa
Cài đặt Easy-RSA.
Tạo liên kết tượng trưng trỏ đến gói
Hạn chế quyền truy cập vào thư mục PKI.
Khởi tạo PKI.
Bạn sẽ nhận được kết quả sau.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Chạy lệnh sau để tạo cặp khóa công khai và riêng tư gốc cho Chứng chỉ của bạn Quyền hạn.
Bạn sẽ được nhắc nhập mật khẩu cho cặp khóa của mình. Bạn cũng sẽ được yêu cầu nhập mật khẩu PEM. Chọn mật khẩu mạnh cho cả hai và ghi chú lại để dùng sau. Bạn cũng sẽ được yêu cầu nhập Tên chung (CN) cho CA của mình. Bạn có thể nhập bất kỳ chuỗi nào nhưng để đơn giản, hãy nhấn ENTER để chấp nhận tên mặc định.
Nếu bạn không muốn bị nhắc nhập mật khẩu mỗi khi tương tác với CA, bạn có thể sử dụng lệnh sau thay thế.
Điều này sẽ tạo ra hai tệp:
Tạo thư mục
Tạo liên kết tượng trưng từ
Hạn chế quyền truy cập vào thư mục.
Dán các dòng sau vào it.
Vì chúng tôi không sử dụng máy chủ này làm CA, nên đây là những giá trị duy nhất chúng tôi cần. Điều này cấu hình máy chủ OpenVPN & CA của bạn để sử dụng ECC, nghĩa là khi máy khách và máy chủ cố gắng thiết lập khóa đối xứng được chia sẻ, chúng sẽ sử dụng thuật toán Elliptic Curve để thực hiện trao đổi. Nó nhanh hơn đáng kể so với việc sử dụng Diffie-Hellman thông thường với thuật toán RSA cổ điển vì các số nhỏ hơn nhiều và tốc độ tính toán cũng nhanh hơn.
Bước tiếp theo là tạo thư mục PKI bằng cách sử dụng tùy chọn
PKI trên máy chủ OpenVPN được sử dụng làm nơi tập trung để lưu trữ các yêu cầu chứng chỉ và chứng chỉ công khai.
Bước tiếp theo là tạo khóa riêng và Yêu cầu ký chứng chỉ (CSR) trên máy chủ OpenVPN của bạn. Chạy lệnh
Bạn sẽ nhận được kết quả đầu ra sau.
Điều này tạo ra một khóa riêng cho máy chủ và một tệp yêu cầu chứng chỉ có tên là
Yêu cầu ký chứng chỉ (CSR) hiện đã sẵn sàng để CA ký.
Nếu bạn không muốn sử dụng xác thực bằng mật khẩu, bạn sẽ cần tạo cặp khóa SSH cho từng máy chủ, sau đó thêm khóa SSH công khai của Máy chủ OpenVPN vào tệp
Nếu bạn không muốn trải qua tất cả những điều này, bạn chỉ cần sao chép các tệp. Mở tệp trên máy chủ OpenVPN, sao chép nội dung của tệp, sau đó tạo tệp trên máy chủ CA và dán nội dung.
Đăng nhập lại vào Máy chủ CA và chuyển đến thư mục
Bạn sẽ nhận được thông báo sau đầu ra.
Ký yêu cầu bằng lệnh sau. Vì chúng ta đang ký CSR của máy chủ OpenVPN, chúng ta sẽ sử dụng Common Name (CN) của nó.
Bạn sẽ được nhắc xác minh xem yêu cầu có đến từ nguồn đáng tin cậy hay không. Nhập
Tiếp theo, bạn sẽ được nhắc nhập mật khẩu khóa riêng CA mà bạn đã thiết lập trước đó.
Chứng chỉ kết quả chứa khóa mã hóa công khai của máy chủ OpenVPN cũng như chữ ký từ máy chủ CA. Sao chép chứng chỉ trở lại máy chủ OpenVPN.
Trên máy chủ OpenVPN của bạn, sao chép các tệp vào
Chuyển sang thư mục
Tạo
Sao chép
Hạn chế quyền đối với thư mục để bảo vệ nó.
Tiếp theo, chuyển sang
Tạo khóa máy khách với
Nhấn
Tiếp theo, sao chép tệp
Chuyển
Đăng nhập lại vào máy chủ CA và nhập yêu cầu máy chủ.
Bạn sẽ nhận được thông báo sau đầu ra.
Ký yêu cầu bằng lệnh sau. Chúng tôi đang sử dụng
Khi được nhắc, hãy nhập
Bạn sẽ được nhắc nhập CA mật khẩu.
Chuyển chứng chỉ đã tạo trở lại máy chủ OpenVPN.
Trên máy chủ OpenVPN, sao chép chứng chỉ máy khách vào
Sao chép
Mở tệp để chỉnh sửa.
Tìm phần
vào đầu dòng. Thêm một dòng mới bên dưới như minh họa.
Tiếp theo, thay đổi giá trị mã hóa bằng cách tìm kiếm các dòng
Ngay bên dưới, hãy thêm Chỉ thị
Vì chúng ta đang sử dụng Mật mã đường cong Elliptic, nên chúng ta cần tắt mã hóa Diffie-Hellman. Bình luận dòng
OpenVPN sẽ chạy mà không cần bất kỳ đặc quyền nào sau khi đã khởi động. Để bật tính năng này, hãy tìm và bỏ chú thích cho các dòng
Tìm phần
Tìm dòng
Tìm
Vì chúng ta đang sử dụng giao thức TCP, chúng ta cần thay đổi giá trị của
Theo mặc định, máy chủ OpenVPN tạo và lưu trữ nhật ký trong
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
Thêm dòng sau vào cuối tệp.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Để đọc tệp và tải các giá trị mới cho phiên hiện tại, hãy sử dụng lệnh sau.
Cấu hình này sẽ định tuyến tất cả lưu lượng truy cập web từ máy khách của bạn qua địa chỉ IP của máy chủ và địa chỉ IP công khai của khách hàng sẽ được ẩn hiệu quả.
Đầu tiên, hãy kiểm tra các vùng đang hoạt động trong Tường lửa
Bạn sẽ nhận được thông báo tương tự đầu ra.
Nếu bạn không thấy giao diện
Tiếp theo, hãy thêm dịch vụ OpenVPN vào danh sách các dịch vụ được phép trong vùng đang hoạt động. Và sau đó thiết lập các thiết lập vĩnh viễn.
Tải lại Tường lửa để áp dụng các thay đổi.
Xác nhận rằng dịch vụ OpenVPN đã được đã thêm.
Tiếp theo, chúng ta cần thêm một quy tắc ngụy trang vào tường lửa. Điều này cho phép máy chủ OpenVPN dịch địa chỉ của máy khách thành địa chỉ công khai của máy chủ, sau đó thực hiện ngược lại với lưu lượng được gửi lại cho máy khách. Quá trình này cũng được gọi là Biên dịch địa chỉ mạng (NAT).
Thêm các quy tắc ngụy trang bằng các lệnh sau.
Xác nhận rằng ngụy trang đã được thêm chính xác.
Cuối cùng, tạo quy tắc ngụy trang cụ thể cho mạng con OpenVPN. Điều này được thực hiện bằng cách tạo một biến shell (
Cuối cùng, hãy mở cổng được đặt cho OpenVPN ở trên.
Tải lại tường lửa để áp dụng thay đổi.
Khởi động dịch vụ OpenVPN.
Kiểm tra trạng thái của dịch vụ.
Bạn sẽ nhận được kết quả tương tự.
Sao chép tệp cấu hình máy khách mẫu vào thư mục.
Mở tệp cấu hình cho chỉnh sửa.
Tìm lệnh
Đặt giao thức bạn đã chọn trước đó.
Bỏ chú thích
Tìm
Bình luận lệnh
So khớp
Thêm
Tạo một tập lệnh để biên dịch cấu hình cơ sở với các tệp chứng chỉ, khóa và mã hóa có liên quan, sau đó sao chép tệp cấu hình đã tạo vào thư mục
Tạo và mở tệp
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Làm cho tệp có thể thực thi và hạn chế quyền đối với tệp đó.
Tập lệnh này tạo một bản sao của
Chúng tôi đã tạo tệp chứng chỉ và khóa máy khách ở bước 7. Hãy tạo tệp cấu hình cho tệp này.
Chuyển sang thư mục
Chạy tập lệnh để tạo máy khách tệp cấu hình.
Điều này sẽ tạo ra một tệp có tên
Đây là tệp cấu hình bạn cần chuyển đến máy khách, sau đó sẽ được sử dụng để kết nối với máy chủ OpenVPN. Bạn có thể sử dụng bất kỳ giao thức/chương trình SFTP nào để chuyển tệp đến máy khách.
Chạy lệnh sau để kết nối máy khách với máy chủ VPN.
Bạn sẽ nhận được kết quả tương tự.
Bạn có thể xác minh kết nối bằng cách truy cập URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22468%22%20height=%22172%22%3E%3C/svg%3E
Bạn cũng có thể xác minh thêm bằng cách thực hiện một bài kiểm tra tiêu chuẩn trên trang web
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22398%22%3E%3C/svg%3E
Bạn có thể thấy tên máy chủ OpenDNS mà chúng tôi đã cấu hình trước đó và vị trí của máy chủ khớp với vị trí của máy chủ OpenVPN.
Lệnh trên chạy OpenVPN ở chế độ nền trước, nghĩa là thiết bị đầu cuối sẽ bị chặn. Để đóng kết nối, bạn cần nhấn Ctrl + C. Tuy nhiên, bạn cũng có thể chạy OpenVPN ở chế độ nền. Sử dụng lệnh sau để thực hiện điều đó.
Để tắt kết nối, hãy tìm ID tiến trình của tiến trình đó.
Bạn sẽ nhận được kết quả tương tự.
Như bạn thấy, ID quy trình tương ứng với quy trình OpenVPN là . Tắt kết nối VPN bằng lệnh sau để kết thúc tiến trình.
OpenVPN cung cấp các ứng dụng khách GUI cho Windows, macOS, Android và nền tảng iOS nơi bạn có thể nhập tệp cấu hình máy khách để kết nối.
Chuyển sang
Chạy tập lệnh với tùy chọn
Bạn sẽ được nhắc nếu bạn muốn thu hồi chứng chỉ.
Điều này sẽ thu hồi chứng chỉ trên máy chủ CA. Tuy nhiên, máy chủ OpenVPN không có cách nào để kiểm tra trạng thái thu hồi. Để thực hiện được điều đó, chúng ta cần tạo Danh sách thu hồi chứng chỉ (CRL) và chuyển nó đến máy chủ OpenVPN.
Tạo CRL.
Bạn sẽ được nhắc nhập mật khẩu CA. Lệnh trên tạo ra một tệp
Sao chép tệp này vào máy chủ OpenVPN.
Đăng nhập lại vào máy chủ OpenVPN và sao chép tệp CRL vào
Mở tệp cấu hình máy chủ OpenVPN cho chỉnh sửa.
Thêm dòng sau vào cuối tệp. Thao tác này hướng dẫn máy chủ OpenVPN kiểm tra danh sách thu hồi đối với các máy khách đã bị hạn chế.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại máy chủ OpenVPN để áp dụng changes.
Máy khách không thể kết nối với máy chủ OpenVPN nữa.
Trong hướng dẫn của mình, chúng tôi sẽ cài đặt OpenVPN trên máy chủ Rocky Linux 9 và định cấu hình để có thể truy cập từ máy khách, đồng thời tạo kết nối VPN giữa chúng để chuyển hướng toàn bộ lưu lượng truy cập từ máy khách qua máy chủ OpenVPN.
Điều kiện tiên quyết
-
Một máy chủ chạy Rocky Linux 9 hỗ trợ cả kết nối IPv4 và IPv6. Chúng tôi sẽ gọi đây là máy chủ OpenVPN. Tường lửa Firewalld được bật và đang chạy trên máy chủ này.
-
Một máy chủ chạy Rocky Linux 9 hỗ trợ cả kết nối IPv4 và IPv6. Chúng tôi sẽ thiết lập điều này như một Cơ quan cấp chứng chỉ (CA) riêng tư, mà chúng tôi sẽ gọi là máy chủ CA.
-
Người dùng không phải root có quyền sudo trên cả OpenVPN và máy chủ CA.
-
Máy khách để kết nối với máy chủ OpenVPN. Bạn có thể sử dụng thiết bị cục bộ của mình làm máy khách. OpenVPN có máy khách cho Windows, Linux, macOS, Android và iOS. Bạn có thể sử dụng bất kỳ máy nào trong số chúng để kết nối. Chúng tôi sẽ sử dụng máy tính khách Rocky Linux 9 cho hướng dẫn này.
-
Mọi thứ đều được cập nhật trên OpenVPN và máy chủ CA.
Mã:
$ sudo dnf update
Bước 1 - Thiết lập máy chủ CA
Cơ quan cấp chứng chỉ (CA) là một thực thể chịu trách nhiệm cấp chứng chỉ số để xác minh danh tính trên Internet. Trong hướng dẫn này, chúng tôi sẽ sử dụng một máy chủ độc lập làm máy chủ CA riêng sẽ xác thực chứng chỉ máy chủ và máy khách OpenVPN. Máy chủ CA của bạn không nên chạy bất kỳ dịch vụ nào khác ngoài việc nhập, ký và xác thực chứng chỉ.Bước 1.1 - Cài đặt Easy-RSA
Bước đầu tiên là cài đặt bộ tập lệnheasy-rsa
. easy-rsa
là một công cụ quản lý Cơ quan cấp chứng chỉ được sử dụng để tạo khóa riêng và chứng chỉ gốc công khai.Nhưng trước tiên, chúng ta cần kích hoạt kho lưu trữ EPEL chứa
easy-rsa
gói.
Mã:
$ sudo dnf install epel-release
Mã:
$ sudo dnf install easy-rsa
Bước 1.2 - Tạo thư mục cơ sở hạ tầng khóa công khai
Bước tiếp theo là tạo cơ sở hạ tầng khóa công khai (PKI) trên CA máy chủ.
Mã:
$ mkdir ~/easy-rsa
easy-rsa
đã cài đặt tệp.
Mã:
$ ln -s /usr/share/easy-rsa/3/* ~/easy-rsa/
Mã:
$ chmod 700 /home//easy-rsa
Mã:
$ cd ~/easy-rsa
$ ./easyrsa init-pki
Mã:
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home//easy-rsa/pki
Bước 1.3 - Tạo Cơ quan cấp chứng chỉ
Trước khi bạn có thể tạo khóa riêng và chứng chỉ của CA, bạn cần định cấu hình thông tin tổ chức cho CA đó. Tạo tệpvars
để lưu trữ thông tin bên trong thư mục easy-rsa
và mở nó để chỉnh sửa.
Mã:
$ cd ~/easy-rsa
$ nano vars
Mã:
set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "NewYork"
set_var EASYRSA_REQ_CITY "New York City"
set_var EASYRSA_REQ_ORG "Howtoforge"
set_var EASYRSA_REQ_EMAIL "[emailprotected]"
set_var EASYRSA_REQ_OU "Community"
set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"
Chạy lệnh sau để tạo cặp khóa công khai và riêng tư gốc cho Chứng chỉ của bạn Quyền hạn.
Mã:
$ ./easyrsa build-ca
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home//easy-rsa/pki/ca.crt
Mã:
$ ./easyrsa build-ca nopass
-
~/easy-rsa/pki/ca.crt
là tệp chứng chỉ công khai của CA. Mọi người dùng và máy chủ OpenVPN sẽ cần một bản sao của tệp này. -
~/easy-rsa/pki/ca.key
là khóa riêng do CA sử dụng để ký chứng chỉ cho máy chủ và máy khách OpenVPN. Nếu kẻ tấn công có quyền truy cập vào CA của bạn và sau đó là tệpca.key
của bạn, bạn sẽ cần phải hủy CA của mình. Đây là lý do tại sao tệpca.key
của bạn chỉ nên nằm trên máy CA của bạn và lý tưởng nhất là máy CA của bạn nên ở chế độ ngoại tuyến khi không ký yêu cầu chứng chỉ như một biện pháp bảo mật bổ sung.
Bước 2 - Cài đặt OpenVPN và Easy-RSA trên máy chủ OpenVPN
Đăng nhập vào máy chủ OpenVPN của bạn và cài đặt các gói OpenVPN và Easy-RSA. Ngoài ra, hãy cài đặt kho lưu trữ EPEL trước chúng.
Mã:
$ sudo dnf install epel-release
$ sudo dnf install openvpn easy-rsa
~/easy-rsa
.
Mã:
$ mkdir ~/easy-rsa
easy-rsa
tập lệnh mà chúng tôi đã cài đặt giống như trên máy chủ CA.
Mã:
$ ln -s /usr/share/easy-rsa/3/* ~/easy-rsa/
Mã:
$ chmod 700 ~/easy-rsa
Bước 3 - Tạo PKI cho Máy chủ OpenVPN
Tạo tệpvars
bên trong ~/easy-rsa
thư mục để lưu trữ thông tin cần thiết để tạo PKI và mở nó để chỉnh sửa.
Mã:
$ cd ~/easy-rsa
$ nano vars
Mã:
set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"
Bước tiếp theo là tạo thư mục PKI bằng cách sử dụng tùy chọn
init-pki
. Mặc dù bạn đã chạy lệnh này trên máy chủ CA như một phần của các điều kiện tiên quyết, nhưng bạn vẫn cần chạy lệnh này ở đây vì máy chủ OpenVPN và máy chủ CA của bạn có các thư mục PKI riêng biệt.
Mã:
$ ./easyrsa init-pki
Bước 4 - Tạo Yêu cầu chứng chỉ máy chủ OpenVPN và Khóa riêng
Chuyển sang~/easy-rsa
thư mục trên máy chủ OpenVPN.
Mã:
$ cd ~/easy-rsa
easy-rsa
với tùy chọn gen-req
theo sau là Tên chung (CN) cho máy chủ. Trong hướng dẫn này, chúng tôi sẽ sử dụng server
làm CN cho máy chủ OpenVPN. Chúng tôi cũng sẽ sử dụng tùy chọn nopass
để tránh mọi vấn đề về quyền.
Mã:
$ ./easyrsa gen-req server nopass
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
.....+.................+.+.....+....+........+...+.+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+.+...+..+......+...+....+.....+...+.........+......+.......+...+.....+.......+.....+.....................+.+...+...+...............+........+..........+......+.....+...+.......+........+.+...........+...+.+.....+......+.+...+.........+...+........+.+...........+...+....+..+...+............+.............+.....+...+.......+...+...+...........+.+..+.......+.....+...................+..+...+......+....+..+.......+......+......+......+..+......+....+............+...............+.....+..........+...+..+....+..+.........+....+...............+..............+.......+...+..+...+......+.+....................................+........+....+...+...+.........+.....+.+..+...+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
................+...+....+............+...+...+.....+...+....+...............+......+.....+....+.....+.+.........+...+.................+......+.........+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+...+..+.......+..+...+.+.....+.........+.+..+....+...+.....+......+.......+.........+........+......+.+.....+.+............+..+..........+........+.+..+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.........+...+..+.+........+....+..+......+....+.........+..+............+...+...+.........+.............+..+...+...+.+......+.....+....+.....+.+...+..............................+......+........+..........+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [server]:
Keypair and certificate request completed. Your files are:
req: /home//easy-rsa/pki/reqs/server.req
key: /home//easy-rsa/pki/private/server.key
server.req
. Sao chép khóa máy chủ vào thư mục /etc/openvpn/server
.
Mã:
$ sudo cp /home//easy-rsa/pki/private/server.key /etc/openvpn/server/
Bước 5 - Ký máy chủ OpenVPN CSR
Bước tiếp theo là sao chép tệp CSR vào máy chủ CA để ký. Nếu máy chủ của bạn bật xác thực bằng mật khẩu, bạn chỉ cần sử dụng lệnh sau để sao chép tệp.
Mã:
$ scp /home//easy-rsa/pki/reqs/server.req username@your_ca_server_ip:/tmp
authorized_keys
của máy CA và ngược lại.Nếu bạn không muốn trải qua tất cả những điều này, bạn chỉ cần sao chép các tệp. Mở tệp trên máy chủ OpenVPN, sao chép nội dung của tệp, sau đó tạo tệp trên máy chủ CA và dán nội dung.
Đăng nhập lại vào Máy chủ CA và chuyển đến thư mục
~/easy-rsa
và nhập tệp CSR.
Mã:
$ cd ~/easy-rsa
$ ./easyrsa import-req /tmp/server.req server
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
The request has been successfully imported with a short name of: server
You may now use this name to perform signing operations on this request.
Mã:
$ ./easyrsa sign-req server server
yes
rồi nhấn phím ENTER
để xác nhận.
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate for 825 days:
subject= commonName = server
Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes
Mã:
Using configuration from /home//easy-rsa/pki/easy-rsa-5673.9KntVf/tmp.P5JqSD
Enter pass phrase for /home//easy-rsa/pki/private/ca.key:
802BB2829D7F0000:error:0700006C:configuration file routines:NCONF_get_string:no value:crypto/conf/conf_lib.c:315:group= name=unique_subject
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'server'
Certificate is to be certified until May 12 01:34:35 2025 GMT (825 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home//easy-rsa/pki/issued/server.crt
Mã:
$ scp pki/issued/server.crt username@your_vpn_server_ip:/tmp
$ scp pki/ca.crt username@your_vpn_server_ip:/tmp
/etc/openvpn/server
thư mục.
Mã:
$ sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/server
Bước 6 - Cấu hình Tài liệu mã hóa OpenVPN
Chúng tôi sẽ thêm một khóa bí mật dùng chung mà máy chủ và tất cả máy khách sẽ sử dụng với chỉ thịtls-crypt
của OpenVPN. Điều này đảm bảo rằng máy chủ OpenVPN có thể xử lý lưu lượng truy cập không xác thực, quét cổng và các cuộc tấn công Từ chối dịch vụ. Nó cũng làm cho việc xác định lưu lượng truy cập mạng OpenVPN trở nên khó khăn hơn.Chuyển sang thư mục
~/easy-rsa
.
Mã:
$ cd ~/easy-rsa
tls-crypt
khóa chia sẻ trước. Thao tác này sẽ tạo một tệp có tên là ta.key
Mã:
$ openvpn --genkey secret ta.key
ta.key
đến /etc/openvpn/server
thư mục.
Mã:
$ sudo cp ta.key /etc/openvpn/server
Bước 7 - Tạo Chứng chỉ máy khách và Cặp khóa
Tạo thư mục để lưu trữ chứng chỉ máy khách và các tệp khóa.
Mã:
$ mkdir -p ~/client-configs/keys
Mã:
$ chmod -R 700 ~/client-configs
~/easy-rsa
thư mục.
Mã:
$ cd ~/easy-rsa
client1
làm Tên chung cho máy khách. Bạn có thể sử dụng bất kỳ CN nào cho máy khách.
Mã:
$ ./easyrsa gen-req client1 nopass
ENTER
để xác nhận tên chung. Bạn sẽ nhận được kết quả sau.
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
........+.+.........+.........+...+...+..+.........+......+...+.......+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+...+....+........+.......+........+............+...+......+.......+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...+...............+..........+......+......+.....+....+...........+.+..+......+.+.....................+.........+.........+..+.........+..+...+.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+.....+.+..................+...........+...+.+............+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+.....+.+.........+...+..+.........+....+..+..................+.+......+...+...+.....+...+......+..........+........+...+...+......+...+...+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...+.....+.......+........+.......+........+.+.........+...........+.......+...............+.....+....+.........+.....+.+...+........+...+.+...+..+.+........+............+.........+.+.........+.....+.++.......+.....+.......+.....+....+......+.....+.............+...........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [client1]:
Keypair and certificate request completed. Your files are:
req: /home//easy-rsa/pki/reqs/client1.req
key: /home//easy-rsa/pki/private/client1.key
client1.key
vào ~/client-configs/keys
thư mục.
Mã:
$ cp pki/private/client1.key ~/client-configs/keys/
client1.req
tệp vào máy chủ CA.
Mã:
$ scp pki/reqs/client1.req username@your_ca_server_ip:/tmp
Mã:
$ cd ~/easy-rsa
$ ./easyrsa import-req /tmp/client1.req client1
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
The request has been successfully imported with a short name of: client1
You may now use this name to perform signing operations on this request.
client
làm loại yêu cầu.
Mã:
$ ./easyrsa sign-req client client1
yes
để xác nhận ký yêu cầu và yêu cầu đó đến từ một nguồn đáng tin cậy.
Mã:
Using SSL: openssl OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a client certificate for 825 days:
subject= commonName = client1
Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes
Mã:
Using configuration from /home//easy-rsa/pki/easy-rsa-5908.XM2MNt/tmp.SGLqAt
Enter pass phrase for /home//easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'client1'
Certificate is to be certified until May 12 01:41:45 2025 GMT (825 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home//easy-rsa/pki/issued/client1.crt
Mã:
$ scp pki/issued/client1.crt username@your_server_ip:/tmp
~/client-configs/keys
thư mục.
Mã:
$ cp /tmp/client1.crt ~/client-configs/keys/
ca.crt
và các tệp ta.key
vào thư mục ~/client-configs/keys
và thiết lập các quyền phù hợp cho máy chủ hiện đang đăng nhập của bạn.
Mã:
$ cp ~/easy-rsa/ta.key ~/client-configs/keys/
$ sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
$ sudo chown username.username ~/client-configs/keys/*
Bước 8 - Cấu hình OpenVPN
Sao chép tệpserver.conf
mẫu làm điểm bắt đầu để cấu hình OpenVPN.
Mã:
$ sudo cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/
Mã:
$ sudo nano /etc/openvpn/server/server.conf
HMAC
của tệp bằng cách tìm kiếm Chỉ thị tls-auth
. Bình luận dòng bằng cách thêm dấu chấm phẩy (
Mã:
;tls-auth ta.key 0 # This file is secret
tls-crypt ta.key
cipher
. Giá trị mặc định được đặt thành AES-256-CBC
. Bình luận giá trị mặc định và thêm một dòng khác với mã hóa AES-256-GCM
cung cấp mức độ mã hóa tốt hơn và hiệu suất như đã hiển thị.
Mã:
;cipher AES-256-CBC
cipher AES-256-GCM
auth
để chọn thuật toán tóm tắt thông điệp HMAC.
Mã:
auth SHA256
dh dh2048.pem
và thêm dh none
bên dưới nó.
Mã:
;dh dh2048.pem
dh none
user nobody
và group nobody
và thay đổi chúng thành đã hiển thị.
Mã:
user nobody
group nobody
Chuyển hướng tất cả lưu lượng qua VPN
Các thiết lập ở trên tạo kết nối VPN giữa máy khách và máy chủ, nhưng sẽ không buộc bất kỳ kết nối nào sử dụng đường hầm. Để thực hiện, hãy bắt đầu bằng cách tìm dòngpush "redirect-gateway def1 bypass-dhcp"
. Dòng này yêu cầu máy khách chuyển hướng toàn bộ lưu lượng truy cập của mình qua máy chủ OpenVPN. Bỏ chú thích dòng này để bật chức năng.
Mã:
push "redirect-gateway def1 bypass-dhcp"
dhcp-option
bên dưới dòng này. Xóa dấu chấm phẩy ở đầu cả hai dòng. Điều này cho biết máy khách sử dụng bộ giải quyết OpenDNS.
Mã:
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
Thay đổi cổng và giao thức
OpenVPN sử dụng cổng 1194 và giao thức UDP theo mặc định để chấp nhận kết nối máy khách. Bạn có thể thay đổi cổng tùy theo nhu cầu của mình. Nếu bạn không lưu trữ nội dung web trên máy chủ OpenVPN của mình, bạn có thể sử dụng cổng 443.Tìm dòng
;port 1194
, bỏ ghi chú bằng cách xóa dấu chấm phẩy và thay đổi giá trị của dòng đó.
Mã:
port 443
proto udp
và bình luận bằng cách thêm dấu chấm phẩy vào trước dòng đó. Và, bỏ chú thích dòng proto tcp
bằng cách xóa dấu chấm phẩy như hình minh họa.
Mã:
proto tcp
;proto udp
explicit-exit-notify
chỉ thị từ 1
đến 0
, vì chỉ thị này chỉ được UDP sử dụng.
Mã:
explicit-exit-notify 0
Trỏ đến thông tin xác thực không mặc định
Nếu bạn đã chọn một tên khác trong./easy-rsa gen-req server
lệnh trước đó, bạn cần sửa đổi cert
và key
các dòng sao cho chúng trỏ đến .crt
thích hợp và .key
tệp. Vì chúng ta đang sử dụng tên mặc định server
, nên giá trị mặc định là đúng.
Mã:
cert server.crt
key server.key # This file should be kept secret
Thay đổi vị trí tệp nhật ký cho SELinux
Tìm dòngstatus openvpn-status.log
và thay đổi thành nội dung sau.
Mã:
status /var/log/openvpn-status.log
/run/openvpn/openvpn-status.log
thư mục mà nếu SELinux được bật sẽ gây ra sự cố. Cách khắc phục dễ dàng là thay đổi vị trí thành thư mục nhật ký hệ thống.Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bước 9 - Điều chỉnh cấu hình mạng máy chủ OpenVPN
Bước tiếp theo là cấu hình cấu hình mạng của máy chủ để cho phép OpenVPN định tuyến lưu lượng truy cập một cách chính xác. Điều đầu tiên chúng ta cần cấu hình là Chuyển tiếp cổng.Mở tệp
/etc/sysctl.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/sysctl.conf
Mã:
net.ipv4.ip_forward = 1
Để đọc tệp và tải các giá trị mới cho phiên hiện tại, hãy sử dụng lệnh sau.
Mã:
$ sudo sysctl -p
net.ipv4.ip_forward = 1
Bước 10 - Cấu hình Tường lửa
Chúng tôi đã cài đặt và cấu hình OpenVPN, nhưng chưa thiết lập để xử lý lưu lượng truy cập đến của khách hàng. Chúng ta cần cấu hình Tường lửa cho việc này.Đầu tiên, hãy kiểm tra các vùng đang hoạt động trong Tường lửa
firewalld
của bạn.
Mã:
$ sudo firewall-cmd --get-active-zones
Mã:
public interfaces: eth0 eth1
tun0
là trusted
vùng, hãy chạy các lệnh sau để thêm máy chủ vào vùng đó.
Mã:
$ sudo firewall-cmd --zone=trusted --add-interface=tun0
$ sudo firewall-cmd --permanent --zone=trusted --add-interface=tun0
Mã:
$ sudo firewall-cmd --permanent --add-service openvpn
$ sudo firewall-cmd --permanent --zone=trusted --add-service openvpn
Mã:
$ sudo firewall-cmd --reload
Mã:
$ sudo firewall-cmd --list-services --zone=trusted
openvpn
Thêm các quy tắc ngụy trang bằng các lệnh sau.
Mã:
$ sudo firewall-cmd --add-masquerade
$ sudo firewall-cmd --add-masquerade --permanent
Mã:
$ sudo firewall-cmd --query-masquerade
yes
DEVICE
trong hướng dẫn của chúng tôi) biểu thị giao diện mạng chính được máy chủ sử dụng, sau đó sử dụng biến đó để thêm vĩnh viễn quy tắc định tuyến.
Mã:
$ DEVICE=$(ip route | awk '/^default via/ {print $5}')
$ sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $DEVICE -j MASQUERADE
Mã:
$ sudo firewall-cmd --permanent --add-port=443/tcp
Mã:
$ sudo firewall-cmd --reload
Bước 11 - Khởi động OpenVPN
Bật dịch vụ OpenVPN để khởi động tại khởi động.
Mã:
$ sudo systemctl -f enable [emailprotected]
Mã:
$ sudo systemctl start [emailprotected]
Mã:
$ sudo systemctl status [emailprotected]
Mã:
? [emailprotected] - OpenVPN service for server Loaded: loaded (/usr/lib/systemd/system/[emailprotected]; enabled; vendor preset: disabled) Active: active (running) since Tue 2023-02-07 02:09:36 UTC; 13s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Main PID: 4789 (openvpn) Status: "Initialization Sequence Completed" Tasks: 1 (limit: 4443) Memory: 1.7M CPU: 21ms CGroup: /system.slice/system-openvpn\x2dserver.slice/[emailprotected] ??4789 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --cipher AES-256-GCM --data-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC --config server.conf
Feb 07 02:09:36 openvpn-server openvpn[4789]: Listening for incoming TCP connection on [AF_INET][undef]:443
Feb 07 02:09:36 openvpn-server openvpn[4789]: TCPv4_SERVER link local (bound): [AF_INET][undef]:443
Feb 07 02:09:36 openvpn-server openvpn[4789]: TCPv4_SERVER link remote: [AF_UNSPEC]
Feb 07 02:09:36 openvpn-server openvpn[4789]: GID set to nobody
Feb 07 02:09:36 openvpn-server openvpn[4789]: UID set to nobody
Feb 07 02:09:36 openvpn-server openvpn[4789]: MULTI: multi_init called, r=256 v=256
Feb 07 02:09:36 openvpn-server openvpn[4789]: IFCONFIG POOL IPv4: base=10.8.0.4 size=62
Feb 07 02:09:36 openvpn-server openvpn[4789]: IFCONFIG POOL LIST
Feb 07 02:09:36 openvpn-server openvpn[4789]: MULTI: TCP INIT maxclients=1024 maxevents=1028
Feb 07 02:09:36 openvpn-server openvpn[4789]: Initialization Sequence Completed
Bước 12 - Tạo cấu hình máy khách
Trước khi thử nghiệm máy khách, chúng ta cần tạo các tệp cấu hình cho máy khách mà chúng ta sẽ sử dụng. Tạo một thư mục để lưu trữ các tệp cấu hình máy khách.
Mã:
$ mkdir -p ~/client-configs/files
Mã:
$ cp /usr/share/doc/openvpn/sample/sample-config-files/client.conf ~/client-configs/base.conf
Mã:
$ nano ~/client-configs/base.conf
remote
và đặt lệnh này để trỏ đến địa chỉ IP công khai của Máy chủ OpenVPN của bạn. Ngoài ra, hãy thay đổi cổng để khớp với cổng bạn đã chọn trước đó.
Mã:
. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote your_server_ip 443
. . .
Mã:
proto tcp
user
và group
chỉ thị bằng cách xóa dấu chấm phẩy ở phía trước chúng.
Mã:
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nobody
ca
, cert
và key
và chú thích chúng bằng cách đặt dấu chấm phẩy trước chúng. Điều này là do chúng ta sẽ thêm các chứng chỉ và khóa vào trong tệp cấu hình máy khách.
Mã:
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
;ca ca.crt
;cert client.crt
;key client.key
tls-auth
vì chúng ta sẽ thêm ta.key
trực tiếp vào tệp cấu hình máy khách.
Mã:
# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1
cipher
và auth
cài đặt mà bạn đặt trong `/etc/openvpn/server/server.conf
tệp.
Mã:
cipher AES-256-GCM
auth SHA256
key-direction
chỉ thị và đặt nó thành 1
để VPN hoạt động chính xác.
Mã:
key-direction 1
~/client-configs/files
.Tạo và mở tệp
make_config.sh
trong ~/client-configs
thư mục.
Mã:
$ nano ~/client-configs/make_config.sh
Mã:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/client-configs/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \ ${OUTPUT_DIR}/${1}.ovpn
Làm cho tệp có thể thực thi và hạn chế quyền đối với tệp đó.
Mã:
$ chmod 700 ~/client-configs/make_config.sh
base.conf
, thu thập tất cả các tệp chứng chỉ và khóa, trích xuất nội dung của chúng, thêm chúng vào tệp cấu hình cơ sở và xuất tất cả các tệp đó để tạo tệp cấu hình máy khách mới. Mỗi khi bạn thêm một máy khách mới, bạn cần tạo khóa và chứng chỉ mới cho máy khách đó, sau đó chạy tập lệnh này để tạo tệp cấu hình máy khách.Chúng tôi đã tạo tệp chứng chỉ và khóa máy khách ở bước 7. Hãy tạo tệp cấu hình cho tệp này.
Chuyển sang thư mục
~/client-configs
.
Mã:
$ cd ~/client-configs
Mã:
$ ./make_config.sh client1
client1.ovpn
. Thay đổi tham số nếu bạn muốn tên tệp khác. Kiểm tra nội dung thư mục.
Mã:
$ ls ~/client-configs/files
client1.ovpn
Bước 13 - Cài đặt và kiểm tra kết nối máy khách
Trong hướng dẫn này, chúng tôi sử dụng máy khách Rocky Linux 9. Cài đặt OpenVPN thông qua lệnh sau.
Mã:
$ sudo dnf install openvpn
Mã:
$ sudo openvpn --config client1.ovpn
Mã:
2023-02-07 11:42:05 OpenVPN 2.5.8 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Nov 1 2022
2023-02-07 11:42:05 library versions: OpenSSL 3.0.1 14 Dec 2021, LZO 2.10
2023-02-07 11:42:05 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2023-02-07 11:42:05 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2023-02-07 11:42:05 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2023-02-07 11:42:05 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2023-02-07 11:42:05 TCP/UDP: Preserving recently used remote address: [AF_INET]142.93.225.189:443
2023-02-07 11:42:05 Socket Buffers: R=[131072->131072] S=[16384->16384]
2023-02-07 11:42:05 Attempting to establish TCP connection with [AF_INET]142.93.225.189:443 [nonblock]
2023-02-07 11:42:05 TCP connection established with [AF_INET]142.93.225.189:443
2023-02-07 11:42:05 TCP_CLIENT link local: (not bound)
2023-02-07 11:42:05 TCP_CLIENT link remote: [AF_INET]142.93.225.189:443
2023-02-07 11:42:05 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
2023-02-07 11:42:05 TLS: Initial packet from [AF_INET]142.93.225.189:443, sid=7c9feddd a75e1d1f
2023-02-07 11:42:06 VERIFY OK: depth=1, CN=Easy-RSA CA
2023-02-07 11:42:06 VERIFY KU OK
2023-02-07 11:42:06 Validating certificate extended key usage
2023-02-07 11:42:06 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2023-02-07 11:42:06 VERIFY EKU OK
2023-02-07 11:42:06 VERIFY OK: depth=0, CN=server
2023-02-07 11:42:06 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 2048 bit RSA, signature: RSA-SHA256
2023-02-07 11:42:06 [server] Peer Connection Initiated with [AF_INET]142.93.225.189:443
2023-02-07 11:42:06 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'
2023-02-07 11:42:06 OPTIONS IMPORT: timers and/or timeouts modified
2023-02-07 11:42:06 OPTIONS IMPORT: --ifconfig/up options modified
2023-02-07 11:42:06 OPTIONS IMPORT: route options modified
2023-02-07 11:42:06 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2023-02-07 11:42:06 OPTIONS IMPORT: peer-id set
2023-02-07 11:42:06 OPTIONS IMPORT: adjusting link_mtu to 1626
2023-02-07 11:42:06 OPTIONS IMPORT: data channel crypto options modified
2023-02-07 11:42:06 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2023-02-07 11:42:06 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2023-02-07 11:42:06 net_route_v4_best_gw query: dst 0.0.0.0
2023-02-07 11:42:06 net_route_v4_best_gw result: via 10.0.2.2 dev enp0s3
2023-02-07 11:42:06 ROUTE_GATEWAY 10.0.2.2/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:fd:d4:94
2023-02-07 11:42:06 TUN/TAP device tun0 opened
2023-02-07 11:42:06 net_iface_mtu_set: mtu 1500 for tun0
2023-02-07 11:42:06 net_iface_up: set tun0 up
2023-02-07 11:42:06 net_addr_ptp_v4_add: 10.8.0.6 peer 10.8.0.5 dev tun0
2023-02-07 11:42:06 net_route_v4_add: 142.93.225.189/32 via 10.0.2.2 dev [NULL] table 0 metric -1
2023-02-07 11:42:06 net_route_v4_add: 0.0.0.0/1 via 10.8.0.5 dev [NULL] table 0 metric -1
2023-02-07 11:42:06 net_route_v4_add: 128.0.0.0/1 via 10.8.0.5 dev [NULL] table 0 metric -1
2023-02-07 11:42:06 net_route_v4_add: 10.8.0.1/32 via 10.8.0.5 dev [NULL] table 0 metric -1
2023-02-07 11:42:06 GID set to nobody
2023-02-07 11:42:06 UID set to nobody
2023-02-07 11:42:06 Initialization Sequence Completed
https://whatismyip.com
trong trình duyệt của bạn và bạn sẽ thấy địa chỉ IP và vị trí máy chủ OpenVPN của mình.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22468%22%20height=%22172%22%3E%3C/svg%3E
Bạn cũng có thể xác minh thêm bằng cách thực hiện một bài kiểm tra tiêu chuẩn trên trang web
https://www.dnsleaktest.com/
.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22398%22%3E%3C/svg%3E
Bạn có thể thấy tên máy chủ OpenDNS mà chúng tôi đã cấu hình trước đó và vị trí của máy chủ khớp với vị trí của máy chủ OpenVPN.
Lệnh trên chạy OpenVPN ở chế độ nền trước, nghĩa là thiết bị đầu cuối sẽ bị chặn. Để đóng kết nối, bạn cần nhấn Ctrl + C. Tuy nhiên, bạn cũng có thể chạy OpenVPN ở chế độ nền. Sử dụng lệnh sau để thực hiện điều đó.
Mã:
sudo openvpn --config client1.ovpn --daemon
Mã:
$ ps aux | grep openvpn
Mã:
nobody 4357 0.3 0.0 13468 8432 ? Ss 15:35 0:00 openvpn --config client1.ovpn --daemon
username 4406 0.0 0.0 17732 2432 pts/0 S+ 15:35 0:00 grep --color=auto openvpn
Mã:
$ sudo kill -9 4357
Bước 14 - Thu hồi chứng chỉ máy khách
Nếu bạn muốn thu hồi chứng chỉ của máy khách để ngăn chặn quyền truy cập, bạn có thể thực hiện bằng cách đăng nhập vào máy chủ CA.Chuyển sang
~/easy-rsa
thư mục.
Mã:
$ cd ~/easy-rsa
revoke
theo sau là máy khách name.
Mã:
$ ./easyrsa revoke client1
Mã:
Please confirm you wish to revoke the certificate with the following subject:
subject= commonName = client1
Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes
. . .
Revoking Certificate 8348B3F146A765581946040D5C4D590A
. . .
Tạo CRL.
Mã:
$ ./easyrsa gen-crl
crl.pem
.Sao chép tệp này vào máy chủ OpenVPN.
Mã:
$ scp ~/easy-rsa/pki/crl.pem username@your_server_ip:/tmp
/etc/openvpn/server
thư mục.
Mã:
$ sudo cp /tmp/crl.pem /etc/openvpn/server/
Mã:
$ sudo nano /etc/openvpn/server/server.conf
Mã:
crl-verify crl.pem
Khởi động lại máy chủ OpenVPN để áp dụng changes.
Mã:
sudo systemctl restart [emailprotected]