把 CentOS6 的 OpenVPN 更新升級到最新
先前已在 CentOS6 安裝過 OpenVPN 了 (VPN + OpenVPN)
現在使用 tarball 來編譯安裝更新
並且使用 TLS 1.2 加密連線
但另闢通道 (port 1195),舊的還保留連線 (所以要改變 IP 網段,原本是 server 10.8.0.0,新的為 server 10.7.0.0 ,內部主機 IP 不變)
Client 端就直接用 yum 安裝
SERVER 端 (on CentOS6 with tarball)
下載編譯
wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.8.tar.gz tar zxvf openvpn-2.4.8.tar.gz cd openvpn-2.4.8 ./configure --prefix=/usr/local/openvpn make make install
將舊的設定複製過去
cp -rp /etc/openvpn /usr/local/openvpn/etc mkdir -p /usr/local/openvpn/var/run/openvpn/ mkdir -p /usr/local/openvpn/var/lock/subsys/
設定 server.conf
vi /usr/local/openvpn/etc/server.conf
port 1195 proto udp dev tun ca /usr/local/openvpn/etc/ssorc-ca.crt cert /usr/local/openvpn/etc/ssorc-server.crt key /usr/local/openvpn/etc/ssorc-server.key dh /usr/local/openvpn/etc/dh2048.pem server 10.7.0.0 255.255.255.0 ifconfig-pool-persist /usr/local/openvpn/etc/ipp.txt push "route 10.1.1.0 255.255.255.0" keepalive 10 120 comp-lzo persist-key persist-tun status /usr/local/openvpn/etc/openvpn-status.log verb 3 cipher AES-256-CBC # 新加入 tls-version-min 1.2 # 新加入,使用 TLS v1.2 版本以上 tls-cipher "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" # 新加入, openvpn --show-tls tls-crypt /usr/local/openvpn/etc/tc.key # 新加入 ,不使用 tls-auth ta.key 0 改用 tls-crypt tc.key # openvpn 2.4 版的新參數
產生 tc.key
/usr/local/openvpn/sbin/openvpn --genkey --secret /usr/local/openvpn/etc/tc.key
測試
/usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/etc/server.conf
啟動
複製 /etc/init.d/openvpn 為 /etc/init.d/openvpn2,稍改一下路徑為 /usr/local/openvpn
service openvpn2 start
chkconfig openvpn2 on
開放防火牆
iptables -A INPUT -p udp --dport 1195 -j ACCEPT
CLIENT 端 (on CentOS7 with yum rpm)
安裝
yum install openvpn -y
產生複製過來需要的 key , 主要有 ca 、 client crt 、 client key 、 tc.key 等, 放到 /etc/openvpn/client 裡頭
並改一下權限
chmod 600 /etc/openvpn/client/ssorc-client.key chmod 600 /etc/openvpn/client/tc.key
設定 client.conf
vi /etc/openvpn/client/client.conf
client dev tun proto udp remote SSORC.TW 1195 resolv-retry infinite nobind persist-key persist-tun ca /etc/openvpn/client/ssorc-ca.crt # 跟 server 要 cert /etc/openvpn/client/ssorc-client.crt # 跟 server 要 key /etc/openvpn/client/ssorc-client.key # 跟 server 要 comp-lzo verb 3 ;remote-cert-tls server # 新加入,沒有這個會出現 WARNING: No server certificate verification method has been enabled ;auth-nocache # 新加入,沒有用這個會出現 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this,但可能會無法自動重新連線 !! cipher AES-256-CBC # 新加入 tls-version-min 1.2 # 新加入,使用 TLS v1.2 版本以上 tls-cipher "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" # 新加入, openvpn --show-tls tls-crypt /etc/openvpn/client/tc.key # 新加入 , 不使用 tls-auth ta.key 1 改用 tls-crypt tc.key # openvpn 2.4 版的新參數,跟 server 要
測試
openvpn --config /etc/openvpn/client/client.conf
啟動 (@後面接的 client 表示為 client.conf 的 client 名稱)
systemctl start [email protected]
假如說把 client.conf 放在 /etc/openvpn/client.conf , 啟動就為 ↓
systemctl start [email protected]
systemctl enable [email protected]
最後
Client 有 ping 內部主機就成功了
補充: 產生 key
SERVER 端
cd /usr/local/openvpn/etc/easy-rsa/2.0
編輯 vars 把 key size 改成 2048
export KEY_SIZE=2048
export 環境變數
. ./vars
產生 ca
. ./build-ca
建立 server key 與 crt
. ./build-key-server ssorc-server
建立 DH
. ./build-dh
複製到對的目錄
yes| cp -rp keys/ca.crt /usr/local/openvpn/etc/ssorc-ca.crt yes| cp -rp keys/dh2048.pem /usr/local/openvpn/etc/dh2048.pem yes| cp -rp keys/ssorc-server.key /usr/local/openvpn/etc/ssorc-server.key yes| cp -rp keys/ssorc-server.crt /usr/local/openvpn/etc/ssorc-server.crt
Client 端
在 SERVER 端建立 CLIENT 需要的 key
. ./build-key ssorc-client
建立好後,將 ssorc-client.key 、 ssorc-client.crt 、ssorc-ca.crt ,以及 tc.key 複製到 Client 去
留言