设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 5454|回复: 34

征求一个vpn解决方案   [复制链接]

Rank: 8Rank: 8

签到
259
注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 14:45:42 |显示全部楼层
本帖最后由 crazyunix 于 2011-12-30 14:48 编辑

公司总部在北京,在广州等地都有分支,现在想实现用vpn的方式组建一个逻辑局域网,我把所要实现的画图了,想征求一个好的解决方案 。

ps: 想直接在Linux实施,没有想采用其他设备(cisco,不花钱的就另当别论了)。
其实想了好几天,折腾好几天了。
我本来用的是pptp+l2tpd+ipsec 组成的vpn,通过windows 客户端可以直接连接上,用centos 5就连接不上,现在想换个别的方案。 直接用vpn 相连的方案若没有,公司有一台monowall 防火墙。如果可以的话 采用这个方案也行,本人没有实施过,请大牛出山。指点一二。
                                                    由衷的感谢linuxtone的童鞋!!!
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
http://crazyming.blog.51cto.com
运维

Rank: 6Rank: 6

注册时间
2011-12-16
最后登录
2014-10-16
在线时间
42 小时
阅读权限
70
积分
6526
帖子
76
主题
2
精华
0
UID
16684
发表于 2011-12-30 14:52:35 |显示全部楼层
openvpn可以实现,到网上搜索下..

=====
www.yaukb.com
www.yaukb.com
<-sina_sign,2254244150,9d7efb47,4->

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 14:53:19 |显示全部楼层
Yau's 发表于 2011-12-30 14:52
openvpn可以实现,到网上搜索下..

=====

搜了好久  不知道搜什么了。
http://crazyming.blog.51cto.com
运维

使用道具 举报

论坛元老

OpenStack/Python/Linux

Rank: 8Rank: 8

注册时间
2010-9-1
最后登录
2019-7-22
在线时间
2166 小时
阅读权限
90
积分
16809
帖子
1180
主题
1135
精华
0
UID
10262
发表于 2011-12-30 14:58:59 |显示全部楼层
openvpn有site to site的方案,不过需要和iptables配合做snat。
有现成的windows客户端.
或者用openswan,不过那个太复杂。需要用到内核ipsec模块支持。而且组网也不灵活。

使用道具 举报

Rank: 7Rank: 7Rank: 7

注册时间
2008-11-26
最后登录
2017-9-11
在线时间
627 小时
阅读权限
100
积分
93417
帖子
450
主题
18
精华
1
UID
618
发表于 2011-12-30 15:02:07 |显示全部楼层
openvpn site to sites

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 15:03:23 |显示全部楼层
shelmesky 发表于 2011-12-30 14:58
openvpn有site to site的方案,不过需要和iptables配合做snat。
有现成的windows客户端.
或者用openswan, ...

openvpn 有site to site的方案,需要iptables 配合 没问题。 主要是想实现windows客户端不拨vpn直接访问
http://crazyming.blog.51cto.com
运维

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 15:04:49 |显示全部楼层
akin520 发表于 2011-12-30 15:02
openvpn site to sites

多谢。。 我去查查。
http://crazyming.blog.51cto.com
运维

使用道具 举报

Rank: 6Rank: 6

注册时间
2011-12-16
最后登录
2014-10-16
在线时间
42 小时
阅读权限
70
积分
6526
帖子
76
主题
2
精华
0
UID
16684
发表于 2011-12-30 15:05:29 |显示全部楼层
给个参看文档你:

目标功能:
    搭建OpenVPN服务器,跨越Internet连接两个异地的局域网段。

              |---------------| <-->   Internet  <--> |---------------|
    LAN2 <--> |Router2(Client)|                       |Router1(Server)| --> LAN1
              |---------------| <--> SSL VPN Tun <--> |---------------|

    (北京)Server(router1)网络参数:
        eth0 173.16.16.1/24
        eth1 192.168.20.1/24(本例中作为LAN1的网关)
        LAN1:192.168.20.0/24

    (广州)Client(router2)网络参数:
        eth0 211.20.20.1/24
        eth2 192.168.40.1/24(本例中作为LAN2的网关)
        LAN2:192.168.40.0/24
####################################################################
一、安装OpenVPN软件包 (在router1、router2上均执行以下操作,按默认配置安装到/usr/local目录下)

    1、安装lzo (为SSL数据提供压缩)
