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

相关文章

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署