LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2095|回复: 6

VPN应用~

[复制链接]
发表于 2003-8-13 09:43:08 | 显示全部楼层 |阅读模式
情况:使用KINGATE代理上网(LINUX),由于时间关系,暂时不使用LINUX做VPN服务器,而是使用一台WINDOWS的机器做为VPN服务器,在KINGATE。CONF写了端口映射,但是我在使用客户端的时候进行VPN拨号的时候,出现“远程计算机没有响应”,开始以为是IPTABLE的问题~但是我写了规则让1723 PORTS和47通过还是不行~索性把防火墙关闭,问题依旧~请问是什么原因~?


1。能否实现我这样的端口映射实现VPN服务
2。LINUX下有没有配置简单的VPN SERVER,有,请提供资料~

我需要的时候客户端为WINDOWS的机器~

由于需要使用NETMEETING与外部联系,有什么好的解决方案~希望提供~:help
发表于 2003-8-13 18:15:09 | 显示全部楼层
先看看这篇吧。

------------------------------------------------------------------------------------------------------
本文收稿于 2002.06.11


<<Reahat 7.2 + PoPtoP 实现vpn一例>>
作者:苏仕明 2002.06.10

声明:1.第一次写此类文章,写得不好,先自我解嘲:见笑了。
2.如本文确实对你有用,请给我发EMAIL:susu@163.net ,不妨鼓励几句以示你的谢意。
3.如转载本文,请保持本文的完整,包括声明。
4.保留其他一切权利。

什么是vpn?大家千万别问我,我只是略懂那么一丁点皮毛而已,不过大家可以阅读后面提到的参考文章。我只知道
我为什么要用到vpn,呵呵,相信有很多象我一样的莱鸟。
我使用vpn的原由是最近我用DELPHI写了一个 ActiveForm 放在我们的内部WEB服务器上,以便公司总部外的分部可以
通过IE访问数据和打印一些奇怪的报表,该ActiveForm 需要访问内部网上的另一台机器。顺便介绍一下我们公司的
网络配置情况:公司总部有一局域网,大家通过一台专用的LINUX服务器拨ADSL(包月200元的那一种)共享上网,该
LINUX服务器也运行WWW、EMAIL、DNS、DHCP等服务,当然也运行IPCHAINS。公司对外网站租用虚拟主机(带域名系
统)。
我们的做法是,公司分部先上互连网,然后拨通vpn,使其可以以内部IP身份访问内部网。那样,我的ActiveForm 就
可以发挥作用了。
下面内容一、二、三是我们实现vpn应用的相关步骤,四是给大家一些参考文章。

一、服务器安装
1.取得PoPToP软件,可到http://www.poptop.org下载,现在是1.2版。
2.安装:
rpm -ivh pptpd-1.0.0-1.i386.rpm
3.编辑文件/etc/syslog.conf,增加一行:
daemon.debug /var/log/pptpd.log
重新启动syslogd:
killall syslogd
syslogd
4.编辑下列文件,确定包含以下相似内容:

/etc/ppp/options
debug
name servername(LINUX服务器名称)
auth
require-chap
proxyarp

/etc/pptpd.conf
speed 115200
localip 192.168.0.234-238
remoteip 192.168.1.234-238
/etc/ppp/chap-secrets
#帐号 服务器名称 密码 IP
susu servername 123 *

5.开始启用PoPToP:
/usr/sbin/pptpd
至此,你的linux服务器,已经可以接受vpn拨号接入了,如果有问题,可以查看日志/var/log/pptpd.log。

6.ipchains设置(-d和-s的IP就看你的罗)
ipchains -I forward -p tcp -d 192.168.0.10 1723 -j ACCEPT
ipchains -A forward -p tcp -s 192.168.0.10 1723 -j ACCEPT
ipchains -A forward -p 47 -d 192.168.0.10 -j ACCEPT
ipchains -A forward -p 47 -s 192.168.0.10 -j ACCEPT


二、域名设置:
这里的域名设置指的不是局域网中LINUX的DNS设置,而是指前面所说的虚拟主机服务商提供的域名系统设

置(例如某某ISP的虚拟主机业务标准型)。在域名系统中增加一条A记录。
域名:vpn.gd!%!%!.com
(差点暴露公司机密,虽然可以为公司做一下广告)
IP :为我现在ADSL拨号所获得的IP。
为什么要这样做?因为我不想在每一次获得新IP时,都要电话通知各个分部,现在公司总部的IP是多少。

三、客户端设置:
WIN98的设置要点
1.新建一个拨号连接,拨号设备选用"虚拟拨号设备",对方IP输入:vpn.gd!%!%!.com
帐号输入:susu,密码输入:123(见上面的/etc/ppp/chap-secrets文件)

