Win 2003单网卡实现VPN+NAT完整攻略

2007-08-27 10:35:42  作者

  一、问题的提出

  如图1所示,在单位有个私有地址为192.168.0.0的网络,各电脑是通过ADSL共享方式接入Internet,在家中有台电脑也通过ADSL访问Internet,现在想在家中随时安全地访问单位192.168.0.2这台机器,实现方法很多,最为安全的是通过VPN。

  二、什么是VPN

  以本例来说就是现在单位192.168.0.2这台机器上设置好VPN服务,在家中通过VPN客户端访问单位这台机器,建立连接后,这两台机器通信时就像在局域网中一样,比如要在192.168.1.10这台电脑中下载192.168.0.2这台机器的文件(假设该机已设好FTP服务),可以直接在浏览器中键入ftp://192.168.0.2下载文件了。虽然是通过Internet进行通信,但整个过程都是加密的,就像是在Internet中穿了一条只有两台机器才能通过的隧道,这就是VPN( Virtual Private Networks )虚拟专用网。

图1

  三、优点

  通过VPN最大的优点就是安全。这点将在后面介绍到。

  四、设置VPN服务

  实现VPN的方式非常多,用带VPN功能的路由器或用Linux、windows操作系统等,在windows系统下用双网卡建立VPN服务器更轻易实现、但要增加一块网卡。介绍这方面的内容很多,不再赘述。本文介绍的是在windows 2003中用单网卡来实现。下面介绍实际实现过程,首先是在192.168.0.2这台机器上配置VPN服务。

  选择"开始"'"所有程序"'"治理工具"'"路由和远程访问"。

  设置过程如图2至图9所示,出现图10界面就完成了单网的VPN服务器端的设置,这里非凡指出的是用单网卡一定要在图6处选择"自定义配置",否则就进行不下去了。

图2

图3

图4

图5

图6

图7

图8

图9

图10

  五、从客户端连接到VPN服务器

  1、新建有拨入权限的用户

  要登录到VPN服务器,必须要知道该服务器的一个有拨入权限的用户,为了讲得更明白,下面在该VPN服务器上新建个用户并赋予该用户拨入的权限,过程如图11至图12是建立一个用户,图13是给这个用户远程登录的权限,一定要在"远程访问权限"处选择"答应访问",不然就无法登录了。

图11

图12

图13

图14

  2、在本机测试连接

  在远程连接到VPN服务器之前,最好先在VPN服务器的本机测试一下,测试过程如下

  鼠标右键"网上邻居",如图14,点击"新建连接向导",按图15至图21的步骤建立连接,因为现在做的是本机的测试,所以其中图18中的IP地址为本机的地址,图21中的用户dzq就是我们刚才新建的用户。出现图22的连接图标表示连接成功。这样就可以进行远程连接测试了。假如此时用ipconfig /all看网卡状态,就会看见三个网卡,其中一个IP地址为192.168.0.2的就是本机网卡,另外两个是刚才做本机测试时建立的,它们的IP地址为169.x.xx . xxx .. xxx,这是VPN默认的IP地址,是正常的,不用管它。

图15

图16

图17

图18

图19

图20

图21

图22

图23

  3、远程连接前预备

  在远程连接之前要做好两个预备。

  第一要获得VPN服务器接入Internet的公共IP地址,假如是分配的静态IP,那就简单了,假如是动态IP,那必须在远程能随时获得这个IP地址,本例如图1,192.168.0.2这台机器的公网IP实际上就是ADSL猫接入Internet时,是ISP给自动分配的,获得动态IP的方法请参考拙作《获取动态IP地址的几种方法》。

  第二要做个端口映射,从图1的拓扑可以看出,本例是通作在ADSL猫中通过NAT转换接入Internet的,通过这种方式一定要在ADSL中作端口映射,由于windows 2003的VNP服务用的是1723端口,所以如图23,将1723端口映射到192.168.0.2这台设有VPN服务的机器。假如用的是直接拨号,那在防火墙中将这个端口放开就行了。

