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 配置方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155609.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5.以docker容器生成镜像推送到私有镜像仓库

1.创建私有仓库 1.1 拉取私有仓库镜像registry docker pull registry1.2 运行私有仓库镜像registry docker run -d -p 5001:5000 -v /data/myregistry/:/tmp/registry --privilegedtrue registry1.3 校验私有仓库registry是否安装成功 curl -XGET http://localhost:5001/v2…

肖sir__linux讲解(2.1)

linux命令 cp 复制命令 a、cp 原文件名称 新文 件名称(不存在的文件) 案例:cp a k 截图: b.cp 原文件名称 原有文 件名称(存在的文件) 案例:cp a b 截图: c、cp 指定路径复制 格式&#xff…

第14届蓝桥杯青少组python试题解析:23年5月省赛

选择题 T1. 执行以下代码&#xff0c;输出结果是&#xff08;&#xff09;。 lst "abc" print(lstlst)abcabc abc lstlst abcabc T2. 执行以下代码&#xff0c;输出的结果是&#xff08;&#xff09;。 age {16,18,17} print(type(sorted(age)))<class set&…

在Windows系统中查找GitBash安装位置

使用注册表可以轻松获取&#xff1a; reg query HKEY_LOCAL_MACHINE\SOFTWARE\GitForWindows /v InstallPath | findStr InstallPath此时输出一串字符&#xff0c; 通过字符串切割即可获取&#xff1a;

【转载】快速搭建OpenGL环境!!!Windows10 + Visual Studio 2019 搭建OpenGL环境

目录 具体链接&#xff1a; 【转自】 完成后效果如下&#xff1a; 一开始的爆红&#xff1a; 下载安装后&#xff1a; 运行成功&#xff1a; 具体链接&#xff1a; 萌新向&#xff01;&#xff01;&#xff01;Windows10 Visual Studio 2019 搭建OpenGL环境&#xff08;…

腾讯云服务器新用户优惠政策,腾讯云新人服务器购买入口

腾讯云服务器新用户优惠政策是腾讯云为新用户提供的一种优惠&#xff0c;它可以帮助新用户以更低的价格购买腾讯云服务器&#xff0c;并且还提供一些额外的优惠。腾讯云服务器对于新用户有着非常优惠的政策。无论你是个人用户还是企业用户&#xff0c;只要你是第一次购买腾讯云…

Android NDK JNI 开发native层崩溃日志栈分析

问题&#xff1a; 在Android的JNI开发中&#xff0c;你是否看到如下一堆崩溃日志&#xff0c;不知如何下手分析问题&#xff0c;崩溃在哪一行&#xff1f; 11-16 17:20:44.844 23077 23077 W test_jni_h: jni_preload: Starting for processln 11-16 17:20:44.844 23077 2307…

NSSCTF第12页(3)

[NSSCTF 2nd]php签到 首先&#xff0c;代码定义了一个名为 waf 的函数&#xff0c;用于执行一个简单的文件扩展名检查来防止上传恶意文件。 $black_list 是一个存储不允许的文件扩展名的数组&#xff0c;如 “ph”、“htaccess” 和 “ini”。 pathinfo($filename, PATHINF…

SSM整合原理和实战

一、SSM整合理解 父工程用pom 我原来没见过&#xff0c;

吉利银河L6顶配 官方OTA升级降低充电速度

互联网是有记忆的 你宣传充电口 卖出去又更新降低速度 属于诈骗 吉利新车上市两个月官降1w,希望大家引以为戒,可以买,但是刚出别着急做韭菜

系列八、JVM的内存结构【方法区】

一、概述 方法区是一个供各线程共享的运行时内存区域。它存储了每一个类的结构信息&#xff0c;例如运行时常量池&#xff08;Runtime Constant Pool&#xff09;、字段和方法数据、构造函数和普通方法的字节码内容。上面讲的是规范&#xff0c;在不同的虚拟机里面实现是不一样…

Mindomo Desktop for Mac(免费思维导图软件)下载

Mindomo Desktop for Mac是一款免费的思维导图软件&#xff0c;适用于Mac电脑用户。它可以帮助你轻松创建、编辑和共享思维导图&#xff0c;让你的思维更加清晰、有条理。 首先&#xff0c;Mindomo Desktop for Mac具有直观易用的界面。它采用了Mac独特的用户界面设计&#xf…

二蛋赠书八期:《Java物联网、人工智能和区块链编程实战》

前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此&#xff0c;我非常感激大家一直…

【JAVA-排列组合】一个套路速解排列组合题

说明 在初遇排列组合题目时&#xff0c;总让人摸不着头脑&#xff0c;但是做多了题目后&#xff0c;发现几乎能用同一个模板做完所有这种类型的题目&#xff0c;大大提高了解题效率。本文简要介绍这种方法。 题目列表 所有题目均从leetcode查找&#xff0c;便于在线验证 46.…

限制Domain Admin登录非域控服务器和用户计算机

限制Domain Admin管理员使用敏感管理员帐户(域或林中管理员组、域管理员组和企业管理员组中的成员帐户)登录到信任度较低的服务器和用户端计算机。 此限制可防止管理员通过登录到信任度较低的计算机来无意中增加凭据被盗的风险。 建议采用的策略 建议使用以下策略限制对信任度…

​软考-高级-系统架构设计师教程(清华第2版)【第10章 软件架构的演化和维护(P345~382)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第10章 软件架构的演化和维护&#xff08;P345~382&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

redis运维(六)redis-cli命令

一 redis-cli 注意&#xff1a; redis-cli核redis-server版本必须适配 --> 见 redis-cli --version提示&#xff1a; 不过一般安装服务端 redis-server 时内置了客户端 redis-cli说明&#xff1a; redis-cli 是 redis 的一种命令行的客户端工具备注&#xff1a; redis-se…

Qt按钮大全续集(QCommandLinkButton和QDialogButtonBox )

## QCommandLinkButton 控件简介 QCommandLinkButton 控件中文名是“命令链接按钮”。QCommandLinkButton 继承QPushButton。CommandLinkButton 控件和 RadioButton 相似,都是用于在互斥选项中选择一项。表面上同平面按钮一样,但是 CommandLinkButton 除带有正常的按钮上的文…

二叉树相关题目

一、概念 二、题目 2.1 把数组转换成二叉树 2.2.1 使用队列方式 public static Node getTreeFromArr2(int[] arr) {if (arr null || arr.length 0) {return null;}LinkedList<Node> quque new LinkedList<>();Node root new Node(arr[0]);quque.add(root);in…

单片机FLASH下载算法的制作

环境 硬件使用正点原子STM32F407探索者V2开发板 编程环境使用MDK 下载工具使用JLINK FLASH芯片使用W25Q128 什么是下载算法 单片机FLASH的下载算法是一个FLM文件&#xff0c;FLM通过编译链接得到&#xff0c;其内部包含一系列对FLASH的操作&#xff0c;包括初始化、擦除、写…