Mục lục

Không có mục lục
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Cách thiết lập và định cấu hình máy chủ OpenVPN trên Ubuntu 20.04 (Phần 2/2)

Ngày đăng: 24 tháng 3 năm 2023

Ubuntu

Bước 9 - Cấu hình tường lửa

Cho đến nay, bạn đã cài đặt OpenVPN trên máy chủ của mình, thiết lập cấu hình nó và tạo các khóa cũng như chứng chỉ cần thiết để máy khách của bạn truy cập VPN. Tuy nhiên, bạn chưa cung cấp cho OpenVPN bất kỳ hướng dẫn nào về nơi gửi lưu lượng truy cập web đến từ máy khách. Bạn có thể quy định cách máy chủ xử lý lưu lượng máy khách bằng cách thiết lập một số quy tắc tường lửa và cấu hình định tuyến.

Giả sử bạn đã làm theo các điều kiện tiên quyết khi bắt đầu hướng dẫn này, thì bạn đã cài đặt và chạy ufw trên máy chủ của mình. Để cho phép OpenVPN đi qua tường lửa, bạn sẽ cần bật giả mạo (masquerading), một khái niệm iptables cung cấp dịch địa chỉ mạng động (NAT) nhanh chóng để định tuyến chính xác các kết nối máy khách.

Trước khi mở tệp cấu hình tường lửa để thêm các quy tắc giả mạo, trước tiên bạn phải tìm giao diện mạng công cộng của máy. Để làm điều này, gõ:

  1. ip route list default

Giao diện chung của bạn là chuỗi được tìm thấy trong đầu ra của lệnh này theo sau từ “dev”. Ví dụ: kết quả này hiển thị giao diện có tên eth0, được đánh dấu bên dưới:

Output
default via 159.65.160.1 dev `eth0` proto static

Khi bạn có giao diện được liên kết với tuyến đường mặc định của mình, hãy mở tệp /etc/ufw/before.rules để thêm cấu hình có liên quan:

  1. sudo nano /etc/ufw/before.rules

Các quy tắc UFW thường được thêm vào bằng cách sử dụng lệnh ufw. Tuy nhiên, các quy tắc được liệt kê trong tệp before.rules được đọc và đưa vào vị trí trước khi các quy tắc UFW thông thường được tải. Về phía đầu tệp, thêm các dòng được đánh dấu bên dưới. Điều này sẽ đặt chính sách mặc định cho chuỗi POSTROUTING trong bảng nat và giả mạo bất kỳ lưu lượng truy cập nào đến từ VPN. Hãy nhớ thay thế eth0 trong dòng -A POSTROUTING bên dưới bằng giao diện bạn tìm thấy trong lệnh trên:

/etc/ufw/before.rules
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#
 
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES
 
# Don't delete these required lines, otherwise there will be errors
*filter
. . .

Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, bạn cần yêu cầu UFW cho phép các gói được chuyển tiếp theo mặc định. Để thực hiện việc này, hãy mở tệp /etc/default/ufw:

  1. sudo nano /etc/default/ufw

Bên trong, tìm lệnh DEFAULT_FORWARD_POLICY và thay đổi giá trị từ DROP thành ACCEPT:

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, tự điều chỉnh tường lửa để cho phép lưu lượng truy cập vào OpenVPN. Nếu bạn không thay đổi cổng và giao thức trong tệp /etc/openvpn/server.conf, bạn sẽ cần mở lưu lượng UDP tới cổng 1194. Nếu bạn đã sửa đổi cổng và/hoặc giao thức, hãy thay thế các giá trị bạn đã chọn tại đây.

Trong trường hợp bạn quên thêm cổng SSH khi làm theo hướng dẫn điều kiện tiên quyết, hãy thêm nó vào đây:

  1. sudo ufw allow 1194/udp
  2. sudo ufw allow OpenSSH

Lưu ý: Nếu bạn đang sử dụng một tường lửa khác hoặc đã tùy chỉnh cấu hình UFW của mình, bạn có thể cần thêm các quy tắc tường lửa bổ sung. Ví dụ: nếu bạn quyết định tạo đường hầm tất cả lưu lượng truy cập mạng của mình qua kết nối VPN, bạn sẽ cần đảm bảo rằng lưu lượng truy cập cổng 53 được phép cho các yêu cầu DNS và các cổng như 80443 tương ứng cho lưu lượng HTTP và HTTPS. Nếu có các giao thức khác mà bạn đang sử dụng qua VPN thì bạn cũng sẽ cần thêm các quy tắc cho chúng.

