Centos下openvpn搭建详解
本章目录:
加密的数据传输:
ssh/加密数据传输代理:
openvpn:
1、openvpn的概述
2、vpn数据包的结构
3、openvpn服务端的部署
5、在windows客户端的部署
博兴实验中学
SSH代理:
ssh -p port -qCNgD 7070 username@ip
-q 静默模式
-C 压缩
-g 转发代理
-D 本地动态的监听端口
-N 不转发从代理客户发过来的命令
客户端配置:
玉女性经firefox
about:config
network.proxy.socks_remote_dns;true
1、openvpn的概述
VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。该软件最早由James Yonan编写。 OpenVPN允许参与建立VPN的单点使用预设的私钥,第三方 证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。 OpenVPN能在Linux、xBSD、Mac OS X与Windows 2000/XP上运行。:www.openvpn
2、vpn数据包的结构
QQ-->
route table
源主机 -->vpn_client-->(sip)softwares(data)(dip)-->route table-->vpn_software-->encrypt-->(new_sip)encrypt_data(new_dip)-->router-->next_router
目标主机: -->vpnserver-->d_encrypt-->根据内层IP包头再次做数据转发
3、openvpn服务端的部署
1)在VPN(192.168.0.1)上安装openvpn软件
软件包组成:pnc
openvpn --实现VPN的服务
lzo --实现数据压缩
1、安装lzo
# cd /root
# tar xf lzo-2.
# cd lzo-2.03
# ./configure && make && make install
2、安装openvpn
# tar xf openvpn-2.0.
# cd openvpn-2.0.9
# ./configure --prefix=/opt/vpn && make && make install
# cp /root/openvpn-2.0.9/sample-scripts/openvpn.init /etc/init.d/openvpn
# vim /etc/init.d/openvpn
openvpn="/opt/vpn/sbin/openvpn" --指定openvpn的存储路径
work=/opt/vpn/etc
# chkconfig --add openvpn
# chkconfig openvpn on
灭菌检测
# cd /root/openvpn-2.0.9/easy-rsa --定义变量
# vim vars
export D=`pwd`
export KEY_CONFIG=$D/opensslf
export KEY_DIR=$D/keys
echo NOTE: when you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export KEY_SIZE=1024
export KEY_COUNTRY=CN
export KEY_PROVINCE=GD
export KEY_CITY=GZ
export KEY_ORG="UPLOOK.Inc"
情报杂志export KEY_EMAIL="*******************"
# source vars --执行vars 文件中的代码让变量生效
# ./clean-all --预先清除$KEY_DIR 目录
创建CA证书(颁发机构)
# cd /root/openvpn-2.0.9/easy-rsa --一直回车即可,此脚本会引用上一步生成的变量
# ./build-ca
# ls keys/ca* --检查根证书是否生成成功
keys/ca.key
创建 dh(Diffie-Hellman)密钥算法文件
# ./build-dh
# ls keys/dh1024.pem --检查是否已生成
keys/dh1024.pem
为VPN服务器创建密钥
# ./build-key-server vpnserver
Common Name (eg, your name or your server's hostname) []:vpnserver.uplooking --填上服务器的主机名,后面会用到,其它回车即可
# ls keys/vpnserver.* --验证是否成功
keys/vpnserver.csr keys/vpnserver.key
为VPN两个客户端创建密钥
# ./build-key client01.uplooking
Common Name (eg, your name or your server's hostname) []:client01.uplooking --填上客户端的主机名,后面会用到,其它回车即可
# ./build-key client02.uplooking
Common Name (eg, your name or your server's hostname) []:client02.uplooking --填上客户端的主机名,后面会用到,其它回车即可
国内域名 注意:使用“./build-key”脚本创建密钥时,不同的客户端对应的“Common Name”不能相同。
生成 tls-auth 密钥
tls-auth 密钥可以为点对点的VPN 连接提供了进一步的安全验证,如果选择使用这一方式,服务器端和客户端都必须拥有该密钥文件。
# /opt/vpn/sbin/openvpn --genkey --secret keys/ta.key
# mkdir /opt/vpn/etc
# cp -r keys/ /opt/vpn/etc/
建立连接的四个过程:
1.建立网络连接
2. 建立SSL对称加密通道
3. 交换公匙
4. 推送VPN策略
3)创建主服务器配置文件
# pwd
/opt/openvpn-2.0.9/sample-config-files
# ls
f loopback-server README f
firewall.sh office.up f f
home.up openvpn-shutdown.sh f xinetd-client-config
loopback-client openvpn-startup.sh f xinetd-server-config
# vim /opt/vpn/f
local 192.168.0.1 --指定监听服务的IP 地址
port 1194 --开启默认的1194监听端口
proto udp
dev tun --使用SSL Tune 的VPN 隧道模式(虚拟网卡)
ca --指定根证书
cert --指定VPN服务端的证书