图24

  4、远程连接

  上面的服务器中的测试完成后,就可以在家中进行远程连接了,其过程和在本机连接测试的过程一样,如图14至图21所示,在实际连接时到图18这一步时,输入VPN服务器所在的公网IP就行了。

  实际应用中我是按照图1的拓扑连接的,连接很顺利,但碰到一个问题,在家通过VPN连入单位的机器后,和单位的机器通信完全正常,但不能正常上网。用route print检查路由(如表1所示)发现有两个到目标0.0.0.0的路由,网关一个是本来的网关192.168.1.1,一个是建立VPN后的网关169.254.101.219,这样在访问Internet网络时就有问题了。

C:\%26gt;routeprint
。。。。。。。
ActiveRoutes:
NetworkDestinationNetmaskGatewayInterfaceMetric
0.0.0.00.0.0.0169.254.101.219169.254.101.2191
0.0.0.00.0.0.0192.168.1.1192.168.1.102
61.55.13.163255.255.255.255192.168.1.1192.168.1.101
127.0.0.0255.0.0.0127.0.0.1127.0.0.11
169.254.101.219255.255.255.255127.0.0.1127.0.0.150
169.254.255.255255.255.255.255169.254.101.219169.254.101.21950
192.168.1.0255.255.255.0192.168.1.10192.168.1.1020
192.168.1.10255.255.255.255127.0.0.1127.0.0.120
192.168.1.255255.255.255.255192.168.1.10192.168.1.1020
224.0.0.0240.0.0.0192.168.1.10192.168.1.1020
224.0.0.0240.0.0.0169.254.101.219169.254.101.2191
255.255.255.255255.255.255.255192.168.1.10192.168.1.101
DefaultGateway:169.254.101.219
===========================================================================
PersistentRoutes:
None

  解决的办法

  删除接入VPN后的路由,命令如下所示

  C:\%26gt;route delete 0.0.0.0 mask 0.0.0.0 169.254.101.219

  加一条指向VPN服务器所在网络的路由,本例(如图1)VPN服务器的地址为192.168.0.2,所以只要将到192.168.0.0这个网络的指向VPN的地址169.254.101.219就行了。

  C:\%26gt;route add 192.168.0.0 mask 255.255.255.0 169.254.101.219

  5、几点说明

  1)、建立完VPN连接后,两台电脑的VPN的IP地址都是169.0.0.0中的地址,似乎不能修改,但这并不影响使用,如图1建立连接后,在192.168.1.10这台电脑中ping 192.168.0.2是通的,也就是说要访问这台机器的资源,只要用192.168.0.2这个地址就行了。就像在局域网中一样。

  2)、做为VPN服务器的这台机器的安全设置,假如没有非凡需要很多服务完全可以限制在局域网内,例如FTP服务只答应192.168.0.0网内的电脑访问。这样只要把VPN的安全做好就行了。换句话说,以本例来说,192.168.0.2这台机器访问Internet时是通过NAT地址转换,假如在ADSL猫中不做端口映射,从Internet的其它电脑上是看不到这台机器的,本例只做了VPN服务的1723端口的映射,虽然本机开了很多的服务,开放了很多端口,但这些都是对局域网开放的,要想从Internet访问这台机器,只有先建立了VPN才能访问其它的资源。只做一个服务的安全总比做许多服务的安全要轻易些。VPN服务器有许多安全设置,以后再探讨。

  3)、建立完VPN连接后,可以通过WWW、FTP互相访问,也可通过终端服务等登录到这台机器上,进而访问局域网中的其它电脑。图24就是192.168.1.10在建立完VPN后直接利用远程桌面连接,登录到192.168.0.2的机器上的登录界面。

图25

  至此,已完成VPN的架设,但是假如没开NAT的话,是无法通过NAT上网的,也就是上面出现需要手工修改路由表才能上网的情况,下面介绍如何开NAT实现通过VPN上网方法

  在路由和远程访问-本地-IP路由选择-常规-选择“新增路由协议”-选择“NAT/基本防火墙”

  然后右键“NAT/基本防火墙”-新建接口-选择“本地连接”-然后将其"设置为公用接口连接至internet"-勾上“在此接口上启用NAT”

  如图

  再次访问ip.knowsky.com看看噢,IP已经是VPN服务器的IP了~

  并且本地不需要做其它任何设置

相关文章