Cách cài đặt OpenVPN trên AlmaLinux 8, Centos 8 hoặc Rocky Linux 8

Tác giả NetworkEngineer, T.Một 04, 2022, 09:20:47 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách cài đặt OpenVPN trên AlmaLinux 8, Centos 8 hoặc Rocky Linux 8


VPN "Mạng riêng ảo" là mạng riêng tư ẩn danh tính người dùng, nguồn gốc và dữ liệu bằng cách sử dụng mã hóa. Công dụng chính của nó là bảo mật dữ liệu của người dùng và kết nối an toàn với internet. Vì nó ẩn dữ liệu, nó cho phép bạn truy cập vào dữ liệu thường bị chặn bởi các giới hạn địa lý.

OpenVPN là một phần mềm VPN mã nguồn mở, bản thân nó vừa là một phần mềm vừa là một giao thức. Nó được đánh giá rất cao vì nó tiếp tục vượt qua tường lửa.

Hướng dẫn này sẽ chỉ cho bạn từng bước cách cài đặt và thiết lập máy chủ OpenVPN và kết nối nó với máy khách OpenVPN. Mình sẽ sử dụng máy chủ CentOS 8 để cài đặt, quy trình tương tự cũng sẽ hoạt động trên Rocky Linux 8 và AlmaLinux 8.

1. Điều kiện tiên quyết

  • Quyền truy cập cửa sổ dòng lệnh Terminal.
  • Một tài khoản người dùng có đặc quyền sudo.

Lưu ý: Các lệnh trong hướng dẫn này được thực hiện trên CentOS 8. Tất cả các phương pháp trong hướng dẫn cũng hợp lệ cho CentOS 7.

2. Cập nhật và nâng cấp hệ thống

Đảm bảo hệ thống của bạn được cập nhật bằng cách cập nhật và nâng cấp hệ thống của bạn bằng cách chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo dnf update && sudo dnf upgrade
3. Tắt SELinux

Tiếp theo, bạn cần tắt SELinux vì nó xung đột với OpenVPN và ngăn nó khởi chạy.

Để tắt SELinux, hãy mở tập tin cấu hình SELinux bằng lệnh sau.

Mã nguồn [Chọn]
$ sudo nano /etc/selinux/config

Sau khi tập tin được mở bằng trình chỉnh sửa nano. Tìm kiếm SELinux và thay đổi giá trị của nó thành disabled hoặc chỉ cần thay thế nó bằng dòng mã sau.

Mã nguồn [Chọn]
SELINUX=disabled

Nhấn Ctrl + O, sau đó nhấn Ctrl + X để lưu và thoát tập tin.

4. Bật chuyển tiếp IP

Bây giờ, bạn cần bật chuyển tiếp IP để các gói đến có thể được chuyển tiếp đến các mạng khác nhau.

Để bật chuyển tiếp IP, hãy mở tập tin cấu hình sysctl bằng trình chỉnh sửa nano.

Mã nguồn [Chọn]
$ sudo nano /etc/sysctl.conf

Thêm mã sau vào tập tin.

Mã nguồn [Chọn]
net.ipv4.ip_forward = 1

Nhấn Ctrl + O rồi nhấn Ctrl + X

5. Cài đặt Máy chủ OpenVPN

Đảm bảo cài đặt gói epel-release.

Mã nguồn [Chọn]
$ sudo dnf install epel-release -y

Bây giờ, bạn có thể cài đặt OpenVPN bằng lệnh sau.

Mã nguồn [Chọn]
$ sudo dnf install openvpn -y

Bây giờ OpenVPN đã được cài đặt. Điều hướng đến thư mục cài đặt của nó và tải xuống easy-rsa. Easy-RSA xây dựng và quản lý các cơ quan cấp chứng chỉ (CA).

Mã nguồn [Chọn]
$ cd /etc/openvpn
Mã nguồn [Chọn]
$ sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz

Giải nén tập tin zip đã tải xuống.

