文章目录
放两个链接
– 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