openvpn(二)openvpn案例

一、模拟企业环境

  • centos7.9(VPN服务器):vmnet1==>192.168.10.1 vmnet8==>192.168.8.31
  • win7(VPN客户端):vmnet8==>192.168.8.32
  • win7 (内网服务器):vmnet1==> 192.168.10.2
模拟企业环境

1.1设置VMware网络

设置VMware网络
1.1设置VMware网络

1.2 设置主机网络适配器

设置主机网络适配器
VPN服务器,其他不截图
修改server.conf
在server.conf添加此行

查看客户端的ip然后添加iptables—nat

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE

二、如何给客户端指定固定ip

2.1 在服务端server.conf,开启ccd

服务端server.conf,开启ccd

2.2 在/data/app/openvpn/创建“commonName”文件

方法一:如果server.conf的没启用subnet的话,如下图所示

linux、基础技术、技术与框架openvpn(二)openvpn案例插图5

则ccd/commonName文件内容如下:

linux、基础技术、技术与框架openvpn(二)openvpn案例插图6
ccd/gani-server内容
linux、基础技术、技术与框架openvpn(二)openvpn案例插图7
ip取值范围

https://openvpn.net/community-resources/configuring-client-specific-rules-and-access-policies/

但以上的配置,存在以下的bug。

1、ip地址不能随便选需要上图的1/5/9。

2、无法ping内网,只能访问外网

方法二: 如果server.conf的启用subnet的话,如下图所示

openvpn设置固定ip无法ping通内网的方式
openvpn设置固定ip无法ping通内网的方式

三、openvpn负载均衡

https://openvpn.net/community-resources/implementing-a-load-balancing-failover-configuration/

如何安装openvpn可以查阅本网站,这里就不提了。

准备两台openvpn的服务端。分别是192.168.8.31/192.168.8.39

192.168.8.31的server.conf
192.168.8.31的server.conf
192.168.8.32的server.conf
192.168.8.32的server.conf

客户端配置

linux、基础技术、技术与框架openvpn(二)openvpn案例插图11
客户端配置文件
  • remote 192.168.8.39 1194
  • remote 192.168.8.31 1194
  • remote-random
  • resolv-retry 60

配置完毕,启动服务端,然后客户端连接,此时会随机连接。连接成功后,断开某一个openvpn服务,60秒后会切换并重新分配ip

扩展:也可以直接在同一个服务器的server.conf设置两个server

linux、基础技术、技术与框架openvpn(二)openvpn案例插图12

然后设置两个client证书,放在不同的客户端分别指定IP

四、如何推送DNS

在server.conf定义推送

push "dhcp-option DNS 202.106.0.20"
push "dhcp-option DNS 8.8.8.8"

定义后,客户端截图

linux、基础技术、技术与框架openvpn(二)openvpn案例插图13

五、分流设置或全局流量设置

# 如果启用该行指令,所有客户端的默认网关都将重定向到VPN # 这将导致诸如web浏览器、DNS查询等所有客户端流量都经过VPN # (为确保能正常工作,OpenVPN服务器所在计算机可能需要在TUN/TAP接口与以太网之间使用NAT或桥接技术进行连接)

;push “redirect-gateway def1 bypass-dhcp”

六、 吊销证书

Open×××使用easy-rsa3吊销证书
shell>cd /etc/open***/easy-rsa/easyrsa3
shell>./easyrsa revoke targetkey(证书名)
shell>./easyrsa gen-crl

其中gen-crl会生成一份吊销证书的名单,放在/etc/open***/easy-rsa/easyrsa3/pki/crl.pem文件里

最后再server.conf文件中增加此项:

crl-verify /etc/open***/easy-rsa/easyrsa3/pki/crl.pem

七 自动生成证书脚本

#!/bin/bash
OVPNSERVER=/data/app/openvpn/server
OVPNCLIENT=/data/app/openvpn/client
EASYRSA=/data/app/openvpn/easyrsa
PKI=$EASYRSA/pki

read -p "input ovpnclient name: " USER
$EASYRSA/easyrsa build-client-full $USER nopass

mkdir -p $OVPNCLIENT/$USER
cp $PKI/ca.crt $OVPNCLIENT/$USER
cp $PKI/issued/$USER.crt $OVPNCLIENT/$USER
cp $PKI/private/$USER.key $OVPNCLIENT/$USER

cp $OVPNSERVER/client.conf $OVPNCLIENT/$USER/$USER.ovpn
cp $OVPNSERVER/ta.key $OVPNCLIENT/$USER/ta.key

zip $OVPNCLIENT/$USER.zip $OVPNCLIENT/$USER

exit 0