Mã nguồn [Chọn]
$ sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz

Và di chuyển tập tin EasyRSA vào thư mục của nó.

Mã nguồn [Chọn]
$ sudo mv EasyRSA-v3.0.6 easy-rsa

6. Cấu hình Easy-RSA

Tiếp theo, chúng ta cần thêm và xây dựng chứng chỉ SSL. Để làm điều đó, trước tiên, hãy điều hướng đến thư mục easy-rsa.

Mã nguồn [Chọn]
$ cd /etc/openvpn/easy-rsa
Để mở tập tin vars trong trình chỉnh sửa nano, hãy chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo nano vars

Bây giờ sao chép và dán các dòng mã sau vào tập tin vars.

Mã nguồn [Chọn]
set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "USA"
set_var EASYRSA_REQ_PROVINCE "Newyork"
set_var EASYRSA_REQ_CITY "Newyork"
set_var EASYRSA_REQ_ORG "osradar CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL ""
set_var EASYRSA_REQ_OU "osradar EASY CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 7500
set_var EASYRSA_CERT_EXPIRE 365
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "osradar CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf"
set_var EASYRSA_DIGEST "sha256"


Bạn có thể thay đổi giá trị của quốc gia, thành phố, tỉnh và email theo yêu cầu của bạn.

Nhấn Ctrl + O rồi nhấn Ctrl + X.

Bây giờ, khởi tạo thư mục PKI bằng lệnh sau.

Mã nguồn [Chọn]
./easyrsa init-pki

Cuối cùng, bạn có thể xây dựng chứng chỉ CA của mình.

Mã nguồn [Chọn]
$ sudo ./easyrsa build-ca

7. Tạo tập tin chứng chỉ máy chủ

Sử dụng lệnh sau để nhận cặp khóa và yêu cầu chứng chỉ của bạn.

Mã nguồn [Chọn]
$ sudo ./easyrsa gen-req vitux-server nopass
8. Ký khóa máy chủ bằng CA

Để ký khóa máy chủ của bạn bằng CA, hãy chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo ./easyrsa sign-req server vitux-server
Chúng ta cần khóa Diffie-Hellman cho các mục đích trao đổi chính. Tạo khóa bằng cách chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo ./easyrsa gen-dh

Tiếp theo, sao chép tất cả các tập tin này vào thư mục /etc/openvpn/server/

Mã nguồn [Chọn]
$ cp pki/ca.crt /etc/openvpn/server/
Mã nguồn [Chọn]
$ cp pki/dh.pem /etc/openvpn/server/
Mã nguồn [Chọn]
$ cp pki/private/vitux-server.key /etc/openvpn/server/
Mã nguồn [Chọn]
$ cp pki/issued/vitux-server.crt /etc/openvpn/server/
9. Tạo khóa máy khách và chứng chỉ

Bạn có thể lấy khóa máy khách bằng cách chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo ./easyrsa gen-req client nopass

Tiếp theo, ký khóa ứng dụng của bạn bằng chứng chỉ CA đã tạo.

Mã nguồn [Chọn]
$ sudo ./easyrsa sign-req client client

Sao chép các tập tin vào thư mục /etc/openvpn/client/

Mã nguồn [Chọn]
$ cp pki/ca.crt /etc/openvpn/client/
Mã nguồn [Chọn]
$ cp pki/issued/client.crt /etc/openvpn/client/
Mã nguồn [Chọn]
$ cp pki/private/client.key /etc/openvpn/client/

10. Cấu hình Máy chủ OpenVPN

Tạo và mở tập tin cấu hình mới trong thư mục khách bằng lệnh sau.

Mã nguồn [Chọn]
$ sudo nano /etc/openvpn/server/server.conf

Sau đó, thêm các dòng mã sau vào tập tin.

Mã nguồn [Chọn]
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vitux-server.crt
key /etc/openvpn/server/vitux-server.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
duplicate-cn
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
auth SHA512
auth-nocache
keepalive 20 60
persist-key
persist-tun
compress lz4
daemon
user nobody
group nobody
log-append /var/log/openvpn.log
verb 3

