tools OpenVPN搭建 发表于 2022-01-11 浏览量 511 没有评论 # 简介 典型的 SSL VPN 应用如 OpenVPN,是一个比较好的开源软件。PPTP 主要为那些经常外出移动或家庭办公的用户考虑;而 OpenVPN 主要是针对企业异地两地总分公司之间的VPN不间断按需连接,例如 ERP 在企业中的应用。 OpenVPN 允许参与建立 VPN 的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了 OpenSSL 加密库,以及 SSLv3/TLSv1 协议。OpenVPN 能在 Linux、xBSD、Mac OS X 与 Windows 2000/XP 上运行。它并不是一个基于 Web 的 VPN 软件,也不与 IPsec 及其他 VPN 软件包兼容。 隧道加密 OpenVPN 使用 OpenSSL 库加密数据与控制信息:它使用了 OpesSSL 的加密以及验证功能,意味着,它能够使用任何 OpenSSL 支持的算法。它提供了可选的数据包 HMAC 功能以提高连接的安全性。此外,OpenSSL 的硬件加速也能提高它的性能。 验证 OpenVPN 提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于建立点对点的 VPN; 基于 PKI 的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个 PKI 证书体系。OpenVPN2.0 后引入了用 户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密. 网络 OpenVPN 所有的通信都基于一个单一的 IP 端口,默认且推荐使用 UDP 协议通讯,同时TCP也被支持。OpenVPN 连接能通过大多数的代理服务器,并且能够在 NAT 的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。OpenVPN 提供了两种虚拟网络接口:通用 Tun/Tap 驱动,通过它们,可以建立三层 IP 隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过 LZO 算法压缩。IANA(Internet Assigned Numbers Authority)指定给 OpenVPN 的官方端口为 1194。OpenVPN 2.0 以后版本每个进程可以同时管理数个并发的隧道。 OpenVPN 使用通用网络协议(TCP与UDP)的特点使它成为 IPsec 等协议的理想替代,尤其是在 ISP(Internet service provider)过滤某些特定 VPN 协议的情况下。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择 TCP 协议作为底层协议,UDP 协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。 安全 OpenVPN 与生俱来便具备了许多安全特性:在用户空间运行,无须对内核及网络协议栈作修改; 初始完毕后以 chroot 方式运行,放弃 root 权限; 使用 mlockall 以防止敏感数据交换到磁盘。 OpenVPN 通过 PKCS#11 支持硬件加密标识,如智能卡。 # 搭建 软件包下载地址:https://openvpn.net/index.php/access-server/download-openvpn-as-sw.html(可能被墙,自己想办法下载) - 1、安装软件包 ``` wget http://swupdate.openvpn.org/as/openvpn-as-2.0.10-CentOS7.x86_64.rpm rpm -Uvh openvpn-as-2.0.10-CentOS7.x86_64.rpm # 安装完会显示管理地址以及客户端地址 ``` - 2、修改管理员密码 ``` passwd openvpn ``` - 3、通过管理URL https://yourhostIP:943/admin 登录并启动服务 输入用户名`openvpn`及刚才设置的密码 - 4、修改服务器地址 找到Server Network Settings==>hostname or ip address 写入自己外网的IP地址--save settings - 5、修改认证模式 找到Authentication==>选择PAM认证模式(系统用户) - 6、通过客户端url:https://yourhostIP:943/ 安装客户端(会提供windows,mac安装包) - 7、新增openvpn用户 ``` # 先在server中创建用户 useradd -s /sbin/nologin test passwd test # 再去到管理员的页面配置用户 User Management==>User Permissions ==>New username ,输入刚新建的用户==>save settings ```