Sau khi thêm các quy tắc đó, hãy tắt và bật lại UFW để khởi động lại và tải các thay đổi từ tất cả các tệp bạn đã sửa đổi:

  1. sudo ufw disable
  2. sudo ufw enable

Máy chủ của bạn hiện đã được thiết lập cấu hình để xử lý chính xác lưu lượng OpenVPN. Với các quy tắc tường lửa đã có, chúng tôi có thể bắt đầu dịch vụ OpenVPN trên máy chủ.

Bước 10 — Bắt đầu OpenVPN

OpenVPN chạy dưới dạng dịch vụ systemd, vì vậy chúng tôi có thể sử dụng systemctl để quản lý nó. Chúng tôi sẽ thiết lập cấu hình OpenVPN để khởi động khi khởi động để bạn có thể kết nối với VPN của mình bất kỳ lúc nào miễn là máy chủ của bạn đang chạy. Để làm điều này, kích hoạt dịch vụ OpenVPN bằng cách thêm nó vào systemctl:

  1. sudo systemctl -f enable openvpn-server@server.service

Sau đó bắt đầu dịch vụ OpenVPN:

  1. sudo systemctl start openvpn-server@server.service

Kiểm tra kỹ xem dịch vụ OpenVPN có đang hoạt động hay không bằng lệnh sau. Bạn sẽ thấy active (running) trong đầu ra:

  1. sudo systemctl status openvpn-server@server.service