Nhấn Ctrl + O và Ctrl + X

11. Khởi động và kích hoạt dịch vụ OpenVPN

OpenVPN của bạn đã sẵn sàng để khởi chạy. Khởi động và kích hoạt máy chủ bằng các lệnh sau.

Mã nguồn [Chọn]
$ sudo systemctl start openvpn-server@server
Mã nguồn [Chọn]
$ sudo systemctl enable openvpn-server@server

Bạn có thể xem và xác minh trạng thái hoạt động bằng lệnh sau.

Mã nguồn [Chọn]
$ systemctl status openvpn-server@server

Một giao diện mạng mới sẽ được tạo khi khởi động thành công máy chủ OpenVPN. Chạy lệnh sau để xem chi tiết.

Mã nguồn [Chọn]
$ ifconfig

12. Tạo tập tin cấu hình máy khách

Bước tiếp theo là kết nối máy khách với máy chủ OpenVPN. Chúng ta cần tập tin cấu hình máy khách cho việc đó. Để tạo tập tin cấu hình máy khách, hãy chạy lệnh sau.

Mã nguồn [Chọn]
$ sudo nano /etc/openvpn/client/client.ovpn

Bây giờ, hãy sao chép và dán đoạn mã sau vào tập tin.

Mã nguồn [Chọn]
client
dev tun
proto udp
remote vpn-server-ip 1194
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
resolv-retry infinite
compress lz4
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3


Nhấn Ctrl + O để lưu các thay đổi và nhấn Ctrl + X để thoát khỏi trình chỉnh sửa.

13. Cấu hình định tuyến

Đặt cài đặt dịch vụ OpenVPN bằng các lệnh sau để cho phép nó vượt qua tường lửa.

Mã nguồn [Chọn]
$ firewall-cmd --permanent --add-service=openvpn
Mã nguồn [Chọn]
$ firewall-cmd --permanent --zone=trusted --add-service=openvpn
Mã nguồn [Chọn]
$ firewall-cmd --permanent --zone=trusted --add-interface=tun0

Mã nguồn [Chọn]
$ firewall-cmd --add-masquerade
Mã nguồn [Chọn]
$ firewall-cmd --permanent --add-masquerade

Đặt định tuyến để chuyển tiếp lưu lượng đến từ VPN đến mạng cục bộ.

Mã nguồn [Chọn]
$ routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}')
Mã nguồn [Chọn]
$ firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE
Tải lại tường lửa Firewalld để thực hiện các thay đổi có hiệu quả.

Mã nguồn [Chọn]
$ firewall-cmd --reload

14. Cài đặt và sử dụng OpenVPN trong Máy khách

Bạn phải cài đặt epel-release và OpenVPN như đã làm ở phía máy chủ.

Mã nguồn [Chọn]
$ dnf install epel-release -y
Mã nguồn [Chọn]
$ dnf install openvpn -y

Bây giờ sao chép các tập tin cấu hình máy khách từ máy chủ bằng cách sử dụng lệnh dưới đây.

Mã nguồn [Chọn]
$ sudo scp -r root@vpn-server-ip:/etc/openvpn/client

Đi tới thư mục máy khách và kết nối với máy chủ OpenVPN bằng các lệnh sau.

Mã nguồn [Chọn]
$ cd client
Mã nguồn [Chọn]
$ openvpn --config client.ovpn

Chạy ifconfig để xem địa chỉ IP được chỉ định.

Mã nguồn [Chọn]
$ ifconfig tun0
Hướng dẫn này đã chỉ cho bạn từng bước cách cài đặt và thiết lập máy chủ OpenVPN và kết nối nó với máy khách OpenVPN trên máy chủ CentOS 8, Rocky Linux 8 và AlmaLinux 8. Mình hy vọng bài viết này hữu ích cho bạn.