文章目录
- 一、基于ubuntu搭建openvpn服务器
- 二、制作相关证书
- 2.1 制作ca证书
- 2.2 制作Server端证书
- 2.3 制作Client端证书
- 三、配置服务器
- 3.1 配置Server端
- 3.2. 配置Client端
- 四、安装openvpn客户端
一、基于ubuntu搭建openvpn服务器
- 确保网络连通,使用ifconfig查看本机ip以及ping通外网(将虚拟机网络设置为NAT模式)
- 找不到命令
- 网络可用
- 安装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
二、制作相关证书
- 在
/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.crt
和pao.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端
- 实现虚拟和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本机
- 把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的版本一直,否则可能会出现无法连接服务器的现象
- 双击桌面OpenVPNGUI快捷方式运行openvpn客户端程序
记得确保server端的openvpn服务正在运行
window在窗口右下角找到openvpn窗口进行登录,当openvpn图标变成绿色,说明连接成功!可以右键查看连接状态、配置文件、日志信息
- 可以在本机下查看,已经连接到Server端,获得的IP地址为10.8.0.6
- 参考:
这个博主的配置相对比较好,适合学习,不过缺少密码验证和tls验证,以及其他的一些加密方式,在以后可以继续了解
烂泥:ubuntu 14.04搭建OpenVPN服务器
OPENVPN 配置方法