Output
● openvpn-server@server.service - OpenVPN service for server Loaded: loaded (/lib/systemd/system/openvpn-server@.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-04-29 15:39:59 UTC; 6s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Main PID: 16872 (openvpn) Status: "Initialization Sequence Completed" Tasks: 1 (limit: 1137) Memory: 1.0M CGroup: /system.slice/system-openvpn\x2dserver.slice/openvpn-server@server.service └─16872 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --c> . . . . . . Apr 29 15:39:59 ubuntu-20 openvpn[16872]: Initialization Sequence Completed

Bây giờ chúng tôi đã hoàn thành cấu hình phía máy chủ cho OpenVPN. Tiếp theo, bạn sẽ thiết lập cấu hình máy khách của mình và kết nối với Máy chủ OpenVPN.

Bước 11 — Tạo cơ sở hạ tầng cấu hình máy khách

Việc tạo các tệp cấu hình cho các máy khách OpenVPN có thể hơi phức tạp, vì mọi máy khách phải có cấu hình riêng và mỗi máy phải phù hợp với các cài đặt được nêu trong tệp cấu hình của máy chủ. Thay vì viết một tệp cấu hình duy nhất chỉ có thể được sử dụng trên một máy khách, bước này phác thảo quy trình xây dựng cơ sở hạ tầng cấu hình máy khách mà bạn có thể sử dụng để tạo các tệp cấu hình nhanh chóng. Trước tiên, bạn sẽ tạo một tệp cấu hình “base”, sau đó xây dựng một tập lệnh cho phép bạn tạo các tệp cấu hình máy khách, chứng chỉ và khóa duy nhất nếu cần.

Bắt đầu bằng cách tạo một thư mục mới, nơi bạn sẽ lưu trữ các tệp cấu hình máy khách trong thư mục client-configs mà bạn đã tạo trước đó:

  1. mkdir -p ~/client-configs/files

Tiếp theo, sao chép tệp cấu hình ứng dụng khách mẫu vào thư mục client-configs để sử dụng làm cấu hình cơ sở của bạn:

  1. cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

Mở tệp mới này bằng nano hoặc trình soạn thảo văn bản ưa thích của bạn:

  1. nano ~/client-configs/base.conf

Bên trong, xác định vị trí chỉ thị remote. Điều này trỏ máy khách đến địa chỉ máy chủ OpenVPN của bạn — địa chỉ IP công cộng của máy chủ OpenVPN của bạn. Nếu bạn quyết định thay đổi cổng mà máy chủ OpenVPN đang lắng nghe, bạn cũng sẽ cần thay đổi 1194 thành cổng bạn đã chọn:

~/client-configs/base.conf
. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote your_server_ip 1194
. . .

Đảm bảo rằng giao thức khớp với giá trị bạn đang sử dụng trong cấu hình máy chủ:

~/client-configs/base.conf
proto udp

Tiếp theo, bỏ ghi chú chỉ thị của usergroup bằng cách xóa ; ký ở đầu mỗi dòng:

~/client-configs/base.conf
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Tìm các lệnh đặt ca, cert, and key. Nhận xét các chỉ thị này vì bạn sẽ sớm thêm các chứng chỉ và khóa trong chính tệp đó:

~/client-configs/base.conf
# 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

Tương tự, hãy nhận xét lệnh tls-auth, vì bạn sẽ thêm ta.key trực tiếp vào tệp cấu hình máy khách (và máy chủ được thiết lập để sử dụng tls-crypt):

~/client-configs/base.conf
# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

Phản ánh cài đặt cipherauth mà bạn đã đặt trong tệp /etc/openvpn/server/server.conf:

~/client-configs/base.conf
cipher AES-256-GCM
auth SHA256

Tiếp theo, thêm chỉ thị key-direction vào đâu đó trong tệp. Bạn phải đặt giá trị này thành “1” để VPN hoạt động chính xác trên máy khách:

~/client-configs/base.conf
key-direction 1

Cuối cùng, thêm một vài dòng nhận xét để xử lý các phương pháp khác nhau mà máy khách VPN dựa trên Linux sẽ sử dụng để phân giải DNS. Bạn sẽ thêm hai bộ dòng nhận xét tương tự nhưng riêng biệt. Bộ đầu tiên dành cho các máy khách không sử dụng systemd-resolved để quản lý DNS. Các máy khách này dựa vào tiện ích resolvconf để cập nhật thông tin DNS cho các máy khách Linux.

~/client-configs/base.conf
; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

Bây giờ, hãy thêm một nhóm dòng khác cho các máy khách sử dụng systemd-resolved để phân giải DNS:

~/client-configs/base.conf
; script-security 2
; up /etc/openvpn/update-systemd-resolved
; down /etc/openvpn/update-systemd-resolved
; down-pre
; dhcp-option DOMAIN-ROUTE .

Lưu và đóng tệp khi bạn hoàn tất.

Ở phần sau của Bước 13 - Cài đặt bước Cấu hình Máy khách của hướng dẫn này, bạn sẽ tìm hiểu cách xác định cách thức phân giải DNS hoạt động trên các máy khách Linux và phần nào cần bỏ ghi chú.

Tiếp theo, chúng tôi sẽ tạo một tập lệnh sẽ biên dịch cấu hình cơ sở của bạn với chứng chỉ, khóa và tệp mã hóa có liên quan, sau đó đặt cấu hình đã tạo vào thư mục ~/client-configs/files. Mở một tệp mới có tên make_config.sh trong thư mục ~/client-configs:

  1. nano ~/client-configs/make_config.sh

Bên trong, thêm nội dung sau:

~/client-configs/make_config.sh
#!/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} \
    <(echo -e '<ca>') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${KEY_DIR}/${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${KEY_DIR}/${1}.key \
    <(echo -e '</key>\n<tls-crypt>') \
    ${KEY_DIR}/ta.key \
    <(echo -e '</tls-crypt>') \
    > ${OUTPUT_DIR}/${1}.ovpn

Lưu và đóng tệp khi bạn hoàn tất.

Trước khi tiếp tục, hãy nhớ đánh dấu tệp này là tệp thực thi bằng cách nhập:

  1. chmod 700 ~/client-configs/make_config.sh

Tập lệnh này sẽ tạo một bản sao của tệp base.conf mà bạn đã tạo, thu thập tất cả các tệp chứng chỉ và khóa mà bạn đã tạo cho ứng dụng khách của mình, trích xuất nội dung của chúng, nối chúng vào bản sao của tệp cấu hình cơ sở và xuất tất cả nội dung này nội dung vào một tệp cấu hình máy khách mới. Điều này có nghĩa là, thay vì phải quản lý riêng các tệp cấu hình, chứng chỉ và khóa của máy khách, tất cả thông tin cần thiết sẽ được lưu trữ ở một nơi. Lợi ích của việc sử dụng phương pháp này là nếu bạn cần thêm ứng dụng khách trong tương lai, bạn có thể chạy tập lệnh này để nhanh chóng tạo tệp cấu hình mới và đảm bảo rằng tất cả thông tin quan trọng được lưu trữ trong một tệp duy nhất, dễ truy cập vị trí.

Xin lưu ý rằng bất cứ khi nào bạn thêm ứng dụng khách mới, bạn sẽ cần tạo các khóa và chứng chỉ mới cho ứng dụng đó trước khi có thể chạy tập lệnh này và tạo tệp cấu hình của nó. Bạn sẽ thực hành một số cách sử dụng tập lệnh này trong bước tiếp theo.

Bước 12 — Tạo Cấu hình Máy khách

Nếu làm theo hướng dẫn, bạn đã tạo chứng chỉ ứng dụng khách và khóa có tên tương ứng là client1.crtclient1.key ở Bước 6. Bạn có thể tạo tệp cấu hình cho các thông tin đăng nhập này bằng cách di chuyển vào thư mục ~/client-configs và chạy tập lệnh bạn đã tạo ở cuối bước trước:

  1. cd ~/client-configs
  2. ./make_config.sh client1

Thao tác này sẽ tạo một tệp có tên client1.ovpn trong thư mục ~/client-configs/files của bạn:

  1. ls ~/client-configs/files
Output
client1.ovpn

Bạn cần chuyển tệp này sang thiết bị mà bạn định sử dụng làm ứng dụng khách. Chẳng hạn, đây có thể là máy tính cục bộ hoặc thiết bị di động của bạn.

Mặc dù các ứng dụng chính xác được sử dụng để thực hiện quá trình truyền này sẽ phụ thuộc vào hệ điều hành của thiết bị và tùy chọn cá nhân của bạn, một phương pháp an toàn và đáng tin cậy là sử dụng SFTP (giao thức truyền tệp SSH - SSH file transfer protocol) hoặc SCP (Bản sao an toàn - Secure Copy) trên phần phụ trợ. Điều này sẽ vận chuyển các tệp xác thực VPN của khách hàng của bạn qua một kết nối được mã hóa.

Dưới đây là một lệnh SFTP mẫu mà bạn có thể chạy từ máy tính cục bộ của mình (macOS hoặc Linux). Thao tác này sẽ sao chép tệp client1.ovpn mà chúng ta đã tạo ở bước trước vào thư mục chính của bạn:

  1. sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/

Dưới đây là một số công cụ và hướng dẫn để truyền tệp an toàn từ máy chủ OpenVPN sang máy tính cục bộ:

  • WinSCP
  • Cách sử dụng SFTP để truyền tệp an toàn bằng máy chủ từ xa
  • Cách sử dụng Filezilla để truyền và quản lý tệp an toàn trên VPS của bạn

Bước 13 — Cài đặt Cấu hình Máy khách

Phần này trình bày cách cài đặt cấu hình VPN máy khách trên Windows, macOS, Linux, iOS và Android. Không có hướng dẫn nào trong số các hướng dẫn khách này phụ thuộc vào nhau, vì vậy, vui lòng bỏ qua bất kỳ hướng dẫn nào áp dụng cho thiết bị của bạn.

Kết nối OpenVPN sẽ có cùng tên với tên mà bạn đã gọi cho tệp .ovpn. Liên quan đến hướng dẫn này, điều này có nghĩa là kết nối được đặt tên là client1.ovpn, phù hợp với tệp khách hàng đầu tiên mà bạn đã tạo.

Windows

Cài đặt

Tải xuống ứng dụng khách OpenVPN cho Windows từ trang Tải xuống của OpenVPN. Chọn phiên bản trình cài đặt thích hợp cho phiên bản Windows của bạn.

Lưu ý: OpenVPN cần có quyền quản trị để cài đặt.

Sau khi cài đặt OpenVPN, hãy sao chép tệp .ovpn vào:

C:\Program Files\OpenVPN\config

Khi bạn khởi chạy OpenVPN, nó sẽ tự động định vị cấu hình và làm cho nó khả dụng.

Bạn phải chạy OpenVPN với tư cách quản trị viên mỗi khi nó được sử dụng, kể cả bằng tài khoản quản trị. Để thực hiện việc này mà không cần phải nhấp chuột phải và chọn Run as administrator mỗi khi bạn sử dụng VPN, bạn phải đặt trước điều này từ tài khoản quản trị. Điều này cũng có nghĩa là người dùng tiêu chuẩn sẽ cần nhập mật khẩu của quản trị viên để sử dụng OpenVPN. Mặt khác, người dùng tiêu chuẩn không thể kết nối đúng cách với máy chủ trừ khi ứng dụng OpenVPN trên máy khách có quyền quản trị, vì vậy các đặc quyền nâng cao là cần thiết.

Để đặt ứng dụng OpenVPN luôn chạy với tư cách quản trị viên, hãy nhấp chuột phải vào biểu tượng lối tắt của nó và chuyển đến Properties. Ở cuối tab Compatibility, nhấp vào nút Change settings for all users. Trong cửa sổ mới, hãy kiểm tra Run this program as an administrator.

Kết nối

Mỗi lần bạn khởi chạy OpenVPN GUI, Windows sẽ hỏi bạn có muốn cho phép chương trình thực hiện các thay đổi đối với máy tính của bạn không. Nhấp vào Yes. Khởi chạy ứng dụng khách OpenVPN chỉ đặt applet vào khay hệ thống để bạn có thể kết nối và ngắt kết nối VPN khi cần; nó không thực sự tạo kết nối VPN.

Khi OpenVPN được bắt đầu, hãy bắt đầu kết nối bằng cách truy cập ứng dụng phụ trên khay hệ thống và nhấp chuột phải vào biểu tượng ứng dụng OpenVPN. Thao tác này sẽ mở menu ngữ cảnh. Chọn client1 ở đầu menu (đó là hồ sơ client1.ovpn của bạn) và chọn Connect.

Một cửa sổ trạng thái sẽ mở ra hiển thị đầu ra nhật ký trong khi kết nối được thiết lập và một thông báo sẽ hiển thị sau khi máy khách được kết nối.

Ngắt kết nối khỏi VPN theo cách tương tự: Đi vào ứng dụng của khay hệ thống, nhấp chuột phải vào biểu tượng ứng dụng của OpenVPN, chọn cấu hình máy khách và nhấp vào Disconnect.

macOS

Cài đặt

Tunnelblick là ứng dụng khách OpenVPN mã nguồn mở, miễn phí dành cho macOS. Bạn có thể tải xuống hình ảnh đĩa mới nhất từ trang Tunnelblick Downloads. Bấm đúp vào tệp .dmg đã tải xuống và làm theo lời nhắc để cài đặt.

Khi kết thúc quá trình cài đặt, Tunnelblick sẽ hỏi bạn có tệp cấu hình nào không. Trả lời I have configuration files (Tôi có tệp cấu hình) và để cho Tunnelblick hoàn thành. Mở cửa sổ Finder và nhấp đúp vào client1.ovpn. Tunnelblick sẽ cài đặt hồ sơ khách hàng. Đặc quyền hành chính là bắt buộc.

Kết nối

Khởi chạy Tunnelblick bằng cách nhấp đúp vào biểu tượng Tunnelblick trong thư mục Applications. Khi Tunnelblick đã được khởi chạy, sẽ có một biểu tượng Tunnelblick trong thanh menu ở trên cùng bên phải của màn hình để kiểm soát các kết nối. Nhấp vào biểu tượng, sau đó nhấp vào mục menu Connect client1 để bắt đầu kết nối VPN. Nếu bạn đang sử dụng cài đặt DNS tùy chỉnh với Tunnelblick, bạn có thể cần kiểm tra “Allow changes to manually-set network settings” (Cho phép thay đổi cài đặt mạng được đặt thủ công) trong hộp thoại cấu hình nâng cao.

Linux

Cài đặt

Nếu bạn đang sử dụng Linux, có rất nhiều công cụ mà bạn có thể sử dụng tùy thuộc vào bản phân phối của mình. Môi trường máy tính để bàn hoặc trình quản lý cửa sổ của bạn cũng có thể bao gồm các tiện ích kết nối.

Tuy nhiên, cách kết nối phổ biến nhất là chỉ sử dụng phần mềm OpenVPN.

Trên Ubuntu hoặc Debian, bạn có thể cài đặt nó giống như trên máy chủ bằng cách gõ:

  1. sudo apt update
  2. sudo apt install openvpn

Trên CentOS, bạn có thể kích hoạt kho lưu trữ EPEL và sau đó cài đặt nó bằng cách nhập:

  1. sudo dnf install epel-release
  2. sudo dnf install openvpn

Thiết lập cấu hình Máy khách sử dụng systemd-resolved

Trước tiên, hãy xác định xem hệ thống của bạn có đang sử dụng systemd-resolved để xử lý phân giải DNS hay không bằng cách kiểm tra tệp /etc/resolv.conf:

  1. cat /etc/resolv.conf
Output
# This file is managed by man:systemd-resolved(8). Do not edit. . . . nameserver 127.0.0.53 options edns0

Nếu hệ thống của bạn được thiết lập cấu hình để sử dụng systemd-resolved cho độ phân giải DNS, thì địa chỉ IP sau tùy chọn nameserver sẽ là 127.0.0.53. Cũng nên có các nhận xét trong tệp như đầu ra được hiển thị giải thích cách systemd-resolved quản lý tệp. Nếu bạn có địa chỉ IP khác với 127.0.0.53 thì rất có thể hệ thống của bạn không sử dụng systemd-resolved và thay vào đó, bạn có thể chuyển sang phần tiếp theo về cấu hình máy khách Linux có tập lệnh update-resolv-conf.

Để hỗ trợ các máy khách này, trước tiên hãy cài đặt gói openvpn-systemd-resolved. Nó cung cấp các tập lệnh sẽ buộc systemd-resolved sử dụng máy chủ VPN để phân giải DNS.

  1. sudo apt install openvpn-systemd-resolved

Một gói đó đã được cài đặt, thiết lập cấu hình máy khách để sử dụng gói đó và gửi tất cả các truy vấn DNS qua giao diện VPN. Mở tệp VPN của máy khách:

  1. nano client1.ovpn

Bây giờ hãy bỏ ghi chú những dòng sau mà bạn đã thêm trước đó:

client1.ovpn
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .

Thiết lập cấu hình Máy khách sử dụng update-resolv-conf

Nếu hệ thống của bạn không sử dụng systemd-resolved để quản lý DNS, hãy kiểm tra xem bản phân phối của bạn có bao gồm tập lệnh /etc/openvpn/update-resolv-conf hay không:

  1. ls /etc/openvpn
Output
update-resolv-conf

Nếu máy khách của bạn bao gồm tệp update-resolv-conf, thì hãy chỉnh sửa tệp cấu hình máy khách OpenVPN mà bạn đã chuyển trước đó:

  1. nano client1.ovpn

Bỏ ghi chú ba dòng bạn đã thêm để điều chỉnh cài đặt DNS:

client1.ovpn
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Nếu bạn đang sử dụng CentOS, hãy thay đổi chỉ thị group từ nogroup thành nobody để phù hợp với các nhóm có sẵn của bản phân phối:

client1.ovpn
group nobody

Lưu và đóng tập tin.

Kết nối

Bây giờ, bạn có thể kết nối với VPN bằng cách trỏ lệnh openvpn vào tệp cấu hình máy khách:

  1. sudo openvpn --config client1.ovpn

Điều này sẽ kết nối bạn với VPN của bạn.

Lưu ý: Nếu máy khách của bạn sử dụng systemd-resolved để quản lý DNS, hãy kiểm tra các cài đặt được áp dụng chính xác bằng cách chạy lệnh systemd-resolve --status như sau:

  1. systemd-resolve --status tun0

Bạn sẽ thấy đầu ra như sau:

Output
Link 22 (tun0) . . . DNS Servers: 208.67.222.222 208.67.220.220 DNS Domain: ~.

Nếu bạn thấy địa chỉ IP của máy chủ DNS mà bạn đã thiết lập cấu hình trên máy chủ OpenVPN, cùng với ~. cài đặt cho DNS Domain ở đầu ra, thì bạn đã thiết lập cấu hình đúng máy khách của mình để sử dụng trình phân giải DNS của máy chủ VPN. Bạn cũng có thể kiểm tra xem bạn có đang gửi truy vấn DNS qua VPN hay không bằng cách sử dụng một trang web như DNS leak test.com.

iOS

Cài đặt

Từ iTunes App Store, tìm kiếm và cài đặt OpenVPN Connect, ứng dụng khách OpenVPN chính thức của iOS. Để chuyển cấu hình ứng dụng khách iOS của bạn vào thiết bị, hãy kết nối trực tiếp thiết bị với máy tính.

Quá trình hoàn tất quá trình chuyển đổi với iTunes được phác thảo tại đây. Mở iTunes trên máy tính và nhấp vào iPhone > apps. Cuộn xuống dưới cùng đến phần File Sharing và nhấp vào ứng dụng OpenVPN. Cửa sổ trống ở bên phải, OpenVPN Documents, dành cho chia sẻ tệp. Kéo tệp .ovpn vào cửa sổ OpenVPN Documents.

description image

Bây giờ hãy khởi chạy ứng dụng OpenVPN trên iPhone. Bạn sẽ nhận được thông báo rằng hồ sơ mới đã sẵn sàng để nhập. Nhấn vào dấu cộng màu xanh lục để nhập.

description image

Kết nối

OpenVPN hiện đã sẵn sàng để sử dụng với cấu hình mới. Bắt đầu kết nối bằng cách trượt nút Connect sang vị trí On. Ngắt kết nối bằng cách trượt cùng một nút sang Off.

Lưu ý: Không thể sử dụng công tắc VPN trong Settings để kết nối với VPN. Nếu thử, bạn sẽ nhận được thông báo chỉ kết nối bằng ứng dụng OpenVPN.

description image

Android

Cài đặt

Mở Cửa hàng Google Play. Tìm kiếm và cài đặt Android OpenVPN Connect, ứng dụng khách Android OpenVPN chính thức.

Bạn có thể chuyển cấu hình .ovpn bằng cách kết nối thiết bị Android với máy tính bằng USB và sao chép tệp qua. Ngoài ra, nếu bạn có đầu đọc thẻ SD, bạn có thể tháo thẻ SD của thiết bị, sao chép cấu hình vào đó rồi lắp lại thẻ vào thiết bị Android.

Khởi động ứng dụng OpenVPN và nhấn vào menu FILE để nhập cấu hình.

description image

Sau đó điều hướng đến vị trí của hồ sơ đã lưu (ảnh chụp màn hình sử dụng /storage/emulated/0/openvpn) và chọn tệp .ovpn của bạn. Nhấn vào nút IMPORT để hoàn tất việc nhập hồ sơ này.

description image

Kết nối

Khi hồ sơ được thêm vào, bạn sẽ thấy một màn hình như sau:

description image

Để kết nối, hãy nhấn vào nút chuyển đổi gần với cấu hình bạn muốn sử dụng. Bạn sẽ thấy số liệu thống kê thời gian thực về kết nối và lưu lượng truy cập được định tuyến qua máy chủ OpenVPN của mình:

description image

Để ngắt kết nối, chỉ cần nhấn lại vào nút chuyển đổi ở trên cùng bên trái. Bạn sẽ được nhắc xác nhận rằng bạn muốn ngắt kết nối khỏi VPN của mình.

Bước 14 — Kiểm tra kết nối VPN của bạn (Tùy chọn)

Lưu ý: Phương pháp kiểm tra kết nối VPN của bạn này sẽ chỉ hoạt động nếu bạn chọn định tuyến tất cả lưu lượng truy cập của mình thông qua VPN ở Bước 7 khi bạn chỉnh sửa tệp server.conf cho OpenVPN.

Khi mọi thứ đã được cài đặt, một kiểm tra đơn giản sẽ xác nhận mọi thứ đang hoạt động bình thường. Nếu không bật kết nối VPN, hãy mở trình duyệt và truy cập DNSLeakTest.

Trang web sẽ trả lại địa chỉ IP được chỉ định bởi nhà cung cấp dịch vụ internet của bạn và khi bạn xuất hiện với phần còn lại của thế giới. Để kiểm tra cài đặt DNS của bạn thông qua cùng một trang web, hãy nhấp vào Extended Test và nó sẽ cho bạn biết bạn đang sử dụng máy chủ DNS nào.

Bây giờ hãy kết nối ứng dụng khách OpenVPN với VPN của Droplet của bạn và làm mới trình duyệt. Một địa chỉ IP hoàn toàn khác (địa chỉ IP của máy chủ VPN của bạn) sẽ xuất hiện và đây là cách bạn xuất hiện với mọi người. Một lần nữa, Extended Test của DNSLeakTest sẽ kiểm tra cài đặt DNS của bạn và xác nhận rằng bạn hiện đang sử dụng trình phân giải DNS do VPN của bạn cung cấp.

Bước 15 — Thu hồi chứng chỉ ứng dụng khách

Đôi khi, bạn có thể cần thu hồi chứng chỉ ứng dụng khách để ngăn không cho tiếp tục truy cập vào máy chủ OpenVPN.

Để làm như vậy, hãy làm theo ví dụ trong hướng dẫn điều kiện tiên quyết về Cách thiết lập và định cấu hình tổ chức phát hành chứng chỉ trên Ubuntu 20.04 trong phần Revoking a Certificate (Thu hồi chứng chỉ).

Khi bạn đã thu hồi chứng chỉ cho ứng dụng khách bằng các hướng dẫn đó, bạn sẽ cần sao chép tệp crl.pem đã tạo vào máy chủ OpenVPN của mình trong thư mục /etc/openvpn/server:

  1. sudo cp /tmp/crl.pem /etc/openvpn/server/

Tiếp theo, mở tệp cấu hình máy chủ OpenVPN:

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

Ở cuối tệp, thêm tùy chọn crl-verify, tùy chọn này sẽ hướng dẫn máy chủ OpenVPN kiểm tra danh sách thu hồi chứng chỉ mà chúng tôi đã tạo mỗi khi thực hiện kết nối:

/etc/openvpn/server/server.conf
crl-verify crl.pem

Lưu và đóng tập tin.

Cuối cùng, khởi động lại OpenVPN để thực hiện thu hồi chứng chỉ:

  1. sudo systemctl restart openvpn-server@server.service

Máy khách sẽ không thể kết nối thành công với máy chủ bằng thông tin xác thực cũ nữa.

Để thu hồi các khách hàng bổ sung, hãy làm theo quy trình này:

  1. Thu hồi chứng chỉ bằng lệnh ./easyrsa revoke client_name
  2. Tạo một CRL mới
  3. Chuyển tệp crl.pem mới sang máy chủ OpenVPN của bạn và sao chép tệp đó vào thư mục /etc/openvpn/server/ để ghi đè lên danh sách cũ.
  4. Khởi động lại dịch vụ OpenVPN.

Bạn có thể sử dụng quy trình này để thu hồi mọi chứng chỉ mà bạn đã cấp trước đây cho máy chủ của mình.

Kết luận

Bây giờ bạn sẽ có một mạng riêng ảo hoạt động đầy đủ đang chạy trên Máy chủ OpenVPN của mình. Bạn có thể duyệt web và tải xuống nội dung mà không phải lo lắng về việc các tác nhân độc hại theo dõi hoạt động của bạn.

Có một số bước bạn có thể thực hiện để tùy chỉnh cài đặt OpenVPN của mình hơn nữa, chẳng hạn như thiết lập cấu hình máy khách của bạn để tự động kết nối với VPN hoặc thiết lập cấu hình các chính sách truy cập và quy tắc dành riêng cho máy khách. Đối với các tùy chỉnh này và các tùy chỉnh OpenVPN khác, bạn nên tham khảo tài liệu chính thức của OpenVPN.

Để thiết lập cấu hình nhiều máy khách hơn, bạn chỉ cần làm theo các bước 611-13 cho mỗi thiết bị bổ sung. Để thu hồi quyền truy cập vào máy khách, hãy làm theo bước 15.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời