openvpn的搭建与使用

6,691 阅读11分钟

在Linux系统上安装OpenVPN Access Server(ref)

支持操作系统

OpenVPN Access Server可以与任何兼容的Linux操作系统上的安装包文件一起安装。这适用于您已经拥有的服务器或您管理并希望安装Access Server的专用服务器系统的安装。如果要完全控制操作系统的安装和配置方式,并希望在其上运行Access Server,则可以在此页面上找到安装指南。还有其他选项可以安装Access Server,它使用包含合适操作系统和OpenVPN Access Server程序的准备好的映像,随时可以使用。这些适用于Microsoft Windows Server Hyper-V,VMWare ESXi,Amazon AWS和其他系统。我们倾向于为我们准备好的图像使用最新的Ubuntu 64位长期支持版本。 我们主网站上的软件包下载页面。可以在那里选择和下载安装包。

如果发布了较新版本的操作系统,例如在2017年发布Debian 9但是OpenVPN Access Server的安装包尚未立即用于Debian 9时,通常它之前版本的软件包安装文件就可以正常工作了。例如,Debian 8的安装包在Debian 9上运行。当新版本的Access Server发布时,我们更新我们的构建系统以添加专门为新操作系统版本制作的构建,并且我们也停止为操作系统制作安装包文件不再受支持,被视为生命终结。随着时间的推移,操作系统转向更新的版本,我们也将调整我们的安装包。

安装要求和准备

您将需要访问具有根级别访问权限的受支持的Linux操作系统安装。如果这是通过控制台直接或通过SSH会话使用例如像PuTTY这样的工具并不重要,如果您必须首先以非特权用户身份登录并且然后可以“sudo up”到获得root权限; 没关系。在某些操作系统上,可能必须安装一个名为“net-tools”的软件包,因为Access Server当前依赖于ifconfig来运行。例如,CentOS 7和Debian 9就属于这种情况。安装这样的软件包应该像运行以下命令之一一样简单。我们还建议安装wget,如果它尚未安装,因为这会使后面的步骤更容易一些。

在CentOS 7上安装'net-tools'和'wget'软件包:

yum install net-tools wget

在Debian 9上安装'net-tools'和'wget'软件包:

apt-get install net-tools wget

此外,要求服务器上的时间和日期是正确的。生成VPN服务器和客户端证书的过期日期为未来10年,因此它们不太可能很快到期。但它们也是以开始日期生成的,如果该日期是将来因为服务器将来设置了日期,那么证书在该日期之前将无法工作,您将会遇到一些错误。此外,如果您计划使用名为Google Authenticator的多因素系统(使用基于时间的一次性密码生成系统),则必须设置准确的时间和日期。为确保系统上的任何时间漂移或不正确的时间和日期得到自动更正,您可以在服务器上安装网络时间协议(NTP)客户端程序,该程序应自动在您的服务器上持续保持正确的时间。特别是基于云的虚拟机易受时间漂移的影响。对于Google身份验证器,30秒的偏差已经成为一个问题。通常这些程序是预配置的,几乎不需要配置。

在Ubuntu / Debian系统上安装NTP客户端:

apt-get install ntp

要在Red Hat / CentOS系统上安装NTP客户端:

yum install ntp

要更正时区设置:

dpkg-reconfigure tzdata

OpenVPN访问服务器可以完全在无法访问Internet的环境中运行,但这确实使许可证密钥激活更加复杂,因为您必须联系我们进行离线激活过程或自行执行此类过程第二个具有Internet访问权限的Access Server。如果Access Server没有Internet访问权限,它当然显然无法接受来自Internet的客户端的连接。所以重点是最好让Access Server连接到Internet,我们建议在防火墙系统后面执行此操作,只有端口TCP 443,TCP 943和UDP 1194从公共Internet转发到私有地址防火墙后面的Access Server。检查DNS解析是否按预期工作也很重要,因此ping例如www.google.com将导致服务器能够将其解析为IP地址。如果DNS解析无法正常工作,则可能会降低Web界面的速度并阻止许可证密钥激活。

下载并安装包

要安装Access Server,您需要下载Access Server软件包并将其放在目标服务器主机上的某个位置。您可以通过环形路径使用台式计算机从我们的网站下载安装包,然后使用SCP或WinSCP等工具上传它。但更简单的方法是使用wget,这是一种用于直接从Internet检索文件并将其直接保存在要安装OpenVPN Access Server程序的Linux操作系统的文件系统上的工具。

根据您选择的Linux操作系统, 在我们主网站的软件包下载页面上查找安装文件 。选择您使用的操作系统,然后选择特定操作系统的安装包。请注意,有64位版本(x64)和32位版本(x86)。如果您的操作系统是64位,建议安装64位版本,但您也可以安装32位版本(不推荐)。如果您的操作系统只是32位,那么您不能使用64位版本,但必须安装32位版本。

您可以右键单击下载链接,然后选择“复制链接地址”或“复制目标”等。确切的措辞取决于使用的浏览器。目标是在复制/粘贴缓冲区中提供指向安装包的链接。接下来转到要安装OpenVPN Access Server程序的Linux服务器,并使用wget将安装包文件直接下载到服务器。

键入wget,后跟粘贴的URL:

wget <粘贴复制的URL> 例如,对于Ubuntu 16 x64安装包,Access Server 2.1.12:

wget http://swupdate.openvpn.org/as/openvpn-as-2.1.12-Ubuntu16.amd_64.deb

高级用户的可选步骤:如果您更喜欢安全连接,则可以使用https://进行连接,并且可以验证已下载的包文件是否已正确下载,并且实际上是包我们正在分发的文件,而不是某种污点副本。这是非常不可能的,但您仍然可以使用工具sha256sum进行检查,该工具 为下载的文件创建哈希。然后,您可以将其与我们网站上的Access Server安装包sha256sum哈希表进行比较。使用命令行“sha256sum openvpn-as-2.1.12-Ubuntu16.amd_64.deb”生成哈希,并将其与网站上列出的内容进行比较。如果匹配,则可以确定您拥有正确的文件并且已正确下载。

现在安装包文件已下载到您的系统,您可以使用以下命令安装它:

在Debian / Ubuntu系统上安装下载的软件包:

dpkg -i openvpn-as-2.1.12-Ubuntu16.amd_64.deb

在RedHat / CentOS / Fedora系统上安装下载的软件包:

rpm -Uvh openvpn-as-2.1.12-CentOS7.x86_64.rpm

然后应该开始并完成安装过程。输出可能如下所示:

Access Server已成功安装在/ usr / local / 
openvpn_as配置日志文件已写入/usr/local/openvpn_as/init.log
请输入“passwd openvpn”设置初始管理密码,然后登录为“openvpn”
要在此处继续配置:https://192.168.70.222:943 / admin
要手动重新配置,请使用/ usr / local / openvpn_as / bin / ovpn-init工具。
Access Server Web UI可在此处获得:
管理UI:https://192.168.47.222:943 / admin
客户端UI:https://192.168.47.222:943 /

Access Server尝试使自己适应它找到的网络配置。但是,如果您有复杂的网络设置,则可能需要运行ovpn-init工具来重新配置以侦听另一个网络接口。值得一提的是,ovpn-init工具可用于使用-force选项擦除所有OpenVPN Access Server配置,以防您在初始设置期间出错。不要在现有安装上使用-force选项,除非您可以丢失所有配置和证书并希望重新开始。此外,该程序将要求许可证密钥,但您不必输入一个。如果没有找到有效的许可证密钥,它将只假设一个演示模式,其中所有功能都可以工作,但您只能同时使用2个VPN隧道连接。

完成配置和使用产品 安装程序后,它将自动配置一些标准设置。安装过程还会告诉您在哪里可以找到客户端Web服务,这是可用于登录和连接到Access Server的基于Web的GUI,以及在哪里可以找到管理Web服务,您可以在其中进行登录作为管理用户,在基于Web的GUI中管理配置,证书,用户等。通常客户端UI位于服务器的地址,例如https://192.168.70.222/。管理员界面通常位于/ admin /地址,例如https://192.168.70.222/admin/。请注意,默认情况下,Web服务实际上在端口TCP 943上运行,因此您可以访问https://192.168.70.222:943/和https://192.168.70.222:943/。

最初,将一个管理用户添加到系统中。但它没有设置密码,因此无法使用。要使用它,必须先设置密码:

passwd openvpn

您现在可以将Web浏览器指向管理UI Web界面。由于Access Server首先附带自签名SSL证书,因此您将在浏览器中收到“无效证书”或“无法验证服务器身份”的警告。您必须确认您希望继续使用Web界面。然后,您将看到登录屏幕,然后您可以输入用户名 openvpn和您刚刚使用“passwd openvpn”命令设置的密码。

登录管理界面后,您可以选择要使用的身份验证系统。可用选项包括本地,PAM,RADIUS和LDAP。默认值为PAM,这意味着操作系统中必须存在用户帐户才能登录Access Server。您还可以使用其他外部系统(如RADIUS或LDAP服务器),例如使用LDAP或RADIUS连接器连接到Windows Server Active Directory。如果您这样做,我们建议您使用LDAP以获得最佳结果。如果您只管理有限数量的用户并且不希望事情过于复杂,则建议将身份验证系统切换到本地模式。然后,您可以使用Web界面中的“用户权限”屏幕添加/删除用户,并为其设置密码和访问控制规则。命令行工具。我们建议您在选择使用PAM时专门查看命令行身份验证选项文档,以了解如何添加/删除用户和管理密码。

我们网站上的其他地方提供了更多文档,用于配置OpenVPN Access Server的特定功能和配置选项。

未经许可的OpenVPN访问服务器的限制

如果在没有许可证密钥的情况下安装OpenVPN Access Server,它将进入某种演示模式。此模式没有时间限制或功能限制。许可的Access Server和未许可的Access Server之间的唯一区别是Access Server允许的同时OpenVPN隧道连接的数量。未经许可的服务器将只允许2个同时连接,就是这样。要解锁更多连接,您可以购买许可证密钥以解锁更多连接。我们建议您阅读许可常见问题页面和定价概述页面以了解更多信息。

特别注意

开启子网访问权限,在安装完成后的输出中,有管理UI,进入UI-->用户权限管理-->相应配置可以访问的subnet

客户端

ubuntu16安装

sudo apt-get update
sudo apt-get install openvpn 

启动

本地的子网不能和要远端服务的子网相同(如:client: 192.168.1.0/24 remote server: 192.168.1.0/24)

sudo openvpn --config client.ovpn #(client.ovpn 可以从获得 客户端UI:https://192.168.47.222:943 /)

ubuntu16开启路由和NAT

未购买许可证密钥的服务器将只允许2个同时连,所有可以将客户端开启路由和NAT功能,其它没有安装openvpn的客户端把网关设置成此客户端即可

路由

修改/etc/sysctl.conf,取消这一行的注释:
net.ipv4.ip_forward= 1

然后使之立即生效
sysctl -p

NAT

以下写到一个启动脚本中(比如/etc/rc.local):

# iptables -F  
iptables -P INPUT ACCEPT  
iptables -P FORWARD ACCEPT  
iptables -t nat -A POSTROUTING -j MASQUERADE