Ubuntu搭建openvpn服务器

2024-03-03 16:30

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

文章目录

      • 一、基于ubuntu搭建openvpn服务器
      • 二、制作相关证书
        • 2.1 制作ca证书
        • 2.2 制作Server端证书
        • 2.3 制作Client端证书
      • 三、配置服务器
        • 3.1 配置Server端
        • 3.2. 配置Client端
      • 四、安装openvpn客户端

一、基于ubuntu搭建openvpn服务器

  1. 确保网络连通,使用ifconfig查看本机ip以及ping通外网(将虚拟机网络设置为NAT模式)
  • 找不到命令
    在这里插入图片描述
  • 网络可用
    在这里插入图片描述
  1. 安装openvpn
// 安装openvpn
machine:~$ sudo apt-get -y install openvpn libssl-dev openssl
//查看openvpn版本
machine:~$ sudo apt-get -y install openvpn libssl-dev openssl
//查看安装时产生的文件
machine:~$ dpkg --list openvpn
machine:~$ dpkg -L  openvpn | more

在这里插入图片描述
3. 安装easy-rsa,用来生成证书

sudo apt-get -y install easy-rsa

在这里插入图片描述

二、制作相关证书

  1. /etc/openvpn/目录下创建easy-rsa文件夹
sudo mkdir /etc/openvpn/easy-rsa/ cd /etc/openvpn/easy-rsa/

在这里插入图片描述
2. 把/usr/share/easy-rsa/目录下的所有文件全部复制到/etc/openvpn/easy-rsa/下

  • 这一步是为了后续的管理证书的方便,所以把easy-rsa放在了openvpn的启动目录下
sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

在这里插入图片描述

  • 由于我们现在使用的是ubuntu系统,所以我们必须切换到root用户下才能制作相关证书,否则easy-rsa会报错。如果是centos系统,则不存在此问题
  • 制作CA证书之前,我们还需要编辑vars文件,按自己实际修改:
    在这里插入图片描述
  • 使用source vars命令使其生效(在这之前先sudo su切换管理员权限)
    在这里插入图片描述
2.1 制作ca证书

./build-ca

  • 报错,因为我安装的easy-rsa版本关系,可以创建一个软链接:
    在这里插入图片描述
    在这里插入图片描述
  • 然后一路回车即可,查看keys目录可见生成的证书文件ca.crt
    在这里插入图片描述
  • 把该CA证书的ca.crt文件复制到openvpn的启动目录/etc/openvpn下
cp keys/ca.crt /etc/openvpn/
ll /etc/openvpn/

在这里插入图片描述

2.2 制作Server端证书
// 制作server端证书,也是一路回车确认
//pao: 前面vars文件中设置的KEY_NAME
./build-key-server pao

在这里插入图片描述

// 为服务器生成加密交换时的Diffie-Hellman文件
./build-dh

在这里插入图片描述

  • 查看keys文件夹,可以看到生成了三个证书文件,其中pao.crtpao.key是我们要使用的
    在这里插入图片描述
  • 把pao.crt、pao.key、dh2048.pem复制到/etc/openvpn/目录下
cp keys/pao.crt keys/pao.key keys/dh2048.pem /etc/openvpn/
2.3 制作Client端证书
//paoclient: 客户端的名称。这个是可以进行自定义
./build-key paoclient
//其中paoclient.crt和paoclient.key是我们需要的
  • 这里客户端名称不要和pao重复,否则会报错,因为keys文件夹中已经有pao命名的证书,会冲突
    在这里插入图片描述

三、配置服务器

3.1 配置Server端
  • Server端的配置文件,我们可以从openvpn自带的模版中进行复制
root@.../easy-rsa# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
root@.../easy-rsa# cd /etc/openvpn/
root@.../easy-rsa# ll// 解压server.conf.gz文件后,然后删除原文件
gzip -d server.conf.gz

在这里插入图片描述

  • 修改server.conf文件
    因为server.conf和证书文件都放在/etc/openvpn路径下,不需要绝对路径,如果server.conf文件不在同一目录,则路径要更改为:ca /etc/openvpn/ca.crt
    在这里插入图片描述
    :
    在这里插入图片描述
  • 启动openvpn服务
/etc/init.d/openvpn start
netstat -tunlp |grep 1194

在这里插入图片描述
注意:可能会出现启动服务后,查看1194端口却发现服务未运行的状态,可以试试关闭防火墙

sudo systemctl stop ufw.service
sudo systemctl disable ufw.service
//查看防火墙状态
sudo ufw status
状态:不活动
3.2. 配置Client端
  1. 实现虚拟和window文件共享
  • 之前可能安装VMtool有问题,没办法把文件从window直接拖入虚拟机
//创建共享文件夹目录 
cd /mnt/hgfs/
mkdir -p Vm_share
//挂载共享文件夹
/usr/bin/vmhgfs-fuse .host:/Vm_share /mnt/hgfs/Vm_share -o subtype=vmhgfs-fuse,allow_other
//检查是否设置成功
cd /mnt/hgfs/Vm_share//进入共享文件夹
ls //查看当前文件夹中的文件是否为主机上的文件

在这里插入图片描述
2. 无论是在Windows OS还是在Linux OS上Client端的配置,我们都需要把Client证书、CA证书以及Client配置文件下载下来
(这里因为之前虚拟机出错了,所以前面的步骤我重新做了一遍,server端证书更改为ca.crt 、merine.crt 、merine.key; 以下pao开头的证书为2.3生成的client端证书)
在这里插入图片描述

  • 先把这几个文件复制到/home/hxm/目录(家目录)下,然后再把openvpn客户端的配置文件模版也复制到/home/hxm/目录下
cp ca.crt pao.key pao.crt /home/hxm/
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home/hxm/
  • 修改以上几个文件的用户属性
chown hxm:hxm pao.*
chown hxm:hxm ca.crt

在这里插入图片描述

  • 然后我们可以使用共享文件夹把这几个文件放到window本机
    在这里插入图片描述
  1. 把client.conf文件重命名为client.ovpn,然后进行编辑
client
dev tun
//使用tcp协议,与server端保持一致
proto tcp
//这是我部署openvpn服务的server地址(虚拟机 ifconfig)
remote 192.168.67.128 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
//clicent证书也要修改为自己的
cert pao.crt
key pao.key
ns-cert-type server
comp-lzo
verb 3

四、安装openvpn客户端

  • http://build.openvpn.net/downloads/releases/
    这里我打不开地址,所以直接百度一个下载了,可以使用openvpn --version查看openvpn版本
    注意:下载的客户端版本号一定要与服务器端openvpn的版本一直,否则可能会出现无法连接服务器的现象
  1. 双击桌面OpenVPNGUI快捷方式运行openvpn客户端程序
    记得确保server端的openvpn服务正在运行
    window在窗口右下角找到openvpn窗口进行登录,当openvpn图标变成绿色,说明连接成功!可以右键查看连接状态、配置文件、日志信息
    在这里插入图片描述

在这里插入图片描述

  • 可以在本机下查看,已经连接到Server端,获得的IP地址为10.8.0.6
    在这里插入图片描述
  • 参考:
    这个博主的配置相对比较好,适合学习,不过缺少密码验证和tls验证,以及其他的一些加密方式,在以后可以继续了解
    烂泥:ubuntu 14.04搭建OpenVPN服务器
    OPENVPN 配置方法

这篇关于Ubuntu搭建openvpn服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

使用Nginx配置文件服务器方式

《使用Nginx配置文件服务器方式》:本文主要介绍使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 为什么选择 Nginx 作为文件服务器?2. 环境准备3. 配置 Nginx 文件服务器4. 将文件放入服务器目录5. 启动 N