OpenVPN的简单介绍


放两个链接
– vpn的介绍 –
– openvpn官网 –
– openvpn下载页面 –


关于协议

OpenVPN是一免费开源软件
以路由器或桥接配置和远程访问设备方式实现虚拟专用网络(VPN)
创建安全的点对点或站对站连接的解决方案。
它使用SSL/TLS安全加密,具有穿越网络地址转换(NATs)和防火墙的功能

服务端

下载源码包

# 下载lzo源码包, openvpn依赖
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz

# 下载openvpn源码包
# 下边是个版本的下载列表
wget http://build.openvpn.net/downloads/releases/

编译安装

# 编译lzo
tar xf lzo-2.10.tar.gz
cd lzo-2.10
./configure && make && make install 

# 编译openvpn
tar xf openvpn-2.1-rc4.tar.gz
cd openvpn-2.1-rc4
./configure && make && make install

部署

目录

mkdir /home/op/openvpn/
cp -r openvpn-2.1-rc4/easy-rsa/2.0/ /home/op/openvpn/bin
cd /home/op/openvpn/bin

修改配置文件

# 先备份vars
cp vars vars.bak

# 文件内容
export EASY_RSA="`pwd`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
export KEY_DIR="/home/op/openvpn/keys"
# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export KEY_SIZE=1024
# In how many days should the root CA key expire?
export CA_EXPIRE=3650
# In how many days should certificates expire?
export KEY_EXPIRE=3650
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BJ"
export KEY_ORG="master"
export KEY_EMAIL=" " # [管理员邮箱]

# 生成环境
source vars

生成证书和其他所需文件

# 清空key, 此命令回清除生成的所有证书密钥
./clean-all

# 生成服务端的ca证书 
./build-ca # 一路回车, 有y输y

# 生成服务端配置文件
./build-key-server server # 一路回车, 有y输y

# load 环境
source vars

# 生成Diffie Hellman参数
./build-dh

# 创建配置文件及配置文件目录
mkdir /home/op/openvpn/conf
vim /home/op/openvpn/conf/server.conf

# 文件内容
local [提供服务的IP] # 监听地址, 可以是公网, 也可以是内网
port 5194 # 开放端口
proto tcp
dev tun

ca /home/op/openvpn/keys/ca.crt
cert /home/op/openvpn/keys/server.crt
key /home/op/openvpn/keys/server.key
dh /home/op/openvpn/keys/dh1024.pem

client-to-client
server 10.10.10.0 255.255.255.0 # 内网转进来之后的网段, 和iptalbe的设置有关
ifconfig-pool-persist ipp.txt

status /home/op/openvpn/log/openvpn-status.log
log         /home/op/openvpn/log/openvpn.log
log-append  /home/op/openvpn/log/openvpn.log

# push "route 172.1.1.0 255.255.255.0"

keepalive 10 120

verb 3
# crl-verify /home/op/openvpn/keys/crl.pem

开启路由转发

# 修改/etc/sysctl.conf
net.ipv4.ip_forward = 1

# 执行生效
sysctl -p

配置iptables

# iptables -t nat -A POSTROUTING -s [转换后网段/掩码位数] -o [网口名] -j SNAT --to [公网ip]

# 转换后地址: server.conf中 client-to-client 字段下 server 配置
# 网口名: 应用的网卡名称
# 公网ip: 提供服务的公网ip

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o bond0 -j SNAT --to xx.xx.xx.xx

启动服务

/usr/local/sbin/openvpn --config /home/op/openvpn/conf/server.conf --daemon

openvpn设置固定ip

  • 修改sever.conf
client-config-dir [/home/op/openvpn/ccd]
  • 配置固定ip
# 在目录下创建文件, 文件名对应登录名
cd /home/op/openvpn/ccd/
touch yky1 yky2

# yky1内容
ifconfig-push 11.11.11.1 11.11.11.2

# yky2内容
ifconfig-push 11.11.11.3 11.11.11.4

# ifconfig-push后边跟的是两个连续的ip地址, 客户端使用第一个
# yky1使用11.11.11.1, yky2使用11,11,11,3

用户端

下载

1. windows
	http://openvpn.ustc.edu.cn/openvpn-install-2.3.10-I601-x86_64.exe
2. mac
	tunnelblick 

在服务端生成key文件

cd /home/op/openvpn/bin/
source vars

# 生成证书
./build-key [username]

# 将文件传给使用者
username.key username.crt ca.crt 三个文件

修改客户端配置文件

remote 公网ip
ca ca.crt
cert username.crt
key username.key

猜你喜欢

转载自blog.csdn.net/yang_kaiyue/article/details/82623683