WIN2000的设置要点
1.新建一个"网络和拨号连接",网络连接类型选择"通过 Internet 连接到专用网络(V)"
2.主机名或IP地址输入:www.!%!%!.com
3.帐号输入:susu,密码输入:123(见上面的/etc/ppp/chap-secrets文件)
4.该连接的“属性”――“安全措施”请选“高级(自定义设置)”――“设置”
数据加密:选“可选加密(没有加密也可以连接)”
允许协议:请确保“质询握手身份验证协议(CHAP)”被选中。


四、参考文章:
1.基于IPsec的虚拟专用网--原理篇
Linuxaid技术支持网站 01-02-02 20:11 910p unix_guo
http://www.linuxaid.com.cn/solution/showsol.jsp?i=99

2.基于IPsec的虚拟专用网在Linux上的实现--安装配置篇
Linuxaid技术支持网站 01-02-02 20:15 1173p unix_guo
http://www.linuxaid.com.cn/solution/showsol.jsp?i=100

3.vpn-HOWTO
http://www.tldp.org/HOWTO/vpn-HOWTO/

4.Linux vpn Masquerade HOWTO
http://www.tldp.org/HOWTO/vpn-Masquerade-HOWTO.html

5.PoPToP HOWTO/FAQ
http://www.poptop.org

6.就在我沉思到哪个网站灌水的时候,发现了下面这编:
《RedHat7.2实现免费的vpn》 任我行 04/27/02 02:39 PM
http://www.linuxforum.net/docnew ... =new&Number=402

7.其他请自已找...

本文只为实现文中提到目的而做,其他(如安全等)问题请自行解决了。
真心希望对大家有用!



susu 2002.06.10 于广州
发表于 2003-8-13 18:17:53 | 显示全部楼层
这篇是BSD,作者不详。
------------------------------------------------------------------------------------------------
IETF的IP层加密标准协议IPSec协议是个一个三层隧道协议,用于传输三层网络协议,它主要应用于构建企业内部虚拟专网(Intranet vpn)和扩展的企业内部虚拟专网(Extranet vpn)。 IPSec 协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,它包括Authentication Header(AH)协议和 Encapsulating Security Payload(ESP)协议、Internet Key Exchange(IKE)协议和用于网络验证及加密的一些算法等。IPSec 规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源验证、数据加密等网络安全服务。
IPSec有多种封装传输模式,其中,IPSec的ESP/tunnel mode可以跨Internet连接两个网络。FreeBSD早在3.X版本时就支持IPSec,下面我们将用两台FreeBSD主机作网关,连接两个不同地域间的网络。

一、 环境
LAN(Beijing)<->FreeBSD A<-----> Internet <------> FreeBSD B<->LAN(Shanghai)

LAN(Beijing): 172.16.1.0/24
FreeBSD A: 外部合法IP: 1.2.3.4 内部IP: 172.16.1.1

LAN(Shanghai): 192.168.0.0/24
FreeBSD B: 外部合法IP: 5.6.7.8 内部IP: 192.168.0.1

二、 定制内核
在FreeBSDA、B的内核配置文件中加入:
options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)
device gif 4 #通过gif(4) device实现IP-IP tunneling
重新编译,安装新内核、重新启动。

三、 配置
在FreeBSD A下:
# vi /usr/local/etc/rc.d/ipsec.sh
#!/bin/sh
# make a tunnel interface
gifconfig gif0 1.2.3.4 5.6.7.8
ifconfig gif0 172.16.1.1 192.168.0.1 netmask 0xffffff00
# Make a static route
route add -net 192.168.0.0/24 192.168.0.1
# read in the config
setkey -f /etc/ipsec.conf
# chmod +x /usr/local/etc/rc.d/ipsec.sh
# vi /etc/ipsec.conf
flush;
spdflush;
add 1.2.3.4 5.6.7.8 esp 9991 -E blowfish-cbc "password";
add 5.6.7.8 1.2.3.4 esp 9992 -E blowfish-cbc "wordpass";
spdadd 172.16.1.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/1.2.3.4-5.6.7.8/require;
spdadd 192.168.0.0/24 172.16.1.0/24 any -P in ipsec esp/tunnel/5.6.7.8-1.2.3.4/require;

在FreeBSD B下:
# vi /usr/local/etc/rc.d/ipsec.sh
#!/bin/sh
gifconfig gif0 5.6.7.8 1.2.3.4
i fconfig gif0 192.168.0.1 172.16.1.1 netmask 0xffffff00
route add -net 172.16.1.0/24 172.16.1.1
setkey -f /etc/ipsec.conf
# chmod +x /usr/local/etc/rc.d/ipsec.sh
# vi /etc/ipsec.conf
flush;
spdflush;
# Note that the add rules are the same as on Node A!
add 1.2.3.4 5.6.7.8 esp 9991 -E blowfish-cbc "password";
add 5.6.7.8 1.2.3.4 esp 9992 -E blowfish-cbc "wordpass";
spdadd 192.168.0.0/24 172.16.1.0/24 any -P out ipsec esp/tunnel/5.6.7.8-1.2.3.4/require;
spdadd 172.16.1.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/1.2.3.4-5.6.7.8/require;

