技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Linux>正文
Linux下安装部署Open-V+P+N Access Server服务
2024年09月05日 Linux 暂无评论 ⁄ 被围观 1,497次+

OpenVPN 和 OpenVPN Access Server(AS)区别:

1、OpenVPN 是一个开源的 VPN 解决方案,提供基本的 VPN 功能;OpenVPN Access Server 是一个商业产品,提供图形用户界面、简化的管理和更多的企业功能。

2、OpenVPN 需要手动配置,适合有技术背景的用户;OpenVPN Access Server 提供了一个易于使用的管理界面,简化了配置和管理过程。

3、OpenVPN 是社区支持的,依赖于社区文档和论坛;OpenVPN Access Server 提供官方技术支持和更新。

4、OpenVPN 是完全开源的;OpenVPN Access Server 有免费版和商业版,商业版需要许可证,免费版只支持2个客户端连接。

5、OpenVPN Access Server不是OpenVPN的web界面,它们是两个独立的产品,没有依赖关系,安装了OpenVPN Access Server就不需要再安装OpenVPN。

操作系统:CentOS-7.9

OpenVPN Access Server下载:

最新版本的OpenVPN Access Server需要Python3.8支持,CentOS-7.x默认是Python3.6,所以不建议使用最新版本

CentOS-7.9推荐安装的OpenVPN Access Server版本是:2.9.x到2.11.x 原因是这些版本依赖Python3.6,还能解除只支持2个客户端的连接限制

OpenVPN Access Server安装包由2个组件构成,两个组件都需要安装。

1、openvpn-as:这是 OpenVPN Access Server 的主要安装包,包含了服务器端的所有必要组件和功能。

2、openvpn-as-bundled-clients:这是 OpenVPN Access Server 的客户端包,通常包括了用于连接到 Access Server 的客户端应用程序和工具。

3、openvpn-as 包来部署服务器端功能,而 bundled-clients 包则提供客户端支持,这两个包都要安装。

一、准备篇

1、修改默认yum源,截止目前CentOS-7.x官方已经停止维护,yum命令默认已经无法使用。

#配置中科大yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo-backup

vi /etc/yum.repos.d/CentOS-Base.repo #编辑源文件

[base]

name=CentOS- - Base

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]

name=CentOS- - Updates

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]

name=CentOS- - Extras

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]

name=CentOS- - Plus

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

:wq! #保存退出

yum clean all

yum makecache #生成缓存

yum install ntp #安装软件

2、关闭selinux

#执行以下命令

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

3、防火墙设置

OpenVPN Access Server 默认使用以下端口:

UDP 1194:用于 OpenVPN 的标准 VPN 连接,OpenVPN 客户端默认使用 UDP 1194 进行连接是因为UDP有更低的延迟和更好的性能。

TCP 943:用于 OpenVPN Access Server 的管理界面访问。

这些端口可以在 Access Server 的设置中进行调整。如果有特殊需求,可以在配置文件中更改端口设置。

3.1关闭firewall

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl mask firewalld

systemctl stop firewalld

yum -y remove firewalld

3.2安装iptables防火墙,开启相应的端口

yum -y install iptables-services #安装

vi /etc/sysconfig/iptables

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 943 -j ACCEPT

-A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

systemctl enable iptables.service #设置防火墙开机启动

systemctl restart iptables.service #启动防火墙使配置生效

4、设置系统时间

rm -rf /etc/localtime #先删除默认的时区设置

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #替换亚洲/上海作为默认时区

vi /etc/sysconfig/clock #添加时区

Zone=Asia/Shanghai

:wq! #保存退出

timedatectl set-local-rtc 0

hwclock --systohc -u #系统时钟和硬件时钟同步,当前系统时区不为 UTC,是CST时间,所有要加-u参数

date #显示系统时间

date -s "2024-09-4 15:24:00" #修改时间

watch -n 1 date #显示实时时间

ntpdate ntp.aliyun.com #同步时间服务器

echo -e "0 0 * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null" >> /var/spool/cron/root #添加计划任务

systemctl restart crond.service #重启服务

5、开启内核转发

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p #立即生效

6、系统参数优化

vi /etc/security/limits.conf #在最后一行添加以下代码

* soft nproc unlimited

* hard nproc unlimited

* soft nofile 1000000

* hard nofile 1000000

:wq! #保存退出

vi /etc/sysctl.conf #在最后一行添加以下代码

fs.file-max = 65535000

fs.nr_open = 65535000

kernel.pid_max=655350

vm.swappiness = 0

:wq! #保存退出

/sbin/sysctl -p

ulimit -a #查看

ulimit -n 1000000 #设置

7、安装依赖包

7.1安装依赖环境python3.6

yum install python36 python36-devel

7.2安装依赖包

