OpenVPN构建应用

2024-02-18 16:20
文章标签 构建 应用 openvpn

本文主要是介绍OpenVPN构建应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenVPN是一个开源的应用程序,它允许您通过公共互联网创建一个安全的专用网络。OpenVPN实现一个虚拟专用网(VPN)来创建一个安全连接。OpenVPN使用OpenSSL库提供加密,它提供了几种身份验证机制,如基于证书的、预共享密钥和用户名/密码身份验证。

在本教程中,我们将向您展示如何在CentOS 7.4服务器上逐步安装和配置OpenVPN。

实现基于用户名和密码的OpenVPN认证

OpenVpn服务端构建

关闭selinux


安装epel仓库和openvpn, Easy-RSA工具


配置EASY-RSA 3.0

在/etc/openvpn文件夹下面创建easy-rsa文件夹,并把相关文件复制进去


创建OpenVPN相关的密钥

我们将创建CA密钥,server端、client端密钥,DH和CRL PEM, TLS认证钥匙ta.key。


初始化并建立CA证书

创建服务端和客户端密钥之前,需要初始化PKI目录
 



创建服务器密钥

创建服务器密钥名称为 server1.key


添加nopass 选项,是指不需要为密钥添加密码



用CA证书签署server1密钥
 



创建客户端密钥

创建客户端密钥名称为 client1.key
 



用CA证书签署client1密钥
 



创建DH密钥

根据在顶部创建的vars配置文件生成2048位的密钥
 



创建TLS认证密钥


生成 证书撤销列表(CRL)密钥

CRL(证书撤销列表)密钥用于撤销客户端密钥。如果服务器上有多个客户端证书,希望删除某个密钥,那么只需使用./easyrsa revoke NAME这个命令撤销即可。

生成CRL密钥:
 



复制证书文件

复制ca证书,ta.key和server端证书及密钥到/etc/openvpn/server文件夹里


复制ca证书,ta.key和client端证书及密钥到/etc/openvpn/client文件夹里


复制dh.pem , crl.pem到/etc/openvpn/server文件夹里


修改OpenVPN配置文件

复制模板到主配置文件夹里面
 



注释:修改过后,本人已用sz进行下载
/

OpenVPN 设置账号密码登录(可多用户)

首先我们需要编写一个用户认证的脚本


接下来给脚本执行权限

chmod 755 /etc/openvpn/checkpsw.sh

现在我们配置用户密码文件


开启转发

修改内核模块


修改防火墙


启动服务并开机启动


检查一下服务是否启动
 



OpenVPN 客户端安装

在openvpn服务器端操作,复制一个client.conf模板到/etc/openvpn/client文件夹下面。然后编辑该文件/etc/openvpn/client/client.conf
 



更改client.conf文件名为client.ovpn,然后把/etc/openvpn/client文件夹打包压缩:

 



在windows 10客户机连接测试

链接:百度网盘-链接不存在
提取码:7777

客户机安装openvpn-install-2.4.8-I602-Win10该软件包(百度搜索文件名可找到下载),安装完成之后解压刚才的client.tar.gz压缩包,把里面的文件复制到C:\Program Files\OpenVPN\config(这里的路径是默认安装位置,可自行调整)

我这里的路径为:D:\OpenVPN\config



调整路径方法:如下



需要把client.conf的名字改成client.ovpn,然后点击桌面上的OpenVPN GUI运行



电脑右下角有一个小电脑



右键点击连接,输入用户名密码,连接成功之后小电脑变成绿色。



注意事项

做实验时在测试环境做的。如果在真实环境操作,请在出口防火墙添加端口映射,开放openvpn的端口1194 tcp和udp协议的。

这篇关于OpenVPN构建应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721740

相关文章

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex