CentOS 7 安裝 OpenVPN Server

OpenVPN 是一個用於建立 VPN (Virtual Private Network) 的開源套件, 支援 Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, Solaris 及 Windows。以下會講述在 RHEL 及 CentOS 7 安裝及設定 OpenVPN Server, 以及在 Windows, 及 Linux 連接的方法。

由於 OpenVPN Server 不在 RHEL 及 CentOS 的預設 Repository 裡面, 所以要先安裝 EPEL Repository, EPEL Repository 包括一些 RHEL 預設以外的常用套件。

# yum install epel-release

啟用了 EPEL Repository 後, 可以正式安裝 OpenVPN Server, 以下指令會用 YUM 安裝 OpenVPN, 以及用於產生 SSL key 的 Easy RSA:
Step 1 — Installing OpenVPN

# yum install -y openvpn easy-rsa

OpenVPN 內建了一個設定檔範例, 將這個設定檔複製一份, 並用這設定檔修改設定:

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

開啟 /etc/openvpn/server.conf, 修改以下設定:

— 將 “dh” 設定改成 db2048.pem:

dh dh2048.pem

— 找到 “redirect-gateway def1 bypass-dhcp” 並將它的注解 (; 字符) 刪除:

push “redirect-gateway def1 bypass-dhcp”

— 將 DNS 伺服器改為 Google 提供的 DNS 伺服器, 將 dhcp-option 反注釋, 改成這樣:

push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”

— 將 “user” 及 “group” 改為 nobody:

user nobody
group nobody

儲存後離開文字編輯器。

用 Easy RSA 產生金鑰及證書前, 先建立 Easy RSA 設定檔目錄, 及做相關設定:

# mkdir -p /etc/openvpn/easy-rsa/keys
# cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
# cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

開啟 /etc/openvpn/easy-rsa/vars, 根據自己的設定修改設定值:

現在用 Easy RSA 產生金鑰及證書:

# cd /etc/openvpn/easy-rsa
# source ./vars
# ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh

產生金鑰及證書後, 將它們複製到 OpenVPN 目錄:

# cd /etc/openvpn/easy-rsa/keys
# cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

然後在 OpenVPN Server 產生 Client 端的金鑰, 作用 Client 認證, 下面 build-key 會定義為 user-1, 可以根據自己的需要, 將它改為 client 的描述:

# cd /etc/openvpn/easy-rsa
# ./build-key user-1

設定好 OpenVPN 後, 關閉 firewalld 並開啟 iptables:

# yum install -y iptables-services
# systemctl mask firewalld
# systemctl enable iptables
# systemctl stop firewalld
# systemctl start iptables
# iptables –flush

然後輸入以下指令, 設定 OpenVPN 對外開放:

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
# iptables-save > /etc/sysconfig/iptables

開啟 /etc/sysctl.conf, 加入以下一行在開頭:

然後重新啟動 network service 及啟動 OpenVPN:

# systemctl restart network.service
# systemctl start [email protected]
# systemctl enable [email protected]

Client 端設定

將 OpenVPN Server 以下 3 個檔案複製到客戶端:

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

並在客戶端建立檔案 client.ovpn, 加入以下內容:

以下是 Windows 及 Linux 客戶端的設定:

Windows:
下載 OpenVPN 官方的 OpenVPN Community Edition, 安裝好後, 將上面建立的 client.ovpn 放到 C:\Program Files\OpenVPN\config 目錄下。

Linux:

用預設 Repository 安裝 OpenVPN 後, 執行以下指令, 將 /path/to/client.ovpn 改成 client.ovpn 的位置

# openvpn –config /path/to/client.ovpn



Leave a Reply