前言 : 为什么使用openV**?
作为运维人员经常会遇到各种故障,那我们就需要远程解决,为了保障服务器的安全性,此时我们需要连接内网,然后连接到跳板机,openV**是我们常用解决方案!下面我们介绍一下在云服务器搭建openV**方法!
一、环境
代码语言:javascript复制
[root@V** openV**]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Codename: Core
二、安装步骤
1.安装epel源,openV**及依赖
代码语言:javascript复制
yum install epel-release
yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig makecache
yum install -y openV**
yum install -y easy-rsa
2.创建openV**目录并复制文件到创建的目录
代码语言:javascript复制
mkdir /etc/openV**/
cp -R /usr/share/easy-rsa/ /etc/openV**/
cp /usr/share/doc/openV**-2.4.4/sample/sample-config-files/server.conf /etc/openV**/
cp -r /usr/share/doc/easy-rsa-3.0.3/vars.example /etc/openV**/easy-rsa/3.0/vars
3.服务端配置文件如下
代码语言:javascript复制
[root@V**openV**]#grep -Ev "^#|^$|^;" /etc/openV**/server.conf
port 1194
proto udp
dev tun
ca /etc/openV**/easy-rsa/3.0/pki/ca.crt
cert /etc/openV**/easy-rsa/3.0/pki/issued/wwwserver.crt
key /etc/openV**/easy-rsa/3.0/pki/private/wwwserver.key
dh /etc/openV**/easy-rsa/3.0/pki/dh.pem
server 10.100.8.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.100.0.0 255.255.0.0"
push "route 10.101.0.0 255.255.0.0"
push "route 192.168.0.0 255.255.0.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 114.114.114.114"
keepalive 10 120
tls-auth /etc/openV**/ta.key 0
cipher AES-256-CBC
comp-lzo
max-clients 100
persist-key
persist-tun
status openV**-status.log
log-append openV**.log
verb 3
mute 20
explicit-exit-notify 1
修改第45、65、76、84-89、97、105、113、117、134、139、171、180、192行如下:
代码语言:javascript复制
[root@V** openV**]# grep -Ev "^#|^$|^;" /etc/openV**/easy-rsa/3.0/vars
if [ -z "$EASYRSA_CALLER" ]; then
echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
echo "This is no longer necessary and is disallowed. See the section called" >&2
echo "'How to use this file' near the top comments for more details." >&2
return 1
fi
set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "BEIJING"
set_var EASYRSA_REQ_CITY "BEIJING"
set_var EASYRSA_REQ_ORG "OpenV** CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL "110@qq.com"
set_var EASYRSA_REQ_OU "OpenV** EASY CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 3650
set_var EASYRSA_CERT_EXPIRE 3650
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "OpenV** CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST "sha256"
4.创建证书
代码语言:javascript复制
cd /etc/openV**/easy-rsa/3.0
./easyrsa init-pki
./easyrsa build-ca
设置ca密码(输入两次):yourpassword
当执行到输入密码后会让你输入Common Name,你需要输入OpenV** CERTIFICATE AUTHORITY,如下:
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:OpenV** CERTIFICATE AUTHORITY
创建CA、密码:yourpassword
./easyrsa gen-dh
代码语言:javascript复制
openV** --genkey --secret ta.key
cp -r ta.key /etc/openV**/
创建服务端证书,生成请求,使用gen-req来生成req
./easyrsa gen-req wwwserver
设置server密码(输入两次):yourpassword
输入两次密码之后,最后的Common Name可以直接回车即可。
签发证书,签约服务端证书
./easyrsa sign-req server wwwserver
执行此步会有个Confirm request选项,输入yes即可,如下:
Confirm request details: yes
输入yes签发证书,输入ca密码:yourpassword
生成windows客户端用户:
./easyrsa build-client-full www001
#注意:生成客户端用户的时候会提示设置密码
#可以直按回车密码为空、也可以设置输入密码(如设置密码,客户端连接时需输入密码)
生成客户端证书,并设置密码(客户端连接时用)
5.修改内核转发
代码语言:javascript复制
vim /etc/sysctl.conf
末尾加入
代码语言:javascript复制
net.ipv4.ip_forward = 1
保存后执行:sysctl -p
6.修改防火墙转发规则
防火墙列表
代码语言:javascript复制
systemctl start firewalld.service
firewall-cmd --state
firewall-cmd --zone=public --list-all
firewall-cmd --add-service=openV** --permanent
firewall-cmd --add-port=1194/ucp --permanent
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --add-source=10.8.0.0 --permanent
firewall-cmd --query-source=10.8.0.0 --permanent
firewall-cmd --add-masquerade --permanent
firewall-cmd --query-masquerade --permanent
firewall-cmd --reload
7.启动openV**
代码语言:javascript复制
systemctl start openV**@server
启动时输入服务端证书密码:yourpassword
第一次启动的时候可能会提示,重新执行systemctl start openV**@server输入密码即可
启动openV**
systemctl start openV**@server
启动时输入服务端证书密码:yourpassword
第一次启动的时候可能会提示,重新执行systemctl start openV**@server输入密码即可
启动V**,输入密码才能启动
网络信息,至此openV**服务器安装完成
8.由于是云服务器,我们还需要在安全组规则中放开1194端口,否则连接不成功,我为了简便把所有ip都能访问1194,生产中可以修改端口。
9.客户端需要的证书:www001.crt、www001.key、ca.crt、ta.key
存放到一个文件夹,然后将里边的文件夹拷贝到本地电脑
代码语言:javascript复制
mkdir -p /etc/openV**/client
cp -r /etc/openV**/easy-rsa/3.0/pki/issued/www001.crt /etc/openV**/client/
cp -r /etc/openV**/easy-rsa/3.0/pki/private/www001.key /etc/openV**/client/
cp -r /etc/openV**/easy-rsa/3.0/pki/ca.crt /etc/openV**/client/
cp -r /etc/openV**/ta.key /etc/openV**/client/
10.下载客户端软件,客户端配置文件www001.oV**(ip换为openV**服务器外网ip)
代码语言:javascript复制
client
dev tun
proto udp
resolv-retry infinite
nobind
remote remote ip 1194
comp-lzo
ca ca.crt
cert www001.crt
key www001.key
tls-auth ta.key 1
keepalive 10 120
persist-key
persist-tun
verb 3
status www001-status.log
log-append www001.log
安装OpenV** 客户端后,清空config文件夹,将www001.crt、www001.key、ca.crt、ta.key、www001.oV**放入config中即可!