shell> tar zxvf lzo-2.03.tar.gz -C /usr/src
shell> cd /usr/src/lzo-2.03
shell> ./configure && make && make install

    2、安装openvpn
shell> tar zxvf openvpn-2.0.9.tar.gz -C /usr/src
shell> cd /usr/src/openvpn-2.0.9
shell> ./configure && make && make install


二、配置OpenVPN Server端(router1)

    1、制作证书和相关密钥文件 (可参考/usr/src/openvpn-2.0.9/easy-rsa/README)
      1)调整及预定义变量
shell> mkdir /etc/openvpn
shell> cd /usr/src/openvpn-2.0.9/easy-rsa
shell> vi vars
export D=`pwd`
export KER_CONFIG=$D/openssl.cnf
export KEY_DIR="/etc/openvpn/keys/"    #//修改生成的密钥等文件的保存位置
export KEY_SIZE=1024
export KEY_COUNTRY=CN    #//以下为用于各密钥中的预定义信息
export KEY_PROVINCE=BJ
export KEY_CITY=BJ
export KEY_ORG="BJ-GZ"
export KEY_EMAIL="TsengYiashell>126.com"
shell> . vars
shell> ./clean-all

      2)创建证书、密钥等文件
shell> ./build-ca    #//生成CA证书
shell> ./build-dh    #//生成dh(Diffie-Hellman)文件
shell> ./build-key-server router1    #//生成服务端密钥
shell> ./build-key router2    #//生成客户端密钥
shell> /usr/local/sbin/openvpn --genkey --secret /etc/openvpn/keys/ta.key    #//生成tls-auth密钥

    2、建立OpenVPN服务配置文件
shell> cp /usr/src/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/
shell> vi /etc/openvpn/server.conf
local 173.16.16.1    #//指定VPN服务监听的接口地址(本例中eth0网卡的地址)
port 1194    #//指定VPN服务监听的端口
proto udp
dev tun
ca keys/ca.crt
cert keys/router1.crt
key keys/router1.key
dh keys/dh1024.pem
server 10.8.8.0 255.255.255.0    #//指定vpn隧道的虚拟子网,vpn server将自动使用第一个IP,如10.8.8.1
ifconfig-pool-persist ipp.txt
push "route 192.168.20.0 255.255.255.0"    #//向客户端通告服务器端LAN1网段
client-config-dir ccd    #//指定调用ccd子目录下的客户端配置文件,可在文件中指定对端的ip地址
route 192.168.40.0 255.255.255.0    #//为server端添加到client端LAN2网段的路由
client-to-client    #//允许各客户端之间的互相访问
duplicate-cn    #//允许client密钥被复用
keepalive 10 120
tls-auth keys/ta.key 0    #//指定tls认证密钥
cipher BF-CBC    #//指定cipher加密算法
comp-lzo
max-clients 100    #//指定最大并发连接数
user nobody
group nobody
persist-key
persist-tun
status /tmp/openvpn-status.log
verb 3
mute 20

shell> mkdir /etc/openvpn/ccd
shell> vi /etc/openvpn/ccd/router2    #//在client的独立配置文件中指定对端tun0的ip地址参数
iroute 192.168.40.0 255.255.255.0
ifconfig-push 10.8.8.2 10.8.8.1    #//依次为tun0本地地址,P-t-P对端地址

    3、准备启动脚本、启动OpenVPN
shell> cp -p /usr/src/openvpn-2.0.9/sample-scripts/openvpn.init /etc/init.d/
shell> vi /etc/init.d/openvpn
shell> chkconfig --add openvpn
shell> chkconfig --level 35 openvpn on
shell> service openvpn start


三、配置OpenVPN Client端(router2)

    1、下载证书和相关密钥文件
      1)下载在服务器生成的ca.crt、router2.crt、router2.key、ta.key文件,做好备份
      2)复制上述文件到router2的/etc/openvpn/keys目录

    2、修改Client配置文件
shell> cp /usr/src/openvpn-2.0.9/sample-config-files/client.conf /etc/openvpn/
shell> vi /etc/openvpn/client.conf
client
dev tun
proto udp
remote 173.16.16.1 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca keys/ca.crt
cert keys/router2.crt
key keys/router2.key
ns-cert-type server
tls-auth keys/ta.key 1
cipher BF-CBC
comp-lzo
verb 3
mute 20

