参考:https://kaive.me/2017/07/17/Open***/
主要区别就是easy-rsa从2版本更新到3*版本了,配置方式和文件存放目录发生了变化。
1.安装( 在配置open***的过程中还需要安装easy-rsa ,主要用来生成秘钥。)
yum -y install epel-release
yum -y install open*** easy-rsa
第一种方式:(推荐)
复制配置文件
cp /usr/share/doc/open***-2.4.6/sample/sample-config-files/server.conf /etc/open***/
cp /usr/share/doc/easy-rsa-3.0.3/vars.example /etc/open***/vars
cp -rf /usr/share/easy-rsa/3.0.3/* /etc/open***/
制作根证书
cd /etc/open***
./easyrsa init-pki #初始化证书目录pki
./easyrsa build-ca nopass #创建根证书,提示输入Common Name,名称随意,但是不能和服务端证书或客户端证书名称相同
./easyrsa gen-dh #生成Diffle Human参数,它能保证密钥在网络中安全传输
制作服务端证书
./easyrsa build-server-full server nopass # server是服务端证书名称,可以用其它名称
制作客户端证书
./easyrsa build-client-full client nopass # client是客户端证书名称,可以用其它名称
第二种方式
复制配置文件
cp /usr/share/doc/open***-2.4.6/sample/sample-config-files/server.conf /etc/open***/
cp /usr/share/doc/easy-rsa-3.0.3/vars.example /etc/open***/server/vars
cp /usr/share/doc/easy-rsa-3.0.3/vars.example /etc/open***/client/vars
cp -rf /usr/share/easy-rsa/3.0.3/* /etc/open***/server/
cp -rf /usr/share/easy-rsa/3.0.3/* /etc/open***/client/
服务端:(这里采用无密码方式创建相关文件,避免后期输入pam密码的各种麻烦)
cd /etc/open***/server/
./easyrsa init-pki #初始化pki目录,默认存放证书和秘钥的地方
./easyrsa build-ca nopass #以无密码方式创建服务器根证书
./easyrsa gen-dh #生成Diffle Human参数,它能保证密钥在网络中安全传输
./easyrsa gen-req server nopass #创建服务端key文件,名字建议不要和前面的cn一样
./easyrsa sign server server #制作服务端证书,生产服务端crt文件
客户端:
cd /etc/open***/client/
./easyrsa init-pki #初始化,会在当前目录创建PKI目录,用于存储一些中间变量及最终生成的证书
./easyrsa gen-req client nopass #创建客户端private key,nopass表示不加密private key
cd /etc/open***/server/
./easyrsa import-req /etc/open***/client/client.req client #回到制作server证书时的那个目录,导入client端证书,准备签名
./easyrsa sign client client #制作客户端证书,如果设置了密码,输入build-ca时设置的那个密码
注意:ca、server和client的Common Name最好不要设置为一样,open***连接时会有问题 (我这里是server和cilent来区分的)
至此,server和client端证书已制作完毕 !
修改配置文件server.conf
local a.b.c.d # 填服务器真实IP
port 1194 #如果要修改默认端口,一定关闭selinux
proto tcp
dev tun
ca /etc/open***/pki/ca.crt
cert /etc/open***/pki/issued/server.crt
key /etc/open***/pki/private/server.key
dh /etc/open***/pki/dh.pem
server 10.8.0.0 255.255.255.0 # 给客户端分配的IP段
ifconfig-pool-persist ipp.txt # 记录客户端和虚拟ip的映射关系,当客户端重新连接时依然被分配断开之前的IP地址
push "route 172.20.100.0 255.255.255.0" # 这里填写的网段是服务端所在网络的网段,使得客户端可以到达服务端所在的服务器网络
keepalive 10 120
user nobody
group nobody
persist-key
persist-tun
status /var/log/open***-status.log
log /var/log/open***.log
verb 3 # 日志等级
#explicit-exit-notify 1 #此选项开启只能使用udp协议。否则会报错error: --explicit-exit-notify can only be used with --proto udp
#tls-auth ta.key 0
配置×××分流
虽然把Open×××服务器搭建好了,但是有一个问题,客户端所有应用的网络都走×××通道了,有时只是想访问某个站点或连接某个服务走×××通道而已,其它的还是使用本地网络,也就是实现×××分流效果。实现方法如下:
注释/etc/open***/server.conf里的以下两行:
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 8.8.8.8"
添加推送到客户端的路由规则,比如:
push "route 192.168.100.0 255.255.255.0"
假设192.168.100.0是×××服务器所在的局域网的网段,那么添加这条规则后,客户端也能访问与×××服务器同一网段的其它机器了,上面的路由规则可以是具体IP,可以是网段。配置好后重新启动Open×××服务,客户端重新连接,此时可以发现只有访问192.168.100.0网段时才会走×××通道。
开启路由转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
配置iptables转发规则
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
//10.8.0.0是***服务器提供的局域网
//如果服务器是双网卡,那么eth0这块就要视情况变动了,例如有两个网卡,一个是外网的,一个是内网的,如果想连上***之后访问内网,这块就要填写内网的网卡
保存iptables规则
service iptables save
启动Open***服务:open***@server
systemctl enable open***@server
systemctl start open***@server
Windows PC客户端配置
下载Open××× GUI客户端,64位下载地址:
下载好后按默认设置安装即可。
将以下3个文件下载下来并放到C:\Program Files\Open×××\config目录下
/etc/easy-rsa/pki/private/client.key
/etc/easy-rsa/pki/issued/client.crt
/etc/easy-rsa/pki/ca.crt
客户端配置文件C:\Program Files\Open×××\config\client.opvn,写入如下内容:
client
dev tun
proto tcp
remote a.b.c.d 1194 # 填服务器真实IP
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
verb 3 # 日志等级
转载于:https://blog.51cto.com/7072753/2308842