RockyLinux8/CentOS8安装部署OpenVPN Access Server

CentOS7将在2024年停止支持,所以需要提前将OpenVPN Access Server升级部署到RockyLinux8上

CentOS7的安装过程可以看这篇

1.安装

在线安装:

yum -y install https://as-repository.openvpn.net/as-repo-centos8.rpm
yum -y install openvpn-as

国内环境,大多数情况ping不通as-repository.openvpn.net,需要离线安装

安装命令,这里安装2.8.7版本的,当前最新版为2.11.1

wget https://swupdate.openvpn.net/as/openvpn-as-2.8.7_c7d6c210-CentOS8.x86_64.rpm
wget https://swupdate.openvpn.net/as/openvpn-as-bundled-clients-15.rpm
rpm -ivh openvpn-as-bundled-clients-15.rpm
yum install openvpn-as-2.8.7_c7d6c210-CentOS8.x86_64.rpm

openvpn-as-bundled对有要求,但是依赖里没写,具体要求见第9节。
========
其他安装方式

#使用yum源
wget http://as-repository.openvpn.net/as/yum/centos8/openvpn-as-2.8.7_c7d6c210-CentOS8.x86_64.rpm
wget https://swupdate.openvpn.net/as/clients/openvpn-as-bundled-clients-15.rpm
#使用latest选择最新版
wget https://openvpn.net/downloads/openvpn-as-latest-CentOS8.x86_64.rpm
wget https://openvpn.net/downloads/openvpn-as-bundled-clients-latest.rpm

2.放行防火墙端口

web配置端口为TCP 943端口,需要放行。

firewall-cmd --permanent --add-port=943/tcp
firewall-cmd --reload

openvpn服务端的端口会自动放行

CentOS8和CentOS7不同的是,需要把防火墙的流量转发打开。这一步是必做的。

开启命令

firewall-cmd --add-masquerade --permanent
firewall-cmd --reload

3.访问

ip+943端口即可访问,注意是https协议

Admin UI: https:/ip:943/admin
Client UI: https://ip:943/

如果安装了高版本访问不了,需要手动编译libssl.so.10

参考:https://blog.csdn.net/tcmmx1993/article/details/113243114

4.设置管理员密码

执行命令

passwd openvpn

之后根据提示输入密码,然后用这个用户登录web。

2.10.0之后,初始密码在安装完成之后控制台显示,只能通过web控制台修改了

若不小心关掉终端,可以通过查看日志获取初始密码

查看日志密码命令如下

cat /usr/local/openvpn_as/init.log |grep password

5.破解用户数限制

默认情况下只支持2个用户,可以参考一些文章制作egg包,去掉这些限制

参考1:OpenVPN Access Server 2.10.3 破解人数限制

参考2:OpenVPN Access Server 2.11.x 破解在线人数限制

参考3:Python 的 .egg 文件和 OpenVPN Access Server 破解补丁小研究

原理基本没有变化。

获取egg文件后的破解步骤

# 下载egg破解文件,每个版本对应一个,不通用
cp pyovpn-2.0-py2.7.egg /usr/local/openvpn_as/lib/python2.7/site-packages/
cd /usr/local/openvpn_as/bin
# 执行初始化脚本
./ovpn-init
# 如报错找不到相关模块,编辑_ovpn-init 注解掉即可。
nano _ovpn-init
# 注释掉 from pyovpn.util.gcp行,然后Ctrl+X保存
# 再次执行初始化脚本
./ovpn-init
#交互模式下,第一次输入大写的 DELETE,第二次输入yes,之后一路回车

2.10后的高版本执行ovpn-init的步骤换成重启服务就行

cp命令改成

cp pyovpn-2.0-py3.6.egg /usr/local/openvpn_as/lib/python/

重启服务命令

systemctl restart openvpnas.service
systemctl status openvpnas.service

6.内网网段设置

登录管理页

configuration–VPN Settings

Routting–选择 Yes, using NAT

在Specify the private subnets to which all clients should be given access (one per line): 指定局域网内网网段

我这里是

192.168.1.0/24

可以指定多个.

把Should client Internet traffic be routed through the VPN? 允许客户端互联网浏览通过VPN,这里企业里的设置为No,其他场景视情况而定。

7.客户端通信设置

登录管理页
configuration–Advance VPN

把Inter-Client Communication 设置为ON,这个是允许联入VPN的两个客户端直接通信,流量走的服务器转发。

把Multiple Sessions per User 设置为ON,这个是允许同一个账号同时登陆。多地登陆时不会被踢掉。

8.外网端口映射配置

如果VPN服务器部署在内网,可通过frp,nps工具映射到外网,注意,必须是同端口映射。VPN端的配置如下

登录管理页
configuration–Network Settings

Hostname or IP Address 这里设置成你的外网ip

Protocol 设置成TCP

Port number: 不要用默认的1194端口,建议改成别的端口。

保存配置,后续设置映射即可,客户端下载的配置文件里面就是外网ip的了,不应改配置文件就可以直接连接。

9.OpenVPN AS版本和bundled包版本对应关系

参考Release Note:https://openvpn.net/vpn-server-resources/release-notes/

As版本和bundle关系
参考 https://openvpn.net/vpn-server-resources/release-notes/

2.11.1 bundled 26
2.11.0 
2.10.3 bundled 25
2.10.2 bundled 23 24 停止centos8的支持
2.10.1 bundled 22
2.10.0 rhel 8使用独立仓库
2.9.6
2.9.5 bundled 19 20
2.9.4 bundled 18
2.9.3 
2.9.2
2.9.1 bundled 17
2.9.0 python2转向python3
2.8.8 bundled 16
2.8.7
2.8.6 bundled 13 14 15
2.8.5 bundled 12
2.8.4
2.8.3 bundled 11
2.8.2 bundled 6
2.8.1
2.8.0

CentOS7/8 RHEL8仓库地址

centos7
baseurl:http://as-repository.openvpn.net/as/yum/centos7/
repomd.xml:http://as-repository.openvpn.net/as/yum/centos7/repodata/repomd.xml
centos8 as最高版2.10.1
baseurl:http://as-repository.openvpn.net/as/yum/centos8/
repomd.xml:http://as-repository.openvpn.net/as/yum/centos8/repodata/repomd.xml
rhel8 as最低版2.10.0
baseurl:http://as-repository.openvpn.net/as/yum/rhel8/
repomd.xml:http://as-repository.openvpn.net/as/yum/rhel8/repodata/repomd.xml

10.桥接模式

桥接模式可以使用企业内网网段,部分穿越不了NAT的服务需要同网段通信,比如ftp主动模式,dubbo调用。

桥接有限制,只支持电脑,不支持ios 安卓手机端

安装bridge-utils,桥接模式依赖brctl,所以需要安装。如果不安装,后面启用桥接模式的时候导致服务器ip丢失。

yum install bridge-utils

这个CentOS8已经有这个包了,不需要编译或者使用CentOS7的

切换到桥接模式

cd /usr/local/openvpn_as/scripts/
./sacli --key "vpn.general.osi_layer" --value "2" ConfigPut
./sacli start

如果不需要这个模式,可以使用下面的命令恢复NAT模式

./sacli --key "vpn.general.osi_layer" ConfigDel
./sacli start

如果服务器所在网段有DHCP服务器,就不需要其他配置了,客户端重新下载配置文件就能用了。如果没有,还要做DHCP相关的配置。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注