yum install libxslt libtool-ltdl net-tools xmlsec1-openssl xmlsec1 cyrus-sasl unzip libpcap gcc* wget unzip zip ntp

8、安装包下载

#各个版本下载地址

#openvpn-as-2.9版本

http://swupdate.openvpn.net/as/clients/openvpn-as-bundled-clients-17.rpm

http://swupdate.openvpn.net/as/openvpn-as-2.9.2_04614689-CentOS7.x86_64.rpm

#openvpn-as-2.11版本

http://swupdate.openvpn.net/as/clients/openvpn-as-bundled-clients-25.rpm

http://swupdate.openvpn.net/as/openvpn-as-2.11.0_794ab41d-CentOS7.x86_64.rpm

#openvpn-as最新版本

wget https://openvpn.net/downloads/openvpn-as-latest-CentOS7.x86_64.rpm

wget https://openvpn.net/downloads/openvpn-as-bundled-clients-latest.rpm

这里我们使用openvpn-as-2.11版本版本来部署

下载openvpn-as-bundled-clients-25.rpm和openvpn-as-2.11.0_794ab41d-CentOS7.x86_64.rpm

mkdir -p /data/soft #创建目录

上传安装包到/data/soft目录

二、安装篇

1、安装OpenVPN Access Server

cd /data/soft

yum -y localinstall openvpn-as-*.rpm #安装过程会自动下载依赖包解决依赖关系,推荐安装方法

#也可以使用rpm命令安装,如果缺少依赖包需要再逐个安装解决

rpm -ivh openvpn-as-bundled-clients-25.rpm

rpm -ivh openvpn-as-2.11.0_794ab41d-CentOS7.x86_64.rpm

#安装完成过后,会自动创建账号,可以在/usr/local/openvpn_as/init.log查看

Access Server Web UIs are available here:

Admin UI: https://192.168.21.101:943/admin

Client UI: https://192.168.21.101:943/

To login please use the "openvpn" account with "gt4xtr7fm9pE" password.

(password can be changed on Admin UI)

2、解除OpenVPN Access Server默认只支持2个客户端的连接限制

systemctl stop openvpnas #停止服务

cd /usr/local/openvpn_as/lib/python #进入安装目录

mkdir unlock_license #创建目录

mv pyovpn-2.0-py3.6.egg pyovpn-2.0-py3.6.egg_bak #改名备份

cp -rp pyovpn-2.0-py3.6.egg_bak unlock_license/pyovpn-2.0-py3.6.zip #移动到目录下并修改后缀

cd unlock_license #进入目录

unzip pyovpn-2.0-py3.6.zip #解压

cd pyovpn/lic #进入目录

mv uprop.pyc uprop2.pyc #改名备份

vi uprop.py #编辑文件

from pyovpn.lic import uprop2

old_figure = None

def new_figure(self, licdict):

ret = old_figure(self, licdict)

ret['concurrent_connections'] = 1024

return ret

for x in dir(uprop2):

if x[:2] == '__':

continue

if x == 'UsageProperties':

exec('old_figure = uprop2.UsageProperties.figure')

exec('uprop2.UsageProperties.figure = new_figure')

exec('%s = uprop2.%s' % (x, x))

:wq! #保存退出,1024是自定义设置的连接数,也可以设置为9999

python3 -O -m compileall uprop.py #编译源代码

mv __pycache__/uprop.cpython-36.opt-1.pyc ./uprop.pyc #移动文件到当前目录

cd /usr/local/openvpn_as/lib/python/unlock_license #进入目录

zip -r pyovpn-2.0-py3.6_cracked.zip common EGG-INFO pyovpn #压缩打包文件

mv /usr/local/openvpn_as/lib/python/unlock_license/pyovpn-2.0-py3.6_cracked.zip /usr/local/openvpn_as/lib/python/pyovpn-2.0-py3.6.egg #改名移动文件

systemctl stop openvpnas #启动服务

systemctl restart openvpnas #重启服务

systemctl status openvpnas #查询状态

3、验证是否已解除2个客户端的连接限制

根据上面的python代码:ret[‘concurrent_connections’] = 1024,这里表示连接数上限为1024,

cat /var/log/openvpnas.log #在openvpnas服务的启动日志中可以看到