四、连通测试
    1、可以分别在router1、router2上查看tun0设备参数(ifconfig tun0)
router1的tun0信息:
    inet addr:10.8.8.1    P-t-P:10.8.8.2
router2的tun0信息:
    inet addr:10.8.8.2    P-t-P:10.8.8.1

    2、可以分别在router1、router2上查看路由记录(route -n)
router1的路由表信息中应有到LAN2网段的路由记录:
    Destination    Gateway    Genmask        Flags  Metric  Ref  Use  Iface
    192.168.40.0   10.8.8.2   255.255.255.0  UG     0        0   0    tun0
router2的路由表信息中应有到LAN1网段的路由记录:
    Destination    Gateway    Genmask        Flags  Metric  Ref  Use  Iface
    192.168.20.0   10.8.8.1   255.255.255.0  UG     0        0   0    tun0

    3、LAN1、LAN2两个网段的客户端互联测试,例如:
北京的192.168.20.20和广州的192.168.40.40能够相互ping通。


=============
www.yaukb.com
www.yaukb.com
<-sina_sign,2254244150,9d7efb47,4->

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 15:05:58 |显示全部楼层
Yau's 发表于 2011-12-30 15:05
给个参看文档你:

目标功能:

谢谢 老兄  太感谢你了
http://crazyming.blog.51cto.com
运维

使用道具 举报

Rank: 6Rank: 6

注册时间
2011-12-16
最后登录
2014-10-16
在线时间
42 小时
阅读权限
70
积分
6526
帖子
76
主题
2
精华
0
UID
16684
发表于 2011-12-30 15:07:12 |显示全部楼层
应该可以实现的....


以前做过你这样的......应该还在使用中..


=====
www.yaukb.com
www.yaukb.com
<-sina_sign,2254244150,9d7efb47,4->

使用道具 举报

论坛元老

OpenStack/Python/Linux

Rank: 8Rank: 8

注册时间
2010-9-1
最后登录
2019-7-22
在线时间
2166 小时
阅读权限
90
积分
16809
帖子
1180
主题
1135
精华
0
UID
10262
发表于 2011-12-30 15:07:57 |显示全部楼层
crazyunix 发表于 2011-12-30 15:03
openvpn 有site to site的方案,需要iptables 配合 没问题。 主要是想实现windows客户端不拨vpn直接访问 ...

你的意思是,windows客户端不使用openvpn,直接接入到VPN网络?
不明白这么做有何用意。如果真是这样的话,如果是windows客户端的IP,就直接用iptables直接REDIRECT模块。重定向到PPTP的VPN服务器。

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 15:10:17 |显示全部楼层
shelmesky 发表于 2011-12-30 15:07
你的意思是,windows客户端不使用openvpn,直接接入到VPN网络?
不明白这么做有何用意。如果真是这样的话 ...

就是vpn服务器放到路由器的前面去。直接通过route-----vpn-----vpn-----client
http://crazyming.blog.51cto.com
运维

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 15:13:06 |显示全部楼层
Yau's 发表于 2011-12-30 15:07
应该可以实现的....

我先去搞下。。完事我给你发站内信
http://crazyming.blog.51cto.com
运维

使用道具 举报

论坛元老

OpenStack/Python/Linux

Rank: 8Rank: 8

注册时间
2010-9-1
最后登录
2019-7-22
在线时间
2166 小时
阅读权限
90
积分
16809
帖子
1180
主题
1135
精华
0
UID
10262
发表于 2011-12-30 15:14:12 |显示全部楼层
那VPN服务器也是公网地址咯。其实没关系,只要几个分支机构的VPN网关都互通了,分支机构的内网可以在核心交换或路由上写一条静态路由。对方的内网网段,下一跳是VPN服务器。

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2014-9-3
在线时间
225 小时
阅读权限
90
积分
17954
帖子
317
主题
30
精华
0
UID
10646
发表于 2011-12-30 15:16:03 |显示全部楼层
shelmesky 发表于 2011-12-30 15:14
那VPN服务器也是公网地址咯。其实没关系,只要几个分支机构的VPN网关都互通了,分支机构的内网可以在核心交 ...

是的 是这样想的。不过 还是有问题的。到时候再追问吧
http://crazyming.blog.51cto.com
运维

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-4-4 01:06 , Processed in 0.027544 second(s), 10 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部