Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

OpenVPN 伺服器完整部署圖解教學:憑證認證模式 (CentOS 7/8 適用)

編輯:Linux 教學

前言

OpenVPN 是基於 OpenSSL 的開源 VPN 方案,支援 TCP/UDP、跨平台 (Linux/macOS/Windows),適合企業多據點互連。本教學採用 憑證認證 (CA + 憑證/金鑰) 模式,安全性最高,適用生產環境。

環境準備

  • 作業系統:CentOS 7/8 (最小安裝)
  • 公網 IP:假設為 124.126.150.211
  • 內網 IP:假設為 192.168.0.10 (對應 local 參數)
  • 關閉 SELinux、Firewalld (或開放 1194/udp)

步驟 1:安裝依賴與編譯 OpenVPN

yum -y install lzo lzo-devel openssl openssl-devel gcc pam-devel
tar -xzf openvpn-2.5.x.tar.gz -C /usr/src
cd /usr/src/openvpn-2.5.x
./configure --prefix=/usr/local/openvpn
make && make install

步驟 2:部署 Easy-RSA 產生 CA 與憑證

# 複製 easy-rsa 腳本到 OpenVPN 目錄
cp -r /usr/share/easy-rsa/ /usr/local/openvpn/
cd /usr/local/openvpn/easy-rsa/vars.example vars
vim vars  # 修改 KEY_COUNTRY、KEY_PROVINCE、KEY_CITY、KEY_ORG、KEY_EMAIL、KEY_CN、KEY_NAME、KEY_OU 等欄位
source ./vars
./clean-all
./build-ca           # 建立根 CA,一路 Enter 採用 vars 預設值
./build-key-server vpnserver  # 產生伺服器憑證/私鑰 (vpnserver.crt/key)
./build-dh           # 產生 Diffie-Hellman 參數 (dh2048.pem)
# 為每個客戶端產生憑證
./build-key client1

步驟 3:複製憑證檔至 OpenVPN 設定目錄

cd /usr/local/openvpn/easy-rsa/keys
cp ca.crt vpnserver.crt vpnserver.key dh2048.pem /usr/local/openvpn/
cp /usr/src/openvpn-2.5.x/sample/sample-config-files/server.conf /usr/local/openvpn/server.conf

步驟 4:編輯 server.conf 關鍵參數

port 1194
proto udp
dev tun
ca /usr/local/openvpn/ca.crt
cert /usr/local/openvpn/vpnserver.crt
key /usr/local/openvpn/vpnserver.key
dh /usr/local/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"   # 推送企業內網路由
push "dhcp-option DNS 202.106.0.20"      # 推送 DNS
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

步驟 5:啟用核心轉發與防火牆 NAT

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
iptables -I INPUT -p udp --dport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save

步驟 6:啟動並設定開機自動啟動

/usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/server.conf --daemon
# 建立 systemd 服務檔 /etc/systemd/system/openvpn@server.service 以便管理
systemctl enable openvpn@server --now

客戶端設定要點

  • 安裝 OpenVPN GUI,匯入 ca.crt、client1.crt、client1.key。
  • 客戶端 .ovpn 設定檔對應 remote 124.126.150.211 1194 udp。

OpenVPN 拓撲架構圖

注意:原文中 local 參數需填寫內網 IP,而非公網 IP;重啟後 tunnel 介面會消失,須將建立指令加入 /etc/rc.d/rc.local 或 systemd 服務實現持久化。
Copyright © Windows教程網 All Rights Reserved