Centos下openvpn搭建详解.docx

上传人:b****4 文档编号:24313503 上传时间:2023-05-26 格式:DOCX 页数:14 大小:285.47KB
下载 相关 举报
Centos下openvpn搭建详解.docx_第1页
第1页 / 共14页
Centos下openvpn搭建详解.docx_第2页
第2页 / 共14页
Centos下openvpn搭建详解.docx_第3页
第3页 / 共14页
Centos下openvpn搭建详解.docx_第4页
第4页 / 共14页
Centos下openvpn搭建详解.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Centos下openvpn搭建详解.docx

《Centos下openvpn搭建详解.docx》由会员分享,可在线阅读,更多相关《Centos下openvpn搭建详解.docx(14页珍藏版)》请在冰豆网上搜索。

Centos下openvpn搭建详解.docx

Centos下openvpn搭建详解

Centos下openvpn搭建详解

本章目录:

加密的数据传输:

ssh翻墙/加密数据传输代理:

openvpn:

1、openvpn的概述

2、vpn数据包的结构

3、openvpn服务端的部署

4、在linux客户端的部署

5、在windows客户端的部署

SSH翻墙代理:

ssh-pport-qCNgD7070username@ip

-q静默模式

-C压缩

-g转发代理

-D本地动态的监听端口

-N不转发从代理客户发过来的命令

客户端配置:

firefox

更改代理服务器,使用socket代理

about:

config

network.proxy.socks_remote_dns;true

1、openvpn的概述

VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。

该软件最早由JamesYonan编写。

OpenVPN允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。

它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。

  OpenVPN能在Linux、xBSD、MacOSX与Windows2000/XP上运行。

官方网站:

2、vpn数据包的结构

QQ-->

routetable

源主机-->vpn_client-->(sip)softwares(data)(dip)-->routetable-->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软件

软件包组成:

 openvpn--实现VPN的服务

lzo--实现数据压缩

1、安装lzo

#cd/root

#tarxflzo-2.03.tar.gz

#cdlzo-2.03

#./configure&&make&&makeinstall

2、安装openvpn

#tarxfopenvpn-2.0.9.tar.gz

#cdopenvpn-2.0.9

#./configure--prefix=/opt/vpn&&make&&makeinstall

#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--addopenvpn

#chkconfigopenvpnon

2)创建证书和密钥文件

#cd/root/openvpn-2.0.9/easy-rsa--定义变量

#vimvars

exportD=`pwd`

exportKEY_CONFIG=$D/f

exportKEY_DIR=$D/keys

echoNOTE:

whenyourun./clean-all,Iwillbedoingarm-rfon$KEY_DIR

exportKEY_SIZE=1024

exportKEY_COUNTRY=CN

exportKEY_PROVINCE=GD

exportKEY_CITY=GZ

exportKEY_ORG="UPLOOK.Inc"

exportKEY_EMAIL="*******************"

#sourcevars--执行vars文件中的代码让变量生效

#./clean-all--预先清除$KEY_DIR目录

创建CA证书(颁发机构)

#cd/root/openvpn-2.0.9/easy-rsa--一直回车即可,此脚本会引用上一步生成的变量

#./build-ca

#lskeys/ca*--检查根证书是否生成成功

keys/ca.crtkeys/ca.key

创建dh(Diffie-Hellman)密钥算法文件

#./build-dh

#lskeys/dh1024.pem--检查是否已生成

keys/dh1024.pem

为VPN服务器创建密钥

#./build-key-servervpnserver

CommonName(eg,yournameoryourserver'shostname)[]:

--填上服务器的主机名,后面会用到,其它回车即可

#lskeys/vpnserver.*--验证是否成功

keys/vpnserver.crtkeys/vpnserver.csrkeys/vpnserver.key

为VPN两个客户端创建密钥

#./build-key

CommonName(eg,yournameoryourserver'shostname)[]:

--填上客户端的主机名,后面会用到,其它回车即可

#./build-key

CommonName(eg,yournameoryourserver'shostname)[]:

--填上客户端的主机名,后面会用到,其它回车即可

注意:

使用“./build-key”脚本创建密钥时,不同的客户端对应的“CommonName”不能相同。

生成tls-auth密钥

tls-auth密钥可以为点对点的VPN连接提供了进一步的安全验证,如果选择使用这一方式,服务器端和客户端都必须拥有该密钥文件。

#/opt/vpn/sbin/openvpn--genkey--secretkeys/ta.key

#mkdir/opt/vpn/etc

#cp-rkeys//opt/vpn/etc/

建立连接的四个过程:

1.建立网络连接

2.建立SSL对称加密通道

3.交换公匙

4.推送VPN策略

3)创建主服务器配置文件

#pwd

/opt/openvpn-2.0.9/sample-config-files

#ls

client.confloopback-serverREADMEtls-home.conf

firewall.shoffice.upserver.conftls-office.conf

home.upopenvpn-shutdown.shstatic-home.confxinetd-client-config

loopback-clientopenvpn-startup.shstatic-office.confxinetd-server-config

#vim/opt/vpn/etc/vpn.conf

local192.168.0.1--指定监听服务的IP地址

port1194--开启默认的1194监听端口

protoudp

devtun--使用SSLTune的VPN隧道模式(虚拟网卡)

cakeys/ca.crt--指定根证书

certkeys/vpnserver.crt--指定VPN服务端的证书

keykeys/vpnserver.key--指定VPN服务端的私钥

dhkeys/dh1024.pem--SSL的加密算法,与tls-auth联动使用

server10.8.0.0255.255.255.0--使用服务器模式,并指定VPN虚拟网络地址

ifconfig-pool-persistipp.txt--DHCP地址池

push"route192.168.1.0255.255.255.0"--为client添加到公网内部网段的路由

push"dhcp-optionsDNS8.8.8.8"--为客户端设置DNS服务器地址

client-config-dirccd--允许读取ccd/目录下的客户端配置文件

keepalive10120--每10秒通过VPN的Control通道ping对方,如果连续120秒无法ping通,连接丢失,需要重新连接

tls-authkeys/ta.key0--指定tls-auth密钥

cipherBF-CBC--加密算法与客户端要保持一致

comp-lzo--支持数据压缩

max-clients100--允许的最大并发VPN连接数

usernobody

groupnobody--使用什么用户和组来启动VPN

persist-key--通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys

persist-tun--通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的

statusopenvpn-status.log--定期把openvpn的一些状态信息写到文件中,以便自己写程序计费或者进行其他操作

log-appendopenvpn.log--记录日志,每次重新启动openvpn后删除原有的log信息

verb3--日志级别

mute20--如果在日志里边出现相同日志,每20条日志显示一次

4)为客户端创建扩展配置文件(可以理解为子配置文件)

#cd/opt/vpn/etc

#mkdirccd

#vimccd/--这个文件名必须是在生成密钥的时候填写的名字

ifconfig-push10.8.0.210.8.0.1--指定client的本地地址(tun0)、对端地址(P-t-P)

5)启动openvpn服务,并验证:

