OpenVPN 的基本特性
使用OpenVPN ,我们可以实现以下功能
- 对于任何IP 子网或者虚拟以太网通过一个UDP 或者 TCP 端口建立隧道。
- 架构一个可扩展的、负载均衡的虚拟专用网络集群系统,同时支持上千用户的连接。
- 使用任意加密算法、密钥长度或者HMAC摘要。这些功能是使用OpenSSL库来实现的。
- 可以选择最简单的静态密码和传统加密算法或者基于证书的公钥私钥加密算法。
- 对数据流进行实时压缩。
- 支持对端节点通过动态方法获取IP地址,例如DHCP等。
- 对于面向连接的有状态防火墙,不需要使用特殊的设置。
- 支持网络地址转换。
- 在WIndows 或者 mac OS 上面提供GUI 工具。
搭建点到点的虚拟专用网络
Open VPN 点到点(Peer- to - Peer)的虚拟专用网络的物理架构
操作步骤如下:
1) 这个是两台服务器同时操作的步骤
## 首先在 /usr/local 下面先建立 一个文件夹
# 下载epel 的扩展仓库
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
## 安装rpm包
rpm -ivh epel-release-latest-6.noarch.rpm
## 安装openvpn 需要的依赖库(lzo 库 用于压缩;openssl 用于支持加密和证书认证)
yum - y install lzo lzo-devel openssl openssl-devel
## 安装openvpn
yun -y install
2 )在第一台服务器(x.y.z.100)上面生成静态密钥
openvpn --genkey --secret key
会在当前文件下生成一个key
3) 使用scp 把key 文件传输到对端的 xx.yy.zz.100 服务器
scp /usr/local/openvpn/key root@xx.yy.zz.100:/usr/local/openvpn/key
### 需要输入对端服务器的密码
- 创建隧道
在 x.y.z.100 服务器上执行
openvpn --remote xx.yy.zz.100 --dev tun0 --ifconfig 10.6.0.1 10.6.0.2 --secret key --daemon
在 xx.yy.zz.100 服务器上执行
openvpn --remote x.y.z.100 --dev tun0 --ifconfig 10.6.0.2 10.6.0.1 --secret key --daemon
–remote : 表示指定的点到点的对端地址
–dev 使用tun设备
–ifconfig 指定虚拟隧道的本端和远端IP 地址
–secret 指定静态密钥的文件
– daemon 指定使用后台驻守进程模式
5) 验证隧道功能
在 x.y.z.100 上执行
ping 10.6.0.2 -c 2
在 xx.yy.zz.100 上使用tcpdump 查看访问
tcpdump -vvv -nnn -i tun0 icmp