VPN“虛擬專用網絡”是一種使用加密隱藏用戶身份、來源和數據的專用網絡。 它的主要用途是用戶的數據隱私和互聯網的安全連接。 由於它隱藏數據,因此您可以訪問通常被地理限制阻止的數據。
OpenVPN 是一個開源 VPN 軟件,它本身既是軟件又是協議。 由於它繼續繞過防火牆,因此受到高度重視。
本教程將逐步向您展示如何安裝和設置 OpenVPN 服務器並將其連接到 OpenVPN 客戶端。 我們將使用 CentOS 8 服務器進行安裝,同樣的過程也適用於 Rocky Linux 8 和 AlmaLinux 8。
先決條件
終端接入
一個用戶帳戶 sudo 特權。
筆記: 本教程中的命令在 CentOS 8 上執行。 本教程中的所有方法也適用於 CentOS 7。
更新和升級系統
通過運行以下命令更新和升級您的系統,確保您的系統是最新的。
sudo dnf update && sudo dnf upgrade
禁用 SELinux
接下來,您需要禁用 SELinux,因為它與 OpenVPN 衝突並阻止它啟動。
要禁用 SELinux,請使用以下命令打開 SELinux 配置文件。
sudo nano /etc/selinux/config
使用 nano 編輯器打開文件後。 搜索 SELinux 並將其值更改為 disabled 或簡單地將其替換為以下代碼行。
SELINUX=disabled
按 Ctrl+O 然後按 Ctrl+X 保存並退出文件。
啟用 IP 轉發
現在,您需要啟用 IP 轉發,以便傳入的數據包可以轉發到不同的網絡。
要啟用 IP 轉發,請使用 nano 編輯器打開 sysctl 配置文件。
sudo nano /etc/sysctl.conf
將以下代碼添加到文件中。
net.ipv4.ip_forward = 1
按 Ctrl+O,然後按 Ctrl+X。
安裝 OpenVPN 服務器
確保安裝 epel-release 包。
sudo dnf install epel-release -y
現在,您可以使用以下命令安裝 OpenVPN。
sudo dnf install openvpn -y
現在已經安裝了 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
解壓縮下載的 zip 文件。
sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz
並將 EasyRSA 文件移動到其文件夾。
sudo mv EasyRSA-v3.0.6 easy-rsa
配置 Easy-RSA
接下來,我們需要添加和構建 SSL 證書。 為此,首先,導航到 easy-rsa 目錄。
cd /etc/openvpn/easy-rsa
要在 nano 編輯器中打開 vars 文件,請運行以下命令。
sudo nano vars
現在將以下代碼行複制並粘貼到 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"
您可以根據需要更改國家、城市、省和電子郵件的值。
按 Ctrl+O,然後按 Ctrl+X。
現在,使用以下命令啟動 PKI 目錄。
./easyrsa init-pki
最後,您可以構建您的 CA 證書。
sudo ./easyrsa build-ca
生成服務器證書文件
使用以下命令獲取您的密鑰對和證書請求。
sudo ./easyrsa gen-req vitux-server nopass
使用 CA 簽署服務器密鑰
要使用 CA 簽署您的服務器密鑰,請運行以下命令。
sudo ./easyrsa sign-req server vitux-server
我們需要 Diffie-Hellman 密鑰來進行密鑰交換。 通過運行以下命令生成密鑰。
sudo ./easyrsa gen-dh
接下來,將所有這些文件複製到 /etc/openvpn/server/ 目錄。
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/client/ 目錄
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
然後在文件中添加以下代碼行。
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]
您可以使用以下命令查看和驗證活動狀態。
systemctl status [email protected]
成功啟動 OpenVPN 服務器後,將創建一個新的網絡接口。 運行以下命令以查看詳細信息。
ifconfig
生成客戶端配置文件
下一步是將客戶端連接到 OpenVPN 服務器。 為此,我們需要客戶端配置文件。 要生成客戶端配置文件,請運行以下命令。
sudo nano /etc/openvpn/client/client.ovpn
現在,將以下代碼複製並粘貼到文件中。
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
按 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
現在使用下面給出的命令從服務器複製客戶端配置文件。
sudo scp -r [email protected]:/etc/openvpn/client .
轉到客戶端目錄並使用以下命令連接到 OpenVPN 服務器。
cd client openvpn --config client.ovpn
運行 ifconfig 以查看分配的 IP 地址。
ifconfig tun0