#/etc/init.d/openvpnstart

Startingopenvpn:

[OK]

#netstat-unlp|grep1194

udp00192.168.0.1:

11940.0.0.0:

*11821/openvpn

4、在linux客户端的部署

在已经配好的机器上:

#rsync-avzR/opt/vpn//etc/rc.d/init.d/openvpn/opt/lzo-2.03192.168.0.179:

/

注意的是:

在vpnclient上,不可以有vpnserver上的vpn.server

tun0要注意了啊。

还有就是,时间的同步问题也要关注。

1)安装lzo

#cd/root

#tarxflzo-2.03.tar.gz

#cdlzo-2.03

#./configure&&make&&makeinstall

2)安装openvpn

#tarxfopenvpn-2.0.9.tar.gz

#cdopenvpn-2.0.9

#./configure--prefix=/opt/vpn&&make&&makeinstall

#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--addopenvpn

#mkdir/opt/vpn/etc/keys-p

3)从服务器下载密钥(192.168.0.1-->192.168.0.3),以下命令是在vpn服务器上操作

#cd/opt/vpn/etc/keys

#scp.*ta.keyca.crt192.168.0.3:

/opt/vpn/etc/keys/

4)建立客户端的配置文件

#vim/opt/vpn/etc/client.conf

client--使用客户端模式

devtun

protoudp

remote192.168.0.11194--点对点主服务器的地址、端口

resolv-retryinfinite

nobind

usernobody

groupnobody

persist-key

persist-tun

cakeys/ca.crt

certkeys/.crt

keykeys/.key

ns-cert-typeserver

tls-authkeys/ta.key1

cipherBF-CBC--需和GW1服务器端保持一致

comp-lzo

verb3

mute20

5)启动vpn服务

#serviceopenvpnstart

#chkconfigopenvpnon

6)在VPN服务器上启用路由和SNAT

#vim/etc/sysctl.conf

net.ipv4.ip_forward=1

#sysctl-p

#iptables-tnat-APOSTROUTING-s10.8.0.0/24-jSNAT--to192.168.1.1

#iptables-tnat-L-n

7)测试公网的是否能访问IDC内网的主机

#ping192.168.1.2

#ssh192.168.1.2--能ping通和远程登录表示实验成功

ping/ssh/mysql-->data-->(10.8.0.x)data(192.168.1.2)-->routetable-->tun0-->openvpn-->encrypt((10.8.0.x)data(192.168.1.2))-->encrypt_data-->(192.168.0.3)encrypt_data(192.168.0.1:

1194)-->switch/router-->vpnserver(192.168.0.1:

1194)-->dencrypt-->(10.8.0.x)data(192.168.1.2)-->route-->SNAT-->(192.168.1.1)data(192.168.1.2)-->192.168.1.2

mysql(192.168.0.3)<-(192.168.0.1)vpn(192.168.1.1)->mysqld(192.168.1.2)

tun0:

10.8.0.5tun0:

10.8.0.1

1、由mysql客户产生数据包请求,源地址192.168.0.3,目标地址是192.168.1.2

2、数据到达网络层,先查本机路由表,进行匹配,应该从第三条路由出去

#route-n

KernelIProutingtable

DestinationGatewayGenmaskFlagsMetricRefUseIface

10.8.0.50.0.0.0255.255.255.255UH000tun0

10.8.0.110.8.0.5255.255.255.255UGH000tun0

192.168.1.010.8.0.5255.255.255.0UG000tun0

192.168.0.00.0.0.0255.255.255.0U000eth0

3、因为tun0是openvpn产生虚拟网卡,所以数据理所当然到达openvpn上,vpn客户端接收到数据后>,先使用lzo压缩数据,然后再调本机自己私钥来进行数据加密。

4、封装上新IP包头,然后再路由至服务端

5、服务器解密、解压缩,然后再根据目标来转发(路由/SNAT),数据包最终到达目的地。

5、在windows客户端的部署

1)安装软件

2)下载密钥

3)修改配置文件

client

devtun

protoudp

remote192.168.0.11194

resolv-retryinfinite

nobind

usernobody

groupnobody

persist-key

persist-tun

caca.crt

cert.crt

key.key

ns-cert-typeserver

tls-authta.key1

cipherBF-CBC

comp-lzo

verb3

mute20

4)测试

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1