Openvpn安装for 证书验证

Openvpn作用

Openvpn隧道就是要两台主机通信的时候就像在一个局域网内通信一样,但是为了安全可以用ssl加密

虚拟专用网VPN:加密隧道

1
2
3
4
可以用ssl或者ipsec加密
1、ssl加密:软件openvpn,支持各种操作系统,简单易用,工作中常用
2、ipsec加密:软件freebsd以后将成为内核默认支持
3、PPTP/L2TP:主要用于windows,点对点协议/二层隧道协议

环境部署

PqUExU.png

Openvpn服务器IP:
1
2
eth0		192.168.204.132(模拟外网)
eth1 192.168.80.100(模拟内网)
win7客户端IP:
1
192.168.204.143(模拟外网)
公司内网linux服务器IP:
1
192.168.80.101(模拟内网)

Openvpn服务器部署

1、首先查看是否开启了tun/tap的支持
1
2
cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state(表示已开启,可以进行配置)
2、安装ntp时间同步
1
2
yum -y install ntp
ntpdate pool.ntp.org
3、安装依赖
1
yum -y install openssl openssl-devel lzo-devel lzo pam pam-devel automake pkgconfig libtool gcc g++
1
2
3
1)gcc g++ gcc		#g++为系统需要的编译工具
2)lzo库 #Lzo库的功能是对虚拟链路进行压缩
3)openssl #囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议
4、测试Openvpn服务器两块网卡的连通性

PqUZMF.png

5、使用win7客户端测试能否连通内网

PqUer4.png

  • 说明这是两个不同的网段,无法互通,后续安装完openvpn之后,我们再来进行测试是否能够连通
6、编译安装Openvpn
1
2
3
tar -zxvf openvpn-2.2.2.tar.gz 
cd openvpn-2.2.2
./configure --prefix=/usr/local/openvpn && make && make install
7、查看生成的文件
1
2
cd /root/openvpn-2.2.2/easy-rsa/2.0/
ll

PqUmqJ.png

1
2
3
4
5
6
7
1)vars 脚本,是用来创建环境变量,设置所需要的变量的脚本
2)clean-all 脚本,是创建生成CA证书及密钥 文件所需要的文件和目录
3)build-ca 脚本,生成CA证书(交互)
4)build-dh 脚本,生成Diffie-Hellman文件(交互)
5)build-key-server 脚本,生成服务器端密钥(交互)
6)build-key 脚本,生成客户端密钥(交互)
7)pkitool 脚本,直接使用vars的环境变量设置直接生成证书(非交互)
8、生成CA证书及密钥
1
2
3
cp vars vars.bak
vim vars
source vars
  • 修改前:

PqUuZ9.png

  • 修改后:

PqUKaR.png

9、初始化keys文件
1
2
./clean-all 
./build-ca
10、生成服务器使用的VPN server ca证书
1
2
./build-key-server openvpn		#openvpn是证书名称
一路回车,两次输入y
11、生成Diffie-Hellman文件
1
./build-dh
12、生成客户端CA证书及密钥
1
./build-key nongkaige			#nongkaige是证书名称
13、把生成的证书密钥等文件创建一个文件夹存放
1
2
3
4
mkdir -p /etc/openvpn
cp -R /root/openvpn-2.2.2/easy-rsa/2.0/keys/ /etc/openvpn/
cp /root/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/
cp /root/openvpn-2.2.2/sample-config-files/client.conf /etc/openvpn/
14、修改openvpn配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vim /etc/openvpn/server.conf

port 1194 #使用的端口,默认1194
proto tcp #使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/openvpn.crt
key /etc/openvpn/keys/openvpn.key
dh /etc/openvpn/keys/dh1024.pem
server 10.50.50.0 255.255.255.0 #客户端与服务器建立专用的数据通信网络的网段,自由定义即可
ifconfig-pool-persist ipp.txt
push "route 192.168.80.0 255.255.255.0" #内网网段
client-to-client #允许客户端之间相互访问
duplicate-cn
keepalive 10 120
comp-lzo #对数据进行压缩
persist-key
persist-tun
status /var/log/openvpn-status.log #openvpn状态log
log /var/log/openvpn.log
verb 3
15、启动Openvpn
1
/usr/local/openvpn/sbin/openvpn --config /etc/openvpn/server.conf --daemon
16、查看端口是否已经起来
1
netstat –ln

PqUMI1.png

17、查看是否生成了虚拟网段
1
ifconfig

PqU3RK.png

Win7客户端使用Openvpn GUI部署

1、下载和服务器端一致的客户端版本软件,然后安装
2、把/etc/openvpn/keys目录下的ca.crt、nongkaige.crt、nongkaige.key下载到D:\OpenVPN\config下
3、在openvpn服务器上编辑client.conf,然后下载到D:\OpenVPN\config下并改名为client.ovpn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vim client.conf

client
dev tun
proto tcp
remote 192.168.204.132 1194 #服务器外网IP和端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert nongkaige.crt
key nongkaige.key
ns-cert-type server
comp-lzo
verb 3
4、拨号成功而且openvpn客户端显示为绿色,就说明vpn拨号已经成功了!

PqUJMD.png

验证各网段是否互通

  • win7客户机中测试连通性:

PqUtqH.png

PqUUZd.png

PqUdII.png

PqUBJP.png

  • 最后发现,客户端无法连通公司内网的服务器,继续下面的操作:
1、openvpn服务器开启路由转发功能
1
2
3
4
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl –p
2、公司内网服务器网关指向openvpn服务器的内网网卡:192.168.80.100

PqUrz8.png

3、在wni7外网客户端上测试是否能连通公司内网服务器

PqUcLQ.png

后期维护

1、如果后期重新添加key的话
1
source vars./build-key
2、后期客户端的吊销
1
2
3
1)source vars./revoke-full xiaowang #-->会生成crl.pem文件
2)检查keys/index.txt,发现被吊销的用户前面有个R
3)怎么使吊销的生效呢,就是在server.conf里面加上 #crl-verify /etc/openvpn/keys/crl.pem,然后重启openvpn服务生效。
3、停止openvpn服务
1
ls /root/openvpn-2.2.2/sample-config-files/

PqU2Zj.png

4、Openvpn客户端连接上之后,无法上外网
1)找到以下类型语句
1
2
3
push "redirect-gateway def1 bypass-dhcp"
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 208.67.222.222"
2)把它们注释掉
1
2
3
;push "redirect-gateway def1 bypass-dhcp"
;push "route 192.168.1.0 255.255.255.0"
;push "dhcp-option DNS 208.67.222.222"
  • 意思是不要重建client的网关 路由 DNS。仔细检查push配置语句,重启openvpn服务器,搞定

PqUhiq.png

博主QQ:1012405802
技术交流QQ群:830339411
版权声明:网站内容有原创和转载,如有侵权,请联系删除,谢谢!!
感谢打赏,93bok因你们而精彩!!(支付宝支持花呗)
0%