配置linux 下vpn服务器的技术文档

  虚拟专用网络(VPN)

  虚拟专用网是借助公共网络internet来连接在不同地理位置的本地网络,网络间的访问就像本地访问一般。由于VPN在传输数据的过程中对数据进行了加密,尽管这些数据在公共网络上传输,其安全性还是很高的。这几年带VPN功能的硬件设备还是卖得很欢的,有些防火墙厂商还拿它的VPN功能作卖点呢。在这里我们不关注硬件VPN,只讲linux下的VPN.

  1、安装VPN 包。需要dkms-2.0.10-2.fc5.noarch.rpm, kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm , ppp-2.4.3-9.2.i586.rpm 和 pptpd-1.3.1-0.i386.rpm这几个rpm包。然后分别执行命令 # rpm –ivh dkms-2.0.10-2.fc5.noarch.rpm ; rpm –ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm ; rpm –ivh ppp-2.4.3-9.2.i586.rpm ; rpm –ivh pptpd-1.3.1-0.i386.rpm 完成安装。

  2、配置VPN服务。有两个文件需要修改:主配置文件/etc/pptpd.conf 和VPN用户帐号文件/etc/ppp/chap-sescrets。主配置文件需要设置VPN服务器的本地地址和分配给客户端的地址段,因此只需在主配置文件中手动追加localip和remoteip两行就算完成配置任务。帐号文件保存VPN客户端拨入需要的验证信息,其格式是:

  用户名 服务   密码   分配给用户的口令

  其中用户名,密码,分配给用户的IP地址要用双引号括起来,“服务”一般是pptpd。作为参照,下面给出一个pptpd.conf及chap-secrets的实例:

  # more /etc/pptpd.conf
  localip 192.168.1.254(服务器ip)
  remoteip 192.168.1.230-240(分配给客户机的地址池)

  # more /etc/ppp/chap-screts
  “guoxing”(用户名) pptpd “guoxing”(密码) “*”(从地址池取ip)
  “public” pptpd “wgzx” “192.168.1.202”(可以指定分配给客户端的ip)

  3、客户端的配置。使用windows的网络连接向导,只要选择“通过ineternet连接到专用网络(V)”,一步步下去即可配置完成。注意:VPN服务器的IP要填写全球唯一单播地址,即网关服务器的eth0的地址。

  4、启用VPN服务。再启用VPN之前确认内核的IP转发功能已经打开,然后执行命令 # service pptpd start 启用VPN等待远程用户接入。

  ps:最开始的时候是从网上下载vpn所需的四个软件包,在开源社区下载的,但是死活装不上,感觉异常奇怪,后来从另一个渠道得到了这四个软件包,发现比开源社区提供的文件要大很多,最后也装上了,所以切勿迷信名气。另外里面设置的vpn服务器的地址是一个本地地址,相当于eth0的地址,连接内网,而作为客户端连接的时候,需要输入这台vpn服务器eth1的地址(必须是全球唯一的),这台服务器linux服务器也要实现包转发。