如何在 AlmaLinux 8、Centos 8 或 RockyLinux 8 上安裝 OpenVPN


VPN “虛擬專用網絡”是使用加密來隱藏用戶身份、來源和數據的專用網絡。它的主要用途是用戶數據的隱私和與互聯網的安全連接。要隱藏數據,您可以訪問通常受地理限制阻止的數據。

OpenVPN是開源VPN軟件,它本身就是軟件和協議。它受到高度重視,因為它不斷繞過防火牆。

本教程將引導您了解如何安裝和設置 OpenVPN 服務器並連接到 OpenVPN 客戶端。使用 CentOS 8 服務器進行安裝。同樣的過程適用於 Rocky Linux 8 和 Alma Linux 8。

先決條件

終端接入

具有 sudo 權限的用戶帳戶。

筆記: 本教程中的命令在 CentOS 8 上運行。本教程中的所有方法在 CentOS 7 中同樣有效。

更新升級系統

運行以下命令來更新和升級您的系統,以確保它是最新的。

sudo dnf update && sudo dnf upgrade

禁用 SELinux

其次,SELinux 與 OpenVPN 衝突,無法啟動,必須禁用。

要禁用 SELinux,請使用以下命令打開 SELinux 配置文件:

sudo nano /etc/selinux/config

在 nano 編輯器中打開文件後。 搜索 SELinux 並將其值更改為禁用或簡單地將其替換為以下代碼行:

SELINUX=disabled

按 Ctrl + O,然後按 Ctrl + X 保存文件並退出。

啟用 IP 轉發

接下來,您需要啟用 IP 轉發,以便可以將傳入的數據包轉發到另一個網絡。

要啟用 IP 轉發,請在 nano 編輯器中打開 sysctl 配置文件。

sudo nano /etc/sysctl.conf

啟用 IP 轉發

將以下代碼添加到文件中。

net.ipv4.ip_forward = 1

net.ipv4.ip_forward = 1

按 Ctrl + O,然後按 Ctrl + X。

安裝 OpenVPN 服務器

請務必安裝 epel-release 軟件包。

sudo dnf install epel-release -y

添加 EPEL 存儲庫

您現在可以使用以下命令安裝 OpenVPN:

sudo dnf install openvpn -y

安裝 OpenVPN

現在已安裝 OpenVPN。轉到您的安裝文件夾並下載easy-rsa。 Easy-RSA 構建和管理證書頒發機構 (CA)。

cd /etc/openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz

下載 EasyRSA

解壓縮下載的 zip 文件。

sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz

解壓存檔

將 EasyRSA 文件移動到該文件夾。

sudo mv EasyRSA-v3.0.6 easy-rsa

重命名 EasyRSA 文件夾

Easy-RSA 配置

接下來,您需要添加和構建 SSL 證書。為此,首先切換到 easy-rsa 目錄。

cd /etc/openvpn/easy-rsa

要在 nano 編輯器中打開 vars 文件,請運行以下命令:

sudo nano vars

Easy-RSA 配置

然後將以下代碼行複制並粘貼到您的 vars 文件中。

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"

EasyRSA 變量

您可以根據需要更改國家、城市、省份和電子郵件值。

按 Ctrl + O,然後按 Ctrl + X。

然後使用以下命令啟動 PKI 目錄:

./easyrsa init-pki

初始化 PKI

最後,您可以創建 CA 證書。

sudo ./easyrsa build-ca

建立 CA

生成服務器證書文件

使用以下命令獲取密鑰對和證書請求。

sudo ./easyrsa gen-req vitux-server nopass

使用 CA 簽署服務器密鑰

要使用 CA 簽署服務器密鑰,請運行以下命令:

sudo ./easyrsa sign-req server vitux-server

我们需要 Diffie-Hellman 密钥来交换密钥。 通过运行以下命令生成密钥。

sudo ./easyrsa gen-dh

根-dh

然後將所有這些文件複製到 /etc/openvpn/服務器/ 目錄。

cp pki/ca.crt /etc/openvpn/server/
cp pki/dh.pem /etc/openvpn/server/
cp pki/private/vitux-server.key /etc/openvpn/server/
cp pki/issued/vitux-server.crt /etc/openvpn/server/

生成客戶端密鑰和證書

您可以通過運行以下命令獲取客戶端密碼:

sudo ./easyrsa gen-req client nopass

生成客戶端密鑰和證書

然後使用生成的 CA 證書對客戶端密鑰進行簽名。

sudo ./easyrsa sign-req client client

簽署客戶證書

將這些文件複製到 /etc/openvpn/客戶端/ 目錄

cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client.crt /etc/openvpn/client/
cp pki/private/client.key /etc/openvpn/client/

複製客戶端證書

配置 OpenVPN 服務器

使用以下命令在客戶端目錄中創建並打開一個新的配置文件:

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

OpenVPN 服務器配置

然後將以下代碼行添加到文件中:

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

按 Ctrl + O 和 Ctrl + X。

啟動並啟用 OpenVPN 服務

準備啟動 OpenVPN。使用以下命令啟動並啟用服務器:

sudo systemctl start [email protected]
sudo systemctl enable [email protected]

啟動 OpenVPN

您可以使用以下命令查看和檢查您的活動狀態:

systemctl status [email protected]

檢查 OpenVPN 狀態

如果 OpenVPN 服務器啟動成功,將創建一個新的網絡接口。運行以下命令以查看詳細信息。

ifconfig

ifconfig 結果

生成客戶端配置文件

下一步是將客戶端連接到 OpenVPN 服務器。您需要一個客戶端配置文件。要生成客戶端配置文件,請運行以下命令:

sudo nano /etc/openvpn/client/client.ovpn

OpenVPN 客戶端配置

然後將以下代碼複製並粘貼到您的文件中。

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

客戶端.ovpn

按 Ctrl + O 保存更改,按 Ctrl + X 退出編輯器。

配置路由

使用以下命令設置 OpenVPN 服務設置以允許您通過防火牆。

firewall-cmd --permanent --add-service=openvpn
firewall-cmd --permanent --zone=trusted --add-service=openvpn
firewall-cmd --permanent --zone=trusted --add-interface=tun0

配置路由

firewall-cmd --add-masquerade
firewall-cmd --permanent --add-masquerade

化裝舞會設置

設置路由以將傳入流量從 VPN 轉發到本地網絡。

routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE

重新加載以使更改生效。

firewall-cmd --reload

重新加載防火牆

在客戶端機器上安裝和使用 OpenVPN

與服務器端一樣,您需要安裝 epel-release 和 OpenVPN。

dnf install epel-release -y
dnf install openvpn -y

添加 EPEL 存儲庫

然後使用以下命令從服務器複製客戶端配置文件:

sudo scp -r [email protected]:/etc/openvpn/client .

連接 OpenVPN 客戶端

導航到客戶端目錄並使用以下命令連接到 OpenVPN 服務器。

cd client
openvpn --config client.ovpn

啟動客戶端連接

運行 ifconfig 以查看分配的 IP 地址。

ifconfig tun0