openwrt中openvpn配置方法
1、说明
1.1已安装好openvpn
openwrt中已安装好openvpn,没安装好的,网上查安装方法;

1.2配置的目的

利用openvpn协议,通过vpn服务器作为数据转发通道,将多个vpn客户端通过vpn隧道进行二层连接,相当于网线直连;可以这么理解:当配置好服务端和客户端后,就相当于一个不受物理位置影响的具大的交换机,服务端相当于交换机的主控,用于控制转发数据,每个客户端的vpn隧道出口(一般是tap设备绑定的LAN口)相当于交换机的一个端口,每个客户端之前的通信就相当于交换机中各个端口之间的通信(二层通信)。
2、openvpn证书配置
2.1配置 easy-rsa
1)找一台linux服务器进行如下操作指令:
wget https://github.com/OpenVPN/easy-rsa/archive/v3.0.7.zip
unzip easy-rsa-3.0.7.zip
cd easy-rsa-3.0.7/easyrsa3
cp -a vars.example vars
2)修改vars文件,根据需要去掉注释,并修改对应值;或者直接在文件末尾追加如下信息:
set_var EASYRSA_REQ_COUNTRY “CN” # 国家
set_var EASYRSA_REQ_PROVINCE “BJ” # 省
set_var EASYRSA_REQ_CITY “BeiJing” # 城市
set_var EASYRSA_REQ_ORG “Ystar” # 组织
set_var EASYRSA_REQ_EMAIL “yushuai@ystar.io” # 邮箱
set_var EASYRSA_REQ_OU “Ken” # 拥有者
set_var EASYRSA_KEY_SIZE 2048 # 长度
set_var EASYRSA_ALGO rsa # 算法
set_var EASYRSA_CA_EXPIRE 36500 # CA证书过期时间,单位天
set_var EASYRSA_CERT_EXPIRE 36500 # 签发证书的有效期是多少天,单位天
2.2生成服务端和客户端证书
1)初始化与创建CA根证书
./easyrsa init-pki
初始化,会在当前目录创建PKI目录,用于存储一些中间变量及最终生成的证书
./easyrsa build-ca
在这部分需要输入PEM密码 PEM pass phrase,输入两次,此密码必
须记住,不然以后不能为证书签名。 还需要输入common name 通用
名,如:openvpen,这个你自己随便设置个独一无二的。
2)生成服务端证书
./easyrsa build-server-full server nopass
为服务端生成证书对并在本地签名。nopass参数生成一个无密码的证
书;在此过程中会让你确认ca密码;
./easyrsa gen-dh
创建Diffie-Hellman,确保key穿越不安全网络的命令,时间会有点长,
耐心等待;
3)生成客户端证书
生成多个客户端证书:
#无密码,实际应用中不推荐,客户端有密码可提高安全性
./easyrsa build-client-full client nopass
#让你输入密码,后续VPN连接时会使用
./easyrsa build-client-full ken
为客户端生成证书对并在本地签名。nopass参数生成一个无密码的证书;在此过程中都会让你确认ca密码;
为了提高安全性,生成ta.key(也可以不配):
openvpn --genkey --secret ta.key
加强认证方式,防攻击。如果配置文件中启用此项(默认是启用的),就
需要执行上述命令,并把ta.key放到/etc/openvpn/server目录。配置文件
中服务端第二个参数为0,同时客户端也要有此文件,且client.conf中此指
令的第二个参数需要为1。【服务端有该配置,那么客户端也必须要有】;
4)整理证书
服务端证书:
ca.crt: 在 pki目录下
server.key: 在pki/private 目录下
server.crt: 在pki/issued 目录下
dh.pem: 在pki目录下
ta.key: 在easyrsa3目录下(可以不使用这个证书)
客户端证书:
ca.crt: 在 pki目录下(和服务端的一样)
client.key: 在pki/private 目录下
client.crt: 在pki/issued 目录下
3、openvpn服务端
3.1界面配置vpn
1)进入VPN->OpenVPN中,找到Template based configuration(配置模板)选择:Server configuration for an ethernet bridge VPN 这个模块,输入名字,添加:

