Ubuntu 16.04配置OpenVPN Server

vpn

 

翻越中国墙,必须要有个境外的VPN账号,下面就介绍一下Ubuntu 16.04配置OpenVPN的方法,首先要有个牛逼点的境外的机器,这里推荐一个超高性价比的SSD的虚拟主机,vultr公司,这是个美国的公司,世界很多地区有机房,每个月只要5美元,

官方网站:http://www.vultr.com/ ,如果打不开可先访问个在线或者免费的vpn代理,首先要进行注册,然后就可以购买了

登陆后可以看到他的界面,非常简单,操作方便,下图是所支持地区的机房,大部分是美国机房,东京机房比较近

1

下图是所支持的操作系统,基本主流的都包括了

2

然后就是价格,性价比非常高,支持本站发展,请选择20美元购买链接 http://www.vultr.com/

3

购买好虚机后,选择 Ubuntu 16.04 操作系统,本文测试的是用Ubuntu 16.04.1,尽可能的简单介绍一下安装过程,下面开始登陆你的Ubuntu服务器

————–正式开始—————–

步骤1:安装OpenVPN
首先,我们将在服务器上安装OpenVPN。OpenVPN在Ubuntu的默认库是可用的,所以安装起来非常容易。
更新一下服务器并开始安装:

sudo apt-get update
sudo apt-get install openvpn easy-rsa

步骤2:创建CA目录,并进入目录

make-cadir ~/openvpn-ca
cd ~/openvpn-ca

步骤3:配置CA变量

vim ~/openvpn-ca/vars

. . .
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BeiJing"
export KEY_ORG="zhoujianhui.com"
export KEY_EMAIL="zjhiii@163.com"
export KEY_OU="www.zhoujianhui.com"

. . .

export KEY_NAME="server"

 

步骤4:创建证书

cd ~/openvpn-ca
source vars
如果出现如下提示即表示成功
NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/ubuntu/openvpn-ca/keys
./clean-all
./build-ca

一路回车即可

步骤5:创建服务器证书、密钥文件

./build-key-server server

一路回车,输入2个Y

./build-dh
openvpn --genkey --secret keys/ta.key

步骤6:生成客户端证书和密钥

cd ~/openvpn-ca
source vars

显示如下信息

NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys
./build-key client

一路回车,2个Y,client为客户端名称

如需创建带密码的证书,按下面操作
cd ~/openvpn-ca
source vars
./build-key-pass client

步骤7:配置OpenVPN服务

cd ~/openvpn-ca/keys
sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
修改openvpn的配置文件
sudo vim /etc/openvpn/server.conf
tls-auth ta.key 0 # This file is secret(去掉前边的;号)
下面一行增加
key-direction 0
cipher AES-128-CBC(去掉前边的;号)
下面一行增加
auth SHA256
user nobody (去掉前边的;号)
group nogroup (去掉前边的 ;号)
push “redirect-gateway def1 bypass-dhcp” (去掉前边的;号)
push “dhcp-option DNS 208.67.222.222” (去掉前边的;号)
push “dhcp-option DNS 208.67.220.220” (去掉前边的 ;号)
————————————————-
默认的是udp 端口1194
可选
port 443
proto tcp
这里的server是 ./build-key-server 创建的
cert server.crt key server.key

————————————————-

步骤8:调整服务器网络配置

sudo vim /etc/sysctl.conf

net.ipv4.ip_forward=1 (去掉前边的 # 号)

sudo sysctl -p

调整UFW规则

ip route | grep default

显示:default via 192.168.X.X dev eth0 onlink

sudo vim /etc/ufw/before.rules
顶部添加一段
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don’t delete these required lines, otherwise there will be errors

*filter
sudo vim/etc/default/ufw

DEFAULT_FORWARD_POLICY=”ACCEPT”

开启OpenVPN端口

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH

sudo ufw disable
sudo ufw enable

步骤9:启动OpenVPN服务

sudo systemctl start openvpn@server
sudo systemctl status openvpn@server
检查OpenVPN  tun0接口
ip addr show tun0

提示信息:

3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
服务加入自启动
sudo systemctl enable openvpn@server

 

步骤10:创建客户端配一键生成脚本

mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files

创建基本配置

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
sudo vim ~/client-configs/base.conf
remote 192.168.16.110 1194 (服务器的IP)
proto udp
user nobody (去掉前边 ; 号) group nogroup (去掉前边 ; 号)
ca ca.crt (前边加 # 号)
cert client.crt (前边加 # 号)
key client.key (前边加 # 号)
cipher AES-128-CBC
auth SHA256
key-direction 1 (添加一行)
创建客户端生成脚本
sudo vim ~/client-configs/make_config.sh

 

内容为:

#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-auth>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-auth>') \
>${OUTPUT_DIR}/${1}.ovpn
sudo chmod 700 ~/client-configs/make_config.sh
sudo chown ubuntu.ubuntu make_config.sh
生成客户端脚本,先第六步执行创建客户端脚本
cd ~/client-configs
./make_config.sh client

client为第六步创建的用户

cd ~/client-configs
./make_config.sh client
如果顺利的话可以看见 client.ovpn的配置文件
ls ~/client-configs/files
将配置文件下载到本地
———————————————–
Note:新建用户步骤
cd ~/openvpn-ca
source vars
./build-key username

一路回车。2个Y,username为新建的用户名称

cd ~/client-configs
./make_config.sh username

下载证书

————————————————

 步骤11:证书注销
cd ~/openvpn-ca
source vars
./revoke-full username
 username为注销的用户名
sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
sudo vim /etc/openvpn/server.conf

增加一行,首次注销添加一次即可

crl-verify crl.pem

重启服务

sudo systemctl restart openvpn@server
设置证书过期时间,修改相关参数即可,默认10年
sudo vim /home/ubuntu/openvpn-ca/vars

步骤12:客户端拨OpenVPN

1、CentOS6.x

yum install epel-release -y
yum install openvpn -y

修改配置文件:

user root
group root

拨号方法

openvpn --config /etc/openvpn/zhoujianhui.ovpn > /dev/null &

将上面一句加入到:/etc/rc.local

2、Windows

将配置文件拷贝到安装目录config下

 

3、Mac OS

Safari 浏览 https://tunnelblick.net/downloads.html

 

待续。。。

打赏

Share This!

在线客服
我们将24小时内回复。
2024-04-24 16:34:48
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
取消

选择聊天工具: