一、问题的提出
如图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
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网络时就有问题了。
解决的办法:
删除接入VPN后的路由,命令如下所示:
C:\>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:\>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