四、 测试
两个局域网内的计算机的Default Gateway指向各自的FreeBSD主机内部地址,或者手动添加静态路由。Ping对方网内的主机,看是否联通。

五、 其他
1、 如果使用FreeBSD版本是4.4-Release之后,编译内核时用pseudo-device gif代替device gif 4;且在/etc/rc.conf中定义gif设备(详见/etc/default/rc.conf):
gif_interfaces="gif0"
gifconfig_gif0="1.2.3.4 5.6.7.8"
否则,创建不了gif设备。可用ifconfig –a 看gif0是否建立。
2、 如果想限制对方网内计算机的访问权限,可以结合防火墙控制

---------------------------------------------------------------------------------------------------------------
对于构建vpn来说,网络隧道(Tunnelling)技术是个关键技术。网络隧道技术指的是利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能。
现有两种类型的网络隧道协议,一种是二层隧道协议,用于传输二层网络协议,它主要应用于构建远程访问虚拟专网(Access vpn);另一种是三层隧道协议,用于传输三层网络协议,它主要应用于构建企业内部虚拟专网(Intranet vpn)和扩展的企业内部虚拟专网(Extranet vpn)。
FreeBSD下的PoPToP实现了二层隧道协议中的PPTP(Point to Point Tunneling Protocol)封装,利用它建立远程访问vpn服务,可以替代现有的电话长途拨号访问。
一、 环境
1. 一台PC服务器安装FreeBSD,双网卡连接内外两个网段,内部地址172.16.1.210/24,外部地址为固定合法IP地址。
2. 外地用户PC通过Internet和FreeBSD主机建立vpn连接连入局域网。
二、 安装
# cd /usr/ports/net/poptop
# make; make install
如果执行make不允许安装,编辑当前目录下的Makefile,将forbidden那行注释掉
三、 配置
a、 # vi /etc/syslog.conf,增加一行daemon.debug /var/log/pptpd.log
# kill –HUP (syslogd当前pid)
b、 # vi /etc/ppp/options
lock
debug
auth
+chap # chap认证方式
proxyarp
# vi /etc/ppp/chap-secrets
user * password * # 给vpn用户的用户名和密码
# vi /etc/ppp/ppp.conf
loop:
set timeout 0
set device localhost:pptp
set log phase
set dial
set login
# Server (local) IP address, Range for Clients, and Netmask
set ifaddr 172.16.1.210 172.16.1.225-172.16.1.254 255.255.255.0
set server /tmp/loop "" 0177
loop-in:
set timeout 0
allow mode direct
pptp:
load loop
enable proxy
accept dns
# DNS Servers to assign client
set dns 172.16.1.210
# NetBIOS/WINS Servers to assign client
# set nbns 172.16.1.200
set device !/etc/ppp/secure
# vi /etc/ppp/secure
#!/bin/sh
exec /usr/sbin/ppp -direct loop-in
c、 编辑/etc/local/etc/pptpd.conf
speed 115200
option /etc/ppp/ppp.conf
debug
localip 172.16.1.210
remoteip 172.16.1.225-254 # 连接上来的用户从中获取IP
四、 运行
# /usr/local/etc/rc.d/pptpd.sh start 或
# /usr/local/sbin/pptpd &
五、 测试
找个能连接Internet的windows 98se或win2000机器,创建一个vpn连接。服务器地址填FreeBSD的外部合法IP,用户名user,口令password,并禁用数据压缩属性。
注:windows 98se下建立vpn连接需先添加一个微软虚拟适配器,一个拨号适配器。
六、 其他
1、 vpn的连接速度取决于双方(服务器,用户端)接入Internet的速度。
2、 上述设置的PoPToP服务只实现了一个隧道封装,通过该隧道传输的数据并没有加密,所以并非严格意义上vpn连接。
3、 用户通过vpn连接上来后,相当于直接连入你的局域网。出于安全考虑,可以结合FreeBSD的防火墙(如ipf),设置一些规则来限制分配给vpn用户的那段IP地址的访问范围。
4、 如果连接失败,打开/var/log/pptpd.log、/var/log/ppp.log查看错误纪录。
发表于 2003-8-13 18:21:08 | 显示全部楼层

RedHat7.2实现免费的VPN