2024-09-04T17:15:54+0800 [stdout#info] Server Agent started

2024-09-04T17:15:59+0800 [stdout#info] License Info {'concurrent_connections': 1024, 'apc': False}

还可以登录管理后台页面查看客户端的连接数限制

管理页面Admin UI: https://192.168.21.101:943/admin

账号:openvpn

密码:gt4xtr7fm9pE

三、使用篇

1、登录管理界面,修改外网映射地址

我们的OpenVPN Access Server是部署在内网环境中,客户端无法直接,需要通过外网端口转发

选择Configuration-Server-Network Settings

设置Hostname or IP Address:10.189.189.5

#这里填写客户端能够访问的外网地址,就是客户端证书文件里面的OpenVPN Access Server服务器IP

#修改这个地址不影响内网访问地址,相当于多配置了一个能让客户端连接的外网IP地址

#需要把10.189.189.5这个ip的对应端口映射到192.168.21.101上,客户端才能正常连接

#生成的客户端证书里面是外网ip地址+内网端口,所以外网的映射端口必须和内网端口一致,否则客户端无法连接

#如果OpenVPN Access Server是直接部署在公网上,客户端能够直接,就不需要修改这个地址

#管理员登录和客户端登录可以设置不同的端口

2、设置客户端连接协议

选择Configuration-Server-Network Settings

Protocol

TCP

UDP

Both (Multi-daemon mode) yes

默认是TCP和UDP都可以,可以指定协议,只使用一种

默认的端口443,1194,943这些都能自定义设置

3、设置客户端访问方式

Configuration-VPN Settings-VPN IP Network-Dynamic

IP Address Network 172.27.224.0 #VPN客户端连接成功后获得的ip地址,可以自定义修改

of Netmask bits 20 #子网掩码

Group Default IP Address Network (Optional) 172.27.240.0/20 #指定的静态VPN客户端IP地址的网络范围,和上面的地址相同即可

Routing设置

Should VPN clients have access to private subnets (non-public networks on the server side)? Yes,using NAT

这个选项决定了 VPN 客户端是否可以访问服务器端的私有子网(即服务器端网络中不是公开的网络)。如果启用,VPN 客户端将能够访问指定的内部网络资源。

Specify the private subnets to which all clients should be given access (one per line): 192.168.21.0/24

在此处,你需要列出所有 VPN 客户端应有权限访问的私有子网,每行一个子网。例如:192.168.21.0/24 表示客户端将能够访问这个特定的子网。

Should client Internet traffic be routed through the VPN? yes

这个选项决定了 VPN 客户端的互联网流量是否应该通过 VPN 服务器进行路由。如果启用,这意味着所有客户端的互联网流量都将经过 VPN,从而可以提高安全性和隐私保护,但可能会导致速度变慢。

Should clients be allowed to access network services on the VPN gateway IP address? yes

这个选项决定了 VPN 客户端是否可以访问 VPN 网关的 IP 地址上的网络服务。如果启用,客户端将能够访问 VPN 服务器本身上的服务,例如 Web 服务器、文件共享等。

DNS Settings设置

Do not alter clients' DNS server settings no

不要更改客户端的DNS服务器设置,VPN不会更改或推送DNS服务器设置给客户端。客户端会继续使用他们原有的DNS服务器。

Have clients use the same DNS servers as the Access Server host yes

让客户端使用与接入服务器相同的DNS服务器,VPN客户端将使用与VPN服务器(接入服务器)相同的DNS服务器。这通常在需要VPN客户端通过VPN进行DNS解析时使用。

Have clients use specific DNS servers no

让客户端使用特定的DNS服务器,VPN管理员指定特定的DNS服务器,客户端在连接到VPN后会使用这些DNS服务器进行名称解析。这允许管理员控制客户端的DNS解析行为。

#默认是客户端可以访问VPN内网段192.168.21.0/24,客户端流量都将经过VPN转发,客户端可以访问VPN服务器本身上的服务,客户端使用与VPN服务器相同的DNS

#如果只希望客户端访问内网段192.168.21.0/24地址,客户端的其他流量不经过VPN转发,可以修改下面两个设置

Should client Internet traffic be routed through the VPN? no 客户端的流量不通过VPN转发

Do not alter clients' DNS server settings yes 不要更改客户端的DNS服务器设置

4、添加用户

点击User Management-User Permissions添加用户

user01/123456

user02/123456

user03/123456

默认用户除了使用客户端登录以外无任何权限,默认不支持自动登录(Allow Auto-login),每次登录都需要用户输入其密码,如需要自动登录,需要配置允许。

5、客户端登录

用户登录:Client UI: https://192.168.21.101:943/

输入账号密码登录系统

登录以后下载对应客户端,下载安装以后直接可以看到一个自己账号的连接,点击连接会弹出登录输入密码,输入后即可成功连接使用。

也可以下载配置文件,导入已有的客户端连接即可

6、其他设置

重新初始化系统,会删除现有的账户信息,恢复到初始化安装完成状态,谨慎使用

/usr/local/openvpn_as/bin/ovpn-init --batch --force

7、其他客户端

下载地址:https://www.techspot.com/downloads/5182-openvpn.html

至此,Linux下安装部署Open-V+P+N Access Server服务完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2024 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3