Centos下openvpn搭建详解
更新时间:2024-04-03 16:25:01 阅读量: 综合文库 文档下载
- Centos配置ip推荐度:
- 相关推荐
Centos下openvpn搭建详解
本章目录:
加密的数据传输: ssh翻墙/加密数据传输代理: openvpn: 1、openvpn的概述 2、vpn数据包的结构 3、openvpn服务端的部署 4、在linux客户端的部署 5、在windows客户端的部署
SSH翻墙代理:
ssh -p port -qCNgD 7070 username@ip -q 静默模式 -C 压缩 -g 转发代理 -D 本地动态的监听端口 -N 不转发从代理客户发过来的命令
客户端配置: firefox 更改代理服务器,使用socket代理 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上运行。官方网站:http://www.openvpn.net
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软件
软件包组成: openvpn --实现VPN的服务 lzo --实现数据压缩
1、安装lzo # cd /root
# tar xf lzo-2.03.tar.gz # cd lzo-2.03
# ./configure && make && make install
2、安装openvpn
# tar xf openvpn-2.0.9.tar.gz # 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=\--指定openvpn的存储路径 work=/opt/vpn/etc
# chkconfig --add openvpn # chkconfig openvpn on
2)创建证书和密钥文件
# cd /root/openvpn-2.0.9/easy-rsa --定义变量 # vim vars
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf 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=\
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.crt 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.com --填上服务器的主机名,后面会用到,其它回车即可 # ls keys/vpnserver.* --验证是否成功 keys/vpnserver.crt keys/vpnserver.csr keys/vpnserver.key
为VPN两个客户端创建密钥
# ./build-key client01.uplooking.com
Common Name (eg, your name or your server's hostname) []:client01.uplooking.com --填上客户端的主机名,后面会用到,其它回车即可
# ./build-key client02.uplooking.com
Common Name (eg, your name or your server's hostname) []:client02.uplooking.com --填上客户端的主机名,后面会用到,其它回车即可 注意:使用“./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
client.conf loopback-server README tls-home.conf firewall.sh office.up server.conf tls-office.conf
home.up openvpn-shutdown.sh static-home.conf xinetd-client-config loopback-client openvpn-startup.sh static-office.conf xinetd-server-config
# vim /opt/vpn/etc/vpn.conf local 192.168.0.1 --指定监听服务的IP 地址 port 1194 --开启默认的1194监听端口 proto udp dev tun --使用SSL Tune 的VPN 隧道模式(虚拟网卡) ca keys/ca.crt --指定根证书 cert keys/vpnserver.crt --指定VPN服务端的证书 key keys/vpnserver.key --指定VPN服务端的私钥 dh keys/dh1024.pem --SSL的加密算法,与tls-auth联动使用 server 10.8.0.0 255.255.255.0 --使用服务器模式,并指定VPN 虚拟网络地址 ifconfig-pool-persist ipp.txt --DHCP地址池
push \ --为client添加到公网内部网段的路由 push \ --为客户端设置DNS 服务器地址 client-config-dir ccd --允许读取ccd/目录下的客户端配置文件 keepalive 10 120 --每10秒通过VPN的Control通道ping对方,如果连续120秒无法ping通,连接丢失,需要重新连接 tls-auth keys/ta.key 0 --指定tls-auth 密钥 cipher BF-CBC --加密算法与客户端要保持一致 comp-lzo --支持数据压缩 max-clients 100 --允许的最大并发VPN 连接数 user nobody group nobody --使用什么用户和组来启动VPN persist-key --通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys persist-tun --通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的 status openvpn-status.log --定期把openvpn的一些状态信息写到文件中,以便自己写程序计费或者进行其他操作 log-append openvpn.log --记录日志,每次重新启动openvpn后删除原有的log信息 verb 3 --日志级别 mute 20 --如果在日志里边出现相同日志,每20条日志显示一次
4)为客户端创建扩展配置文件(可以理解为子配置文件) # cd /opt/vpn/etc # mkdir ccd
# vim ccd/client01.uplooking.com --这个文件名必须是在生成密钥的时候填写的名字 ifconfig-push 10.8.0.2 10.8.0.1 --指定client的本地地址(tun0)、对端地址(P-t-P)
5)启动openvpn服务,并验证: # /etc/init.d/openvpn start
Starting openvpn: [ OK ]
# netstat -unlp |grep 1194
udp 0 0 192.168.0.1:1194 0.0.0.0:* 11821/openvpn
4、在linux客户端的部署
在已经配好的机器上:
# rsync -avzR /opt/vpn/ /etc/rc.d/init.d/openvpn /opt/lzo-2.03 192.168.0.179:/ 注意的是:
在vpnclient上,不可以有vpnserver上的vpn.server tun0 要注意了啊。
还有就是,时间的同步问题也要关注。
1)安装lzo # cd /root
# tar xf lzo-2.03.tar.gz # cd lzo-2.03
# ./configure && make && make install
2)安装openvpn
# tar xf openvpn-2.0.9.tar.gz # 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=\--指定openvpn的存储路径 work=/opt/vpn/etc
# chkconfig --add openvpn # mkdir /opt/vpn/etc/keys -p
3)从服务器下载密钥(192.168.0.1-->192.168.0.3),以下命令是在vpn服务器上操作 # cd /opt/vpn/etc/keys
# scp client01.uplooking.com.* ta.key ca.crt 192.168.0.3:/opt/vpn/etc/keys/
4)建立客户端的配置文件
# vim /opt/vpn/etc/client.conf client --使用客户端模式 dev tun proto udp
remote 192.168.0.1 1194 --点对点主服务器的地址、端口 resolv-retry infinite nobind
user nobody group nobody persist-key persist-tun ca keys/ca.crt
cert keys/client.uplooking.com.crt key keys/client.uplooking.com.key ns-cert-type server tls-auth keys/ta.key 1 cipher BF-CBC --需和GW1 服务器端保持一致 comp-lzo verb 3 mute 20
5)启动vpn服务 # service openvpn start # chkconfig openvpn on
6)在VPN服务器上启用路由和SNAT # vim /etc/sysctl.conf net.ipv4.ip_forward = 1 # sysctl -p
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to 192.168.1.1 # iptables -t nat -L -n
7)测试公网的client01.uplooking.com是否能访问IDC内网的主机 # ping 192.168.1.2 # ssh 192.168.1.2 --能ping通和远程登录表示实验成功
ping/ssh/mysql-->data-->(10.8.0.x)data(192.168.1.2)-->route
table-->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.5 tun0:10.8.0.1
1、由mysql客户产生数据包请求,源地址192.168.0.3,目标地址是192.168.1.2 2、数据到达网络层,先查本机路由表,进行匹配,应该从第三条路由出去 # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface 10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0 192.168.1.0 10.8.0.5 255.255.255.0 UG 0 0 0 tun0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
3、因为tun0是openvpn产生虚拟网卡,所以数据理所当然到达openvpn上,vpn客户端接收到数据后>,先使用lzo压缩数据,然后再调本机自己私钥来进行数据加密。
4、封装上新IP包头,然后再路由至服务端
5、服务器解密、解压缩,然后再根据目标来转发(路由/SNAT),数据包最终到达目的地。
5、在windows客户端的部署
1)安装软件
2)下载密钥
3)修改配置文件 client dev tun proto udp
remote 192.168.0.1 1194 resolv-retry infinite nobind
user nobody group nobody persist-key persist-tun ca ca.crt
cert client02.uplooking.com.crt key client02.uplooking.com.key ns-cert-type server tls-auth ta.key 1 cipher BF-CBC comp-lzo verb 3 mute 20 4)测试
user nobody group nobody persist-key persist-tun ca ca.crt
cert client02.uplooking.com.crt key client02.uplooking.com.key ns-cert-type server tls-auth ta.key 1 cipher BF-CBC comp-lzo verb 3 mute 20 4)测试
正在阅读:
Centos下openvpn搭建详解04-03
怒江傈僳族传统文化与森林关系探析01-12
2012感人故事整理06-09
中国建筑钢材行业发展现状与竞争战略研究报告(2015-2020)09-14
天津大学18秋《材料力学》在线作业二1(100分)03-08
2011高考英语备考方略09-14
现代教育原理第3阶段测试卷01-16
大自然的声音作文500字07-03
中小学庆祝建党97周年合唱比赛串词03-19
离散数学(屈婉玲版)第二章习题答案09-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 搭建
- 详解
- openvpn
- Centos
- c语言程序设计习题集
- 图书管理系统数据库设计报告实例
- SAP - SD-SAP免费销售订单配置及操作手册-V1.0
- 用四环节评价推进深度学习高效课堂建设
- 14年大纲对照笔记初级《出版专业·基础》
- 《发电厂电气部分》期末复习总结
- 在全市非公有制经济组织党组织集中组建工作推进会上的讲话
- 大学物理教程第二版-第1章答案 - 图文
- 2014年秋季0759钢结构设计练习及作业答案
- 苏教版小学五年级科学下册第一单元作业
- 历年中考名著导读题汇编(100题含答案)
- 2017年春季沪教版五四制一年级数学下学期期中复习试卷1
- 14、无机化学万题库(填空题)(16-21)
- 2014年广东省初中语文毕业生学业考试参考答案及评分标准
- 2018新苏教版国标本二年级下册语文《练习6》教学设计
- 软件规则
- 地理:第一章第一节我们身边的地理知识(湘教版七年级上)
- 铁路电气化接触网工程改造施工探讨
- 专业英语音频术语中英文对照
- 温州医科大学非直管附属医院、实习教学医院新聘兼职教师名单