by         任我行
虚拟专用网(vpn)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。微软的Windows2000里已经内置了vpn的支持。如何在Linux下实现呢?经过一下午的研究,终于搞定,其实蛮简单的。由于网上介绍LINUX下配置vpn的中文资料比较少,所以写了这篇贴上来,希望能给linuxforum的朋友们一点帮助。本人也是菜鸟,有不对的地方希望大家批评指正。
环境
1. 一台PC服务器安装RedHat7.2,双网卡连接内外两个网段,内部网卡IP为192.168.0.1/255.255.255.0,外部地址为固定合法IP地址。
2. 外地用户PC通过Internet和RH7.2主机建立vpn连接连入局域网。

一、下载pptpd-1.0.0-5.i386.rpm
PPTP(Piont-to-point Tunneling Protocol 点对点传输协议)是一个用以建立vpn的网络协议. 此协议需TCP(端口1723)和GRE以完成工作. RedHat公司对这个RPM包的解释是:A PPTP server daemon.
ftp://ftp.redhat.com/pub/redhat/ ... pd-1.0.0-5.i386.rpm
二、安装:rpm -ivh pptpd-1.0.0-5.i386.rpm
安装后产生以下文件:
/etc/pptpd.conf
/usr/sbin/pptpctrl
/usr/sbin/pptpd
/usr/share/doc/pptpd-1.0.0
/usr/share/doc/pptpd-1.0.0/AUTHORS
/usr/share/doc/pptpd-1.0.0/COPYING
/usr/share/doc/pptpd-1.0.0/INSTALL
/usr/share/doc/pptpd-1.0.0/README
/usr/share/doc/pptpd-1.0.0/README.inetd
/usr/share/doc/pptpd-1.0.0/README.slirp
/usr/share/doc/pptpd-1.0.0/TODO
/usr/share/doc/pptpd-1.0.0/html
/usr/share/doc/pptpd-1.0.0/html/HOWTO-IPX+PPTP.txt
/usr/share/doc/pptpd-1.0.0/html/HOWTO-PoPToP.txt
/usr/share/doc/pptpd-1.0.0/html/setup_pptp_client.html
/usr/share/doc/pptpd-1.0.0/samples
/usr/share/doc/pptpd-1.0.0/samples/chap-secrets
/usr/share/doc/pptpd-1.0.0/samples/options
/usr/share/doc/pptpd-1.0.0/samples/pptpd.conf
你可以看看里面的说明和示例

三、修改:/etc/pptpd.conf的內容
speed 115200
option /etc/ppp/options
localip 192.168.0.200-238 (自己的 ip)
remoteip 192.168.0.100-200 (client 的 ip)
pidfile /var/run/pptpd.pid


四、修改:/etc/ppp/chap-secrets的內容
"sz" xxx.com "sz" 192.168.0.200
"china" xxx.com "china" 192.168.0.100
注:xxx.com是服务器名

五、修改:/etc/ppp/options的內容:
name xxx.com
auth
require-chap
proxyarp

六、最后运行:/usr/sbin/pptpd
经过这简单的几步,我们就ok了!用netstat -ln就可以看到已经有个1723的端口在监听了

Win98系统中vpn连接的设置我这里就不多说了,你可以看下面这个网页得到帮助:
http://www.ccidnet.com/tech/app/2001/10/22/58_3516.html

在上面的设置中,我将用户名设了两个,一个为sz,密码是sz,另一个为china,密码是china。单击“连接”按钮后便可以连到我们的专用网络里。我在局域网的机器上实验了一下,vpn服务器IP为192.168.0.1,连上后显示连接速度为10M,协议为challenge信号交换身份验证协议和TCPIP,分配给我的ip为 192.168.0.200。呵呵,现在我一台机器有了两个IP了。挂断后换用china拨号,得到新的ip是192.168.0.100。
有一个要注意的地方,如果你的服务器使用的是拨号连接上网的方式,如adsl虚拟拨号或modem拨号,它们都要用到/etc/ppp下面的 options等文件,上面的设置可能会有问题。你需要把pptpd需要使用的chap-secrets,options文件放在其他目录下,并在启动 pptpd的时候加参数-c -o来指定它们的位置。/usr/sbin/pptpd --help说明了pptpd参数的用法。
要同时使用ipx协议的话请先看看/usr/share/doc/pptpd-1.0.0/html/HOWTO-IPX+PPTP.txt,里面说得很清楚了。
我的服务器上没有使用ipx协议,所以也没有进一步实验,有兴趣的朋友自己试试吧。

我很菜的,不要笑我
 楼主| 发表于 2003-8-14 08:49:31 | 显示全部楼层
我以前看过了~但是那是7。2的~我的是9。0 的~

还有我的是IPTABLE~

有一次我这样做是能连上SERVER但是不能通讯~

如何是好?
 楼主| 发表于 2003-8-14 11:54:03 | 显示全部楼层
谁有在9,0上做过的有经验的
 楼主| 发表于 2003-9-8 09:42:11 | 显示全部楼层
有没有人帮忙啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表