1 背景
原来根据网上的资料在Cent7上配置过OpenVPN,主要目的是给不在公司的用户通过Internet连接到公司网络来访问公司的共享文档和ERP系统。
由于之前一直是少数用户访问,所以没有采取用户名密码的验证,而是采用最复杂的客户端证书验证,需要每次在系统里给用户建一个证书文档,然后在用户需要使用的设备上配置相关的文档才能使用,安全性是大大提高,但是IT人员管理相当不方便。随着用户需求越来越多,准备根据网上不多的资料配置一下OpenVPN+AD来进行账号密码登录。
近期由于CentOS的全面不支持,导致使用配置源相当不方便,所以果断放弃,转向Ubuntu。关于Ubuntu版本方面,由于测试时间是2022年五月份,这时22.04 LTS版已经正式发布。但在测试了近一个月后,发现由于各种不兼容,根本无法进行后期配置,所以转向了次一级的20.04 LTS版。
2 安装Ubuntu
下载了20.04.4 LTS Server版,准备在Hyper-V上进行虚拟化安装,由于OpenVPN不需要太高的性能,所以仅分配了一个CPU,2G内存,20G硬盘。从光驱启动,一开始的界面和22.04的版本不同的是先选择语言,这里选择了中文(简体)。
然后开始选择安装Ubuntu还是其他,这里直接回车选择。
开始进行初始化安装,看着即可,不用干预。
之后又会出现选择语言的界面,这里应该是系统的语言(由于属于命令符界面,所以一般都选择英文,没有非拉丁文选项)。
选择键盘布局,建议选择English(US),或者你也可以选择Identify Keyboard,根据让你输入的字符来自适应适配。
配置网络连接,由于我的服务器区域是不支持DHCP的,需要给这台服务器指定一个静态IP地址,第一行subnet,需要写网段/掩码的格式。
配置代理,这里如果没有代理上网的话,就是可以直接跳过。
配置Ubuntu的档案镜像地址,默认是http://cn.archive.ubuntu.com/ubuntu ,由于默认地址不一定快,所以我们可以改成阿里的档案镜像源地址http://mirrors.aliyun.com/ubuntu/ 这里修改好之后,就可以不用再在3.3修改更新源了。
可用的安装管理器升级,是否需要把更新安装器升级,建议选择Update to the newinstaller .
开始下载更新。
存储配置,默认即可。
存储分区配置,默认即可,懂的人可以按自己要求修改。继续后会确认该操作。
设置一个账号,第一个是全名,显示用,第二个是给服务器起名,第三个是登录名,后面两个是密码。
SSH设置,这里选择Install OpenSSH server,主要为了装好以后远程访问,下面选择按默认即可。
组件服务器快照,这里是一些现在时髦的组件模块,除非有必要,否则不用选择。
继续安装系统。可以选择下面的View full log,查看安装的日志。
安装完成,选择最下面的Reboot Now重启。
3 安装Ubuntu完成后的准备
3.1 给系统设置管理员密码
安装完成后,系统可以通过设置的用户名和密码登录,由于每次重启root的密码都会重置,这时需要设置一个固定的root密码。
sudo passwd
这时需要你先输入你现在登录用户的密码,然后会告知你设置一个root的密码,重复输入一下后设置完成。
3.2 实现远程管理
这时准备使用超级好用的远程ssh软件FinalShell连接服务器(具体介绍可以参看https://zond.top/finalshell/),这时发现root账号不能连接,只能通过设置的普通用户登录,检查发现是Ubuntu禁止root通过各种shell客户端访问服务器,可以通过修改ssh的配置文件实现。
vim /etc/ssh/sshd_config
修改的内容如下图,保留其他不变,添加一行PermitRootLogin yes
修改完成以后,需要重启服务。重启之后就可以用远程软件通过ssh协议连上服务器了。
systemctl restart sshd
3.3 更新系统档案库
由于安装时候已经修改了档案库源,就可以直接更新库。如果没有修改可以修改源文件。
vi /etc/apt/sources.list
把其中的http://cn.achrive.ubuntu.com/ubuntu 替换成 http://mirrors.aliyun.com/ubuntu/ 皆可。然后检查(update)并更新(upgrade)库。
apt update
apt upgrade
完成后,会要求重启一些服务。
3.4 修改时区
由于安装时没有任何选择时区的机会,所以安装后,基本时区都是格林威治时间UTC,可以使用日期命令查看。
date
修改的话,只要运行如下命令选择即可。
tzselect
最后修改/etc/localtime文件即可。
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4 开始安装OpenVPN接入服务器
该部分可以参考https://openvpn.net/vpn-software-packages/ubuntu/ ,第一部分修改时区已经写在3.4中。该网站国内不能通过正常方法访问,请自行寻找访问方式。
4.1 安装OpenVPN接入服务器
4.1.1 方法1,通过库来安装
通过console或者SSH访问系统,添加OpenVPN接入服务器软件库到我们的操作系统中,然后安装需要的软件,这是一种推荐做法,但根据添加的软件库的地址可以发现,该地址如同上面参考网址一样,国内是无法正常访问的,所以利用这种方法国内几乎不能成功。配置脚本列在下面:
apt update&& apt -y install ca-certificates wget net-tools gnupg
wget -qO -https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -
echo "debhttp://as-repository.openvpn.net/as/debian focalmain">/etc/apt/sources.list.d/openvpn-as-repo.list
apt update&& apt -y install openvpn-as
注意:这些步骤适用于一个全新的安装并且进行过软件升级。
执行过这些步骤后,这个接入服务器会被安装完成并等待配置。
4.1.2 方法2,手动下载安装包(国内推荐)
如上所说,由于软件库网址国内不能访问,可以采用把相关软件单独下载下来进行安装,下载地址https://openvpn.net/downloads/openvpn-as-latest-ubuntu20.amd_64.deb https://openvpn.net/downloads/openvpn-as-bundled-clients-latest.deb 一个是服务器的,一个是客户端的,不过仍然是需要通过一些方式来下载此文件的。软件一直在维护中,所以可以通过最开始的链接文档进行访问。手动安装的脚本如下:
apt update
apt install -ybridge-utils dmidecode iptables iproute2 libc6 libffi7 libgcc-s1 liblz4-1liblzo2-2 libmariadb3 libpcap0.8 libssl1.1 libstdc++6 libsasl2-2 libsqlite3-0net-tools python3-pkg-resources python3-migrate python3-sqlalchemypython3-mysqldb python3-ldap3 sqlite3 zlib1g
dpkg -iopenvpn-as-bundled-clients-25.deb openvpn-as_2.10.3-c47a813c-Ubuntu20_amd64.deb
小提示,如同背景里所说的,一开始我是安装的最新的22.04版,但在安装到这步时,提示libssl1.1不能被发现,不能安装,寻找了很多资料说22.04开始使用libssl3的版本了,所以手动安装了libssl3,但继续运行这个脚本时,会提示这个OpenVPN-as的版本没有识别到libssl1,所以这就证明这个接入服务器的安装时不支持最新版的Ubuntu的。也许在你看到的时候,接入服务器也推出最新支持22.04的版本了。
4.2 如何登录接入服务器和概况
在4.1以后,接入服务器已经完成安装,本段是后期配置步骤。
4.2.1 接入服务器的网页
如上图,在安装完成以后,最后列出了接入服务器的Web访问地址,上面是管理地址,下面这个是客户端访问地址。并且告知了管理员账号“openvpn”和一个临时的密码。
4.2.2 管理界面的访问和概述
管理界面一般是用户界面后面加一个admin,用Chrom浏览器打开该页面会出现如下提示(出现该提示的原因时由于加密页面的证书并不是一个购买或者被国际认证过的证书,所以会有提示):
点高级后会出现下面红框,选择继续即可出现登录界面,输入openvpn和临时密码登录,然后会出现协议信息,点同意即可进入管理界面。
进入以后,你将会看到如下界面:
在这个界面可以管理配置,证书,用户和其他管理员可以操作的内容。在管理复杂VPN功能时,基于Web的图形化管理提供了比基于Linux命令符和脚本更为简单的管理界面。下面这个动图简单描述了部分操作。
4.3 管理端界面的详解
该部分将详细介绍管理界面各个分类的详细内容。
4.3.1 STATUS - 现状
4.3.1.1 Status Overview - 状态概述
这页是状态概况,登录成功后的首页。其中包括了VPN服务的状态,版本号,服务器名称,允许多少连接并发,当前有几个用户连接,认证用户方式,允许VPN客户端从哪个网卡或地址接入,VPN客户端连接服务器的协议和端口,OSI层的类型,客户端接入私有网段用的是哪种类型,服务器的内部名称。这些内容大部分都可以在下面重新配置。
4.3.1.2 Current Users - 当前连接用户
该页应该显示是连接上的用户具体信息,包括连接用户名,连接的IP和端口号,VPN服务器分配地址,收发字节数,连接时长,中断连接(Block下面是个按钮可以中断这个连接)。
4.3.1.3 Log Reports - 日志报告
该页详细展示了该接入服务器的日志,日志上部的选项左边是可以选择时间或时间段,右边是显示最开始或者最后日志的条数。另外中间可以下载日志。下方即是日志的所有内容,左起:服务器节点名,用户名,访问开始时间,如果是VPN接入则是接入时间,访问服务类型,访问端IP地址,接入服务器为其分配的内部IP地址,访问的协议,访问的内部端口号,输入字节数,输出字节数,错误描述。
4.3.2 CONFIGURATION - 配置
4.3.2.1 Activation - 激活管理
激活管理就是这个OpenVPN接入服务器是免费的,但只提供两个并发连入用户。如果想要更多的并发用户,就需要购买了,购买好了以后就可以把购买的Key复制进去点激活即可。下面还有离线激活,是提供给这个接入服务器不能连接internet或者不能访问openvpn的网站使用的。
4.3.2.2 Cluster - 集群模式
接入服务器集群就是定义一台或者多台节点,共享相同的MySQL数据库并协同工作,以便VPN客户端可以使用相同的凭据并连接到任何可用节点,而无需为每个节点进行特定配置(即一个配置文件适用于同一集群中的所有节点)。三个选项分别是不使用集群,建立一个新集群,加入一个存在的集群。
4.3.2.3 TLS Setting - TLS设置
这里是配置OpenVPN协议的SSL/TLS选项,主要目的是保证客户端连接是加密的。黄色部分是提醒,需要使用2.3.7版本之后的客户端软件连接,否则是不支持的TLS的。另外浅蓝色部分是告知,如果是新的操作系统上安装了接入服务器,那么系统不允许旧版本的TLS,建议使用1.2即缺省配置。上面的选项是客户端连接OpenVPN服务器的,下面是访问接入服务器Web界面的加密协议。都选择缺省即可。没什么实质内容,就不符图了。
4.3.2.4 Network Settings - 服务器网络设置
这个是接入服务器设置的重点,包括三个方面:VPN服务器;管理员Web服务器;客户端Web服务器。注意点:在这里的配置修改后会导致现有的客户端不能访问,需要重新下载配置再访问。
VPN服务器:主机名或者IP地址,这里应该是公网的域名或者IP地址;接口和IP地址,这里有可能是多个网卡,选择侦听哪个接口,或者哪个IP地址;选择访问的协议,默认是两种协议都选择模式,但我在防火墙开端口时出现问题,不确定是不是我防火墙没有设置好导致,所以我就选择了常用的UDP模式;最后一个是服务器对接的端口号,默认是1194,为了防止端口扫描,我设置了一个比较大的随机端口号。
管理员Web服务器:接入服务器的Web管理端配置,这里都选默认即可,如果你有多个网卡或IP地址,那么可以设置与VPN连接的网卡不一样,端口默认是943,也可以修改。
客户端Web服务器:设置可以和管理员访问的相同。
4.3.2.5 VPN Settings - VPN设置
VPN设置也是关键性设置。这部分包括VPN的IP网络,路由,DNS设置,DNS解析区域,缺省的域后缀。
VPN的IP网络:主要是指定为VPN客户端在虚拟网络中创建的地址和网络掩码。
Dynamic IP Address Network 动态获得IP地址
当一个用户未在“用户权限”页面上特别设定VPN的IP地址时,将会为该用户连上的客户端分配一个来自以下网段的IP地址。这个类似DHCP的功能。
Static IP Address Network 指定静态IP地址
在“用户权限”页面上为特定用户指定的任何静态VPN IP地址都必须位于以下网络内。
Group Default IP Address Network 为组设定IP地址
当组没有特定的动态 IP 地址池设置时,将从以下子网列表中分配组的动态 IP 地址池。
路由设置:
VPN接入的客户端是否能访问私有网段(服务器端这边的非广域网络)?选项有不能(即只能通过VPN网络访问服务器端这边的Internet,或者什么都不能访问,如果是这样真不知道为啥搭建这个服务器);可以通过NAT方式访问;可以通过路由方式访问。一般选通过NAT访问。
指定所有连接的客户端能够访问的私有网段(每行一个)。就是如果上面选项选了yes,那么就允许客户端访问服务器端这边的私有网络,这里是允许访问的网段,一行代表一个允许的网段。
是否允许客户端能够通过VPN线路访问Internet?这个选项对于那些科学上网的人特别重要,懂得都懂。
是否允许客户端访问VPN网关IP地址上的网络服务?可能是能访问VPN服务器所在这个网关上的一些网络服务。但能有什么服务我也不知道。
DNS设置:推送DNS服务器给客户端是可选的,除非客户端的Internet流量是通过VPN路由的。
不用更改客户端上的DNS服务器设置;
给客户端设置与接入服务器相同的DNS服务器;公司里有DNS服务器需要解析内部设备时是需要设置这个地方为yes的。
给客户端设置指定的DNS服务器;该设置是和第二天相斥的。
DNS解析区域(可选):
对于仅路由私用流量(而不是 Internet 流量)的拆分隧道,请指定客户端将通过接入服务器推送的 DNS 服务器解析的内部域输入下面列表,多个用逗号隔开。请注意,某些客户端(如 Windows)可能只遵循给定的第一个域。这个一般在公司里比较使用,公司的DNS服务器会解析多个内部域名,这里就放希望解析的域名,有些不希望通过这个DNS解析的域名不用列在这里。如果没有特别要求,就不用列出来。
缺省DNS后缀(可选):
在此处设置默认后缀将使 Windows 客户端能够将主机名解析为 FQDN 名称。如果您的组织使用 Windows 域或 Active Directory,这尤其有用。此处只能定义一个默认后缀。
4.3.2.6 Advanced VPN - VPN高级设置
Inter-Client Communication 客户端之间的通信
每个连到VPN网络里的客户端是否可以相互通信?
是否允许管理员权限的VPN用户能访问所有接入的VPN客户端?
Multiple Sessions per User 每个用户允许多个连接进程
允许同一个用户可以建立多个并发VPN连接(当为用户配置了静态的VPN IP地址时则自动禁用)
Default Compression Settings (discouraged) 缺省压缩设置(不鼓励)
默认情况下在客户端 VPN 连接上是启用压缩的。但现在不鼓励启用该设置,因为使用加密进行压缩现在并不安全的。它有可能会引起VORACLE等类似攻击。有关详细信息,可以参阅 OpenVPN 访问服务器文档站点。原来配置压缩时我都会默认选上,但现在应该是出现了不安全的情况,建议不开启。
TLS Control Channel Security 控制通道安全
为 VPN 隧道实现额外的安全层。“tls-auth”选项实现用于对控制通道数据包进行签名和验证的预共享密钥。“tls-crypt”选项实现用于对控制通道数据包进行签名、验证和加密的预共享密钥。建议使用tls-crypt,但一些较旧的系统可能只与tls-auth兼容,甚至可能根本不支持这一点。请注意,更改此选项会影响所有客户端,这意味着您必须使用新的配置文件重新预配 VPN 客户端。访问服务器还支持 tls-cryptv2,它支持较新客户端的每个客户端密钥。使用 tls-auth 和 tls-crypt,Access Server 将在混合模式下运行,该模式同时接受 tls-cryptv2 和 tls-auth/tls-crypt。使用 tls-cryptv2 选项,访问服务器将仅允许 tls 加密 v2 客户端。此处建议选默认值。
Data channel ciphers 数据通道密码算法
数据通道密码算法能加密网络数据包。
冒号分隔列表的内容里包含了允许的数据通道密码算法,优先级是递减。OpenVPN接入服务器会选择这个列表中客户端支持的的第一个密码算法。建议这个列表应该总是包括至少AES-128-GCM或者AES-256-GCM,以避免兼容性的问题。
有效的密码算法包括AES-256-GCM, AES-128-GCM, Chacha20-Poly1305,
AES-128-CBC, AES-256-CBC和BF-CBC(已弃用)。AEAD密码算法(AES-GCM和Chacha20-Poly1305)相对于速度和安全性来说是首选的比较时髦的密码算法。
原来手动配置密码算法的时候,最早都用的是AES-128-CBC的,后来变到256,应该是加密位数更高了。Chacha20-Poly的算法原来在其他科学上网的加密算法中见过,速度应该非常不错。建议最前面列上时髦的算法,最后保底保留AES-256-CBC的。后面的例子已经写的很清楚了。
支持旧客户端不支持的密码算法,这仅仅影响带上—enable-small编译的OpenVPN 2.3.x客户端(或更早的版本)。
Windows Networking (Optional) Windows联网设置(可选)
不要改变客户端上Windows网络设置。
不使用客户端上NetBIOS over TCP/IP协议。
启用客户端上NetBIOS over TCP/IP协议并且能使用这些Windows的网络设置。
这三个选项都是互斥的,还不如做成选项。选择最后一个后,下面会出现需要设置WINS服务器之类的Windows网络设置。没有强烈的需求,可以选择第一项即可。
Connection Security Refresh 安全连接刷新时间
出于安全方面的考虑,每个TLS会话都按指定的时间间隔重新协商连接。默认60分钟。
Private Routed Subnets (Optional) 可以路由到专用网络的哪些子网(可选)
专用网络的子网列表(每行一条),这些仅仅是能通过路由而不是NAT方式访问的区域。
Additional OpenVPN Config Directives(Advanced) 附加的OpenVPN配置指令(高级)
你可以指定一些OpenVPN指令添加到客户端或/和服务器的配置文件里,在下面的这两个文本框里输入所需的指令,每行一个。
注:如果某一行以减号开头,则该指令将从配置中删除。星号可用作通配符以匹配 0 个或多个字符。例如,此配置指令删除 'duplicate-cn' 指令:-duplicate-cn
4.3.2.7 Web Server Configuration – Web服务器配置
该页面通常用于配置接入服务器的证书/密匙。
Active Certificate 激活的证书
该部分显示的是已经配置好的Web服务器的证书的信息,这里包括证书新人警告,证书的主题,证书颁发者,证书的DNS名称,证书的SHA256指纹,生效时间,失效时间。
是否想要改变这个Web服务器的证书?
自签名证书或者用户自己提供的证书。
如果选择后者,会要求提供用户验证Web服务器证书的CA证书的串联列表,提供web的证书文件,提供web证书私钥文件。
4.3.2.8 CWS Settings – CWS设置
此页通常用于配置客户端Web服务器的设置。
Configure CWS Access 配置CWS接入
限制客户端Web服务器对服务器管理员的访问。
注意:即使选中这个框也不会阻止用户使用XML-RPC/REST API来访问客户端配置。当然使用下面的选项也可以禁止此功能。
Configure XML-RPC/REST API 配置XML-RPC/REST API
禁用API; 有限的使用API;完全能使用API 。
注意:XML-RPC/REST API必须能使用才能支持常规的客户端功能。另外注意如果修改此设置则必须重启Web服务器。
Customize Client Web Server UI 自定义客户端Web服务器界面
管理提供给客户端Web服务器用户链接的可见内容。
桌面客户端,OpenVPN连接v3(新)Windows客户端,OpenVPN连接v3(新)Mac OS X客户端,OpenVPN连接v2 Windows客户端,OpenVPN连接v2 Mac OS X客户端,Linux客户端。
移动客户端,iOS客户端,Android客户端。
概要配置,服务器锁定,用户锁定,自动登录 (该配置及可以通过开关锁定服务器,锁定登录用户,开启自动登录功能)。以上建议都按默认配置。
4.3.2.9 Failover Settings – 故障转移设置
Redundancy Model 冗余模式
接入服务器支持使用活动/备用故障转移的基于LAN冗余模式。
选择冗余模式类型:
不冗余;LAN模式(基于UCARP的故障转移)。
4.3.2.10 CA Management – CA管理
该页展示了接入服务器上的CA。两个标签页,一个是总览,一个是创建新CA证书。
创建新CA证书时,里面包括创建一个通用名称;选择一个签名算法;最后创建一个CA证书。
4.3.3 USER MANAGEMENT – 用户管理
4.3.3.1 User Permissions – 用户权限
按用户名/组搜索(使用“%”作为通配符)。注,这里有个用户搜索框。
下面列出了所有手动建好的用户,还有利用LDAP之类系统登录过的账号。可以设置管理员权限,自动登录权限,禁止访问权限,删除账号,更多设置。
更多设置里包括:认证方式配置,分配内部IP地址的类型(可以指定静态地址便于后期查看日志),接入控制(选择接入方式,允许访问到的网络,允许访问所有服务器侧的专用网段,允许访问所有其他接入的VPN客户端),配置VPN网关(选择是的话,就是允许客户端侧的网段把连接的客户端作为VPN网关访问),DMZ地址设置(说实话,这么个区域不知道为啥还要设置DMZ区)。
4.3.3.2 User Profiles – 用户配置
此页面显示针对每个用户的用户配置文件。从 AS-2.9版 开始,每个用户可以有多个配置文件。
点击下拉箭头就会显示该用户每一个下载的配置文件的信息和最后使用的时间。
4.3.3.3 Group Permissions – 组权限
组的权限设置内容和用户的基本相同,可以自行建不同类型和需求的组,然后新建用户添加到指定权限的组里即可。内容相仿,截图省略。
4.3.4 AUTHENTICATION – 认证
此部分对于高阶用户认证方面是非常重要的,可以实现多种方式的认证,也是我选择搭建OpenVPN接入服务器的终极目标。
4.3.4.1 Settings – 用户认证设置
使用下面三种(外部)身份验证系统中的一种或者利用“用户权限“页面中进行本地用户配置都是可以用来验证用户凭证的。RADIUS和LDAP是可选的,但需要外部身份验证系统配合才能使用。对于我来说LDAP就是我本次配置的重中之重。
重要说明:自动登录类型的连接配置文件仅使用其证书进行身份验证,因此将绕过基于凭据的身份验证。
Default Authentication System – 默认的验证系统
用户将使用默认身份验证系统进行身份验证,除非已经为组或用户另外进行了配置。灰显的身份验证系统只有在配置并且启用后才能被选为默认身份验证系统。而本地和PAM身份验证系统是始终可用的。
Local User Passwords – 本地用户密码策略
通过本地身份验证系统进行身份验证的用户可以通过客户端Web界面更改自己的密码。还能启用密码强度要求。此功能不适用于通过PAM,RADIUS,LDAP进行身份验证的用户。
允许本地用户修改密码
密码修改时强制使用强密码
External User Registration – 外部用户注册
当用户使用设置为默认的外部身份验证系统的凭据登录时,默认情况下,接入服务器会自动将其添加到“用户权限”标签页中并授予其基本的访问权限。但如果希望控制允许哪些账号在接入服务器上登录,则可以拒绝未在“用户权限”标签页中列出的用户。该选项目的就是看你希望在接入服务器通过用户权限列表里设置还是不在这里设置,而在外部身份验证系统上设置。
拒绝不在缺省列表上的账户接入。
TOTP Muti-Factor Authentication – 基于时间的一次性多因素身份验证
基于时间的一次性密码是一个额外的身份验证因素,启用此设置将要求用户在客户端Web界面上注册一次以进行多重身份验证,并使用生成的MFA代码以及用户凭证进行后续登录。多因素身份验证文档可在网站上找到。这个功能相当好,可以仔细研究一下文档。
启用基于时间的一次性多因素身份验证。
Password Lockout Policy – 密码锁定策略
为了防止暴力破解,访问服务器强制实施密码锁定策略。这将暂时锁定太多身份验证失败的用户账户。密码锁定策略文档可以在网站上找到。
多少次错误以后锁定用户。默认5次
锁定的用户再多少秒之后释放。默认900秒
4.3.4.2 RADIUS Authentication – RADIUS认证
用现有的RADIUS系统来做接入服务器的用户认证,你必须首先配置并启用它。然后RADIUS认证通常需要设置成缺省的认证系统,或者仅仅提供给特殊的组或用户使用。
RADIUS Settings - RADIUS设置
启用RADIUS认证
启用RADIUS账户报告
账户名区分大小写
RADIUS Server – RADIUS服务器
在下面可以设定RADIUS服务器的连接细节。包括主机名或IP地址,共享密码,认证端口,Accounting Port(说实话,这个不知道如何翻译,反正1812和1813就是RADIUS服务器标准对外端口)。
RADIUS Authentication Method – RADIUS验证方法
与RADIUS服务器连接时需要采取以下方法中的一种进行身份验证。包括PAP,CHAP和MS-CHAPv2.
4.3.4.3 LDAP Authentication – LDAP认证
用现有的LDAP系统来做接入服务器的用户认证,你必须首先配置并启用它。然后LDAP认证通常需要设置成缺省的认证系统,或者仅仅提供给特殊的组或用户使用。这里是我本次配置最关心的地方,由于我使用Microsoft AD域(属于LDAP的一种)认证,是由于公司整体实施了AD域管理,密码认证准备全部使用AD作为统一的身份验证平台,用户将不用使用其他密码。
LDAP Settings – LDAP设置
启用LDAP认证
与LDAP服务器连接使用SSL(AD域好像不支持)
账户名区分大小写(AD域不区分大小写)
重新验证连接时自动登录用户。
LDAP Server – LDAP服务器设置
在下面可以指定LDAP服务器连接细节。首选服务器,备选服务器,此处IP地址或内部主机名。
初始化绑定的凭据方法:匿名绑定,使用下面的绑定方法绑定。两种方法互斥。选择用下面的绑定方法绑定,下面会有初始化绑定账户和相应密码。这里简单说一下AD域的绑定账户请选择一个能只读你所要验证区域的用户权限才行。
在Bind DN里既可以输入该用户的登录账号,也可以输入登录账号的全路径。
有效用户的区域:这里要相当注意,需要填写一个你登录账号所属的范围,如果登录账号在这个范围外,将不能正常登录,哪怕组在这个范围内,用户在这个范围外也不行。这是我之前反复不能成功的坑。建议因为有后面的筛选机制,所以这里可以写域最大的范围。
用户名属性:AD默认使用sAMAccountName, 用户名属性通常在通用LDAP服务器里使用uid,而对于AD的LDAP服务器使用sAMAccountName。
LDAP筛选器(可选):该处可以填写哪个组的用户可以登录,这个组的AD全路径。此附加要求使用LDAP查询语法,例如,如果只能是属于特定LDAP组的成员,可以使用下面这个过滤器:memberOf=CN=VPNUsers,CN=Users,DC=example,DC=net 这里就是先列出组名VPN Users,memberOf表示属于哪个组,CN不是中国简称,而是LDAP中的单位标识,后面这个Users也是AD里的特定单位,当然你也可以建到一个不同的OU,这个OU名称前面也需要用CN=,最后这两个DC是表示AD建立时的虚拟域名,比如你建了一个虚拟域名为xyz.local ,那么这两个DC应该写成DC=xyz,DC=local .
4.3.5 TOOLS – 工具
4.3.5.1 Configuration Profiles – 描述文件配置
配置描述文件用于在访问服务器的不同设置集之间进行选择。你可以在正在运行的服务器使用另外一个配置文件时编辑一个配置文件(因此当前用户不会受到正在进行的编辑更改的影响)。
激活描述文件
活动描述文件的设置由正在运行的接入服务器使用。
选择一个描述文件进行编辑
编辑描述文件就是你在此Web界面上编辑设置的描述文件。
创建一个新的配置描述文件
将现有描述文件复制成一个新的描述文件。
删除一个描述文件
注:不能删除当前活动的描述文件或者当前编辑的描述文件(必须先选择其他描述文件)。
4.3.5.2 DB Convert – 数据库转换
此页用于将接入服务器的sqlite数据库转换为MySQL数据库。
信息:接入服务器检测到当前正在使用默认的sqlite后端。
某些接入服务器功能,如创建新的接入服务器群集或使用 RDS,需要 MySQL 或与 MySQL 兼容的数据库后端。此工具将您现有的 sqlite 数据库转换为 MySQL。MySQL服务器可以驻留在本地,也可以驻留在远程计算机上。无论哪种方式,请确保首先安装好MySQL服务器。
配置内容包括,MySQL所在的主机名或IP地址,MySQL访问端口,访问MySQL的用户名和密码。
注意:按了“转换数据库”的按钮将覆盖此MySQL服务器上存在的任何现有接入服务器的数据库内容。
4.3.6 DOCUMENTATION – 文档
点击DOCUMENTATION自动链接到了openvpn的官方网站文档库 https://openvpn.net/static-links/documentation 该网站国内直接不能访问。
4.3.7 SUPPORT – 支持
点击SUPPORT自动链接到openvpn的官方技术支持中心。
该网站的左边导航栏的最后是Logout,登出按钮,当管理退出时,可以点击此处。
4.4 客户端界面
客户端的网站如果没有在4.3.2.4里特殊设置的话,那就是管理端网站后面把admin去掉即可。使用符合要求的账户登录即可。登录以后只有一个界面,
包括OpenVPN连接推荐在你的设备上使用链接;OpenVPN所有平台的支持的链接(平台包括Windows,Mac OS,Linux,Android,iOS),OpenVPN连接程序v3(包括Windows和Mac OS)。
可用的连接描述文件:你的描述文件,点击就可以下载一个结尾为ovpn的文件。该文件其实就是一个文本文件,里面是该用户连接服务器的描述文件,原本此文件都是手动建立,这里自动建立会包括证书等一堆配置设置。
描述文件管理:点击开以后,这里可以创建一个新的描述文件,可以设置指定的通用名;也可以删除之前的描述文件,这样以后该用户就不能使用此描述文件登录了。
最后就是登出按钮。