2)点击编辑,进入配置:

3)按如下配置信息进行配置,其中模块自带的“不需要”的选项自行通过“–remove --”或者清空内容或者去掉勾进行移除(注:要保存并应用才生效),如果模块不存在的选项,通过“更多选项”进行“添加”;





4)TLS证书的上传:

在“上传文件”界面可以按实际情况进行如下操作:
①如果正确的证书在系统里在,直接在对应的目录里选择即可;
②如果需要上传新的证书,先打开目标目录,然后选择本地电脑上的证书进行上传即可,原来不用的证书可以保留也可以删除,要注意区分开就行;
3.2启动服务器:

确认是否启动成功:
1)通过ssh连接到openwrt系统中,使用指令:
cat /tmp/log/openvpn.log

2)如果启动失败,通过log上打提示进行解决问题;
有可能如下原因:①与服务端的网络不通;②服务器的端口号不对;③证书不正确;
3.3配置tap二层转发虚拟设备:
openvpn中的二层转发数据都是通过tap这个虚拟的网络设备进行二层转发的,所以在实际使用中,如果openwrt系统中的lan口的数据需要通过openvpn隧道进行二层数据的转发,一定要将lan口绑定tap,才可以进行转发:
1)在“网络”->“接口”->“设备”中将br-lan 这个网桥设备绑定tap设备tapx(x是数字,根据实际情况配置),作为服务器可以不绑lan口;


3.4 关于公网IP要求
如果vpn需要在公网上使用,那么vpn的服务器需要拥有公网IP,确保能让在内网的vpn客户端能正常访问;当然,也可以使用域名方式进行访问;
3、openvpn客户端
4.1界面配置vpn
1)进入VPN->OpenVPN中,找到Template based configuration(配置模板)选择:Server configuration for an ethernet bridge VPN 这个模块,输入名字,添加:

2)点击编辑,进入配置:

3)按如下配置信息进行配置,其中模块自带的“不需要”的选项自行通过“–remove --”或者清空内容或者去掉勾进行移除(注:要保存并应用才生效),如果模块不存在的选项,通过“更多选项”进行“添加”;





4)TLS证书的上传:


在“上传文件”界面可以按实际情况进行如下操作:
①如果正确的证书在系统里在,直接在对应的目录里选择即可;
②如果需要上传新的证书,先打开目标目录,然后选择本地电脑上的证书进行上传即可,原来不用的证书可以保留也可以删除,要注意区分开就行;
4.2启动服务器:

确认是否启动成功:
1)通过ssh连接到openwrt系统中,使用指令:
cat /tmp/openvpn.log

2)如果启动失败,通过log上打提示进行解决问题;
有可能如下原因:①与服务端的网络不通;②服务器的端口号不对;③证书不正确;
4.3配置tap二层转发虚拟设备:
openvpn中的二层转发数据都是通过tap这个虚拟的网络设备进行二层转发的,所以在实际使用中,如果openwrt系统中的lan口的数据需要通过openvpn隧道进行二层数据的转发,一定要将lan口绑定tap,才可以进行转发:
2)在“网络”->“接口”->“设备”中将br-lan 这个网桥设备绑定tap设备tapx(x是数字,根据实际情况配置),作为客户端,还需要绑定一个物理的lan口作为openvpn隧道的出入口,这个绑定的lan口用于传入需要通过vpn隧道进行传输的数据;


5、关于vlan配置
openwrt中,可以对绑在br-lan中的各个接口进行配置vlan,操作路径:网络->接口->设备->br-lan->配置:


配置说明:
VLAN ID: 根据实际情况配置vlan
本地: 默认一定选上,让所有的vlan都可以在本地接口之前转发
非成员: 如果选择非成员,意味着这个接口不属于这个VLAN的,那么VLAN ID将不起作用,接口不会处理带这个VLAN数据的流量;
未打标签:即Utag,和交换机的vlan配置一样;
已打标签:即tag,和交换机的vlan配置一样;
是主VLAN:即pvid,和交换机的vlan配置一致;
1126

被折叠的 条评论
为什么被折叠?



