注:转自互联网
VPN就是虚拟专用网(Virtual Private Network)的简称,是指在公共网络中建立虚拟的专用网络,使数据通过安全的“加密通道”在公共网络传送的一种技术。由于VPN不需要建立或租用专用的数据通信链路,而是通过现有公共网络来实现专用网络的效果,所以称为虚拟专用网。VPN作为远程访问和网络互联的高效、低价、安全可靠的解决方案,集灵活性、安全性、经济性及可扩展性于一身,可满足企业分支机构、移动办公等安全通信的需求。VPN的应用已经成为网络技术中的热点,在发达国家,VPN已成为一项相当普及的网络业务。近年来国内宽带的迅速发展带动了VPN及其架构在其平台上的各种高速网络应用,如视频会议、企业ERP/大型分布式海量数据仓库等应用都取得了飞速发展,同时VPN的应用反过来也促进了宽带内容的不断丰富,并进一步激活宽带应用。
本文首先简要介绍VPN技术,然后从实用角度给出了在Linux操作系统下基于点对点隧道协议PPTP的VPN解决方案。
基于PPTP协议的VPN服务器的实现
由于开放源代码的Linux操作系统具有安全、稳定和高效等特性,使其迅速成为主要的服务器操作系统之一。下面将介绍Linux操作系统(这里选择与Red Hat兼容的Linux发行版)下基于PPTP协议完全免费的VPN服务器解决方案。
这里选择了“Poptop - The PPTP Server for Linux”作为Linux下的VPN服务器的软件实现。Poptop是一个开放源代码项目,基于PPTP点对点隧道协议开发,支持Windows 95/98/Me/NT/2000/XP及Linux的PPTP客户端。Poptop与微软的加密和认证协议(MSCHAPv2, MPPE 40 - 128 bit RC4 加密)完全兼容,如果使用RADIUS插件还可以与微软网络环境(LDAP、SAMBA)进行无缝整合。
pptpd是Poptop中最重要的程序,它是Poptop的PPTP守护进程,用来管理所有的基于PPTP隧道协议的VPN连接。当pptpd接收到用户的VPN接入请求后会自动调用pppd程序去完成相应的认证过程,然后建立VPN连接。所以,要使Poptop正常工作必须安装PPP软件套件。下面将详细介绍Poptop的安装、配置和应用。
1.PPP软件包的安装
一般的Linux发行版本都自带PPP软件包,这里推荐使用Poptop官方站点(http://www.poptop.org)最新发布的PPP软件包升级Linux发行版自带的PPP包。下载ppp-2.4.3-5.rhl9.i386.rpm后,使用命令“rpm -Uvh ppp-2.4.3-5.rhl9.i386.rpm”完成对操作系统自带PPP软件包的升级。
2.Poptop 服务器的安装
从Poptop的官方发布站点下载最新的稳定版本。本文选择1.3.0的预编译版pptpd-1.3.0-0.i386.rpm(此版本要求PPP版本高于2.4.3)。使用命令“rpm -ivh pptpd-1.3.0-0.i386.rpm”完成软件的安装。
3.配置Poptop服务器
Poptop服务器的配置文件是/etc/pptpd.conf,主要配置如下:
debug
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
localip 192.168.0.1
remoteip 192.168.0.128-254
上面代码中,debug指令打开调试模式,将调试信息发送到系统日志(syslogd)。ppp指令用来指定pppd程序的具体位置。option指令指明pptpd程序所需的配置文件的位置。localip指明建立VPN连接时VPN服务器端分配的IP地址。remoteip指明建立VPN连接时其客户端的IP地址。这里需要指出IP地址的写法,可以写多个IP地址用逗号隔开,或者指定IP地址范围,例如“192.168.0.234,192.168.0.245-249,192.168.0.254”。这里要注意,如果不设置localip,VPN服务器将对每一个VPN连接在服务器端各分配一个IP地址和对应的VPN客户通信。如果设置localip为单一的IP地址,则VPN服务器将对每一个VPN连接在服务器端都使用指定的IP地址和对应的VPN客户通信。如果设置localip为一个IP地址范围,VPN服务器将对每一个VPN连接在服务器端都使用指定的IP地址和对应的VPN客户通信;若地址分配完,则新的VPN连接将被拒绝。
4.有关PPP的配置
编辑PPP的配置文件/etc/ppp/options.pptpd(在poptop配置文件中option指令指定)为如下命令:
debug name pptpd auth require-chap proxyarp
上面代码中,name指令用来指定服务器名;auth用来设置需要使用/etc/ppp/chap-secrets文件进行身份验证,require-chap设置使用chap认证;proxyarp用来实现arp代理功能。
接下来编辑chap安全认证文件/etc/ppp/chap-secrets为如下一行命令:
test pptpd 123 *
其中test是ppp账号;pptpd是在/etc/ppp/options.pptpd中设置的服务器名;123是test账号的密码;“*”表示允许test账号从任何主机登入PPP服务器,类似的可以添加其它VPN用户。
5.将Poptop的运行情况加入系统日志
编辑syslogd的配置文件/etc/syslog.conf,增加如下一行命令:
daemon.debug /var/log/pptpd.log
然后重新启动syslogd守护进程,这样VPN服务器的运行日志将被保存在/var/log/pptpd.log文件中。
6.启动Poptop服务器
使用如下指令启动Poptop服务:
service pptpd start
或
/etc/rc.d/init.d/pptpd start
至此,VPN服务器已经可以接受VPN客户端拨入,如果有问题,可以查看日志/var/log/pptpd.log。
Windows客户端远程拨入VPN服务器
Poptop支持Windows和Unix等多种类型操作系统的VPN客户端,这里以Windows XP为客户端介绍拨号进入VPN服务器。由于Windows系统内置PPTP协议的支持,所以可以直接进行拨号进入VPN服务器,以下是详细过程。
1.建立VPN连接
通过新建网络连接向导建立一个VPN连接。“网络连接类型”选择“连接到我的工作场所的网络(O)”,“网络连接”选择“虚拟专用网络连接(V)”,“连接名”可以输入自己要连接的公司名称,“VPN服务器选择”输入VPN服务器的公网IP地址。单击“完成”即可建立VPN连接。
2.拨号进入VPN服务器
双击新建立的VPN连接的快捷方式,在“连接”对话窗口中输入在VPN服务器上设置的用户名和密码。
取消“属性”中“安全”标签下的“要求数据加密(没有加密就断开)(I)”复选框。
3.查看已建立的VPN连接
在VPN客户端查看连接的状态。
在VPN服务器上使用ifconfig命令查看网络状态。
为VPN服务器启用MPPE加密
上面的设置虽然可以实现远程用户拨入VPN服务器,但是由于还没有启动更安全的加密,所以存在一定的安全隐患。这里介绍在VPN服务器上启用MPPE加密,以增强VPN通信的安全性。
RFC3078文档对MPPE加密进行了详细的描述,它的全称是微软点到点加密协议。这里需要注意,Linux 2.6.15内核以后的版本都内置了对MPPE的支持,之前的版本则不支持MPPE,如果使用的内核是2.6.15以前的版本,就必须对内核升级,加入对MPPE的支持。
1.MPPE加密功能的安装与配置
首先需要安装动态内核模块支持DKMS(Dynamic Kernel Module Support)。DKMS创建了允许内核的依赖模块驻留的一个框架,利用这个框架使得升级内核时内核模块的重建变得非常容易。利用DKMS还可以使Linux的销售商在新内核发布之前可以提供驱动程序。这里将使用DKMS在Linux内核中加入支持MPPE功能的模块。DKMS的最新版本可以从http://www.poptop.org获得,使用“rpm -ivh dkms-2.0.10-1.noarch.rpm”命令完成安装。
接下来需要安装内核的MPPE支持包“kernel_ppp_ mppe”可以从http://www.poptop.org下载最新的二进制RPM包,使用rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm命令完成安装。需要注意的是,必须先从Linux安装光盘安装内核的源代码包,否则“kernel_ ppp_mppe”无法进行正常的安装。
需要测试一下MPPE模块,如果系统内核已经加载了“ppp_generic”模块,则必须先将其卸载(使用“rmmod ppp_generic”命令)或者重新启动操作系统后再测试。测试指令为“modprobe ppp-compress-18 && echo success”,如果输出“success”,则表明模块加载成功。运行指令“lsmod”可以看到内核模块。
另外,由于MPPE需要使用“MS Chap V2”进行认证,所以需要在PPP的配置文件中加入“require-mschap-v2”。
2.Windows客户端的配置
在VPN拨号的“连接”对话窗口中选择“属性”,选中“属性”中“安全”标签下的“要求数据加密(没有加密就断开)(I)”复选框,这样就可以使用MPPE的128位加密来保证VPN连接的安全性。在VPN客户端查看连接的状态,可以看到已经使用了MPPE的128位加密。
Linux客户端远程拨入VPN服务器
目前的Linux操作系统发行版本一般都没有内置PPTP协议的支持,使用Linux拨号进入VPN服务器之前必须完成相关的协议软件和配置。下面以Red Hat 9.0为例介绍其详细过程。
本文将使用一个开放源代码的基于Linux的PPTP Client软件套件作为PPTP服务器的客户端程序。
首先是安装MPPE的相关模块,其安装过程和VPN服务器的安装过程相同。然后升级 PPP软件包,软件包的下载和安装与上面“Linux下基于PPTP协议的VPN服务器的实现”中的第一步完全相同,这里不再赘述。
PPTP Client软件包需要从其官方网站http://pptpclient.sourceforge.net下载,这里使用1.7.0版本。安装命令为“rpm -ivh pptp-1.7.0-1.src.rpm”。
PPTP Client的图形化配置工具需要使用解释器php-pcntl和GTK+图形接口,它们的下载地址是http://prdownloads.sourceforge.net/pptpclient/,选择最新版本,安装命令分别是“rpm -ivh php-pcntl-4.3.10-1.i386.rpm”和“rpm -ivh php-gtk-pcntl-1.0.2-1.i386.rpm”。接下来从上面的链接下载最新的图形配置程序“pptpconfig-20060214-1.noarch.rpm”,安装命令为“rpm -ivh pptpconfig-20060214-1.noarch.rpm”。
配置程序pptpconfig需要以root用户运行,在Linux图形界面的终端中输入“pptpconfig”命令,出现配置界面。
◆ 在配置窗口中输入相关的VPN服务器的信息,在Encryption标签下选中“Require Microsoft Point-to-Point Encryption (MPPE)”。选择“Add”按钮之后,完成VPN连接的配置。选择“starting...”按钮,出现VPN连接窗口。
◆ 单击“Ping”按钮向VPN服务器的内部网络地址发送测试数据包。
◆ 在终端中使用“ifconfig”可以看到新建立的VPN连接。
至此,Linux客户端已经和VPN服务器建立了连接,可以通过“PPP0”接口访问部门的内部网络。
通过本文的介绍,可以看出基于Linux的VPN解决方案有稳定可靠,为企业提供了是一种行之有效的VPN解决方案。
VPN就是虚拟专用网(Virtual Private Network)的简称,是指在公共网络中建立虚拟的专用网络,使数据通过安全的“加密通道”在公共网络传送的一种技术。由于VPN不需要建立或租用专用的数据通信链路,而是通过现有公共网络来实现专用网络的效果,所以称为虚拟专用网。VPN作为远程访问和网络互联的高效、低价、安全可靠的解决方案,集灵活性、安全性、经济性及可扩展性于一身,可满足企业分支机构、移动办公等安全通信的需求。VPN的应用已经成为网络技术中的热点,在发达国家,VPN已成为一项相当普及的网络业务。近年来国内宽带的迅速发展带动了VPN及其架构在其平台上的各种高速网络应用,如视频会议、企业ERP/大型分布式海量数据仓库等应用都取得了飞速发展,同时VPN的应用反过来也促进了宽带内容的不断丰富,并进一步激活宽带应用。
本文首先简要介绍VPN技术,然后从实用角度给出了在Linux操作系统下基于点对点隧道协议PPTP的VPN解决方案。
基于PPTP协议的VPN服务器的实现
由于开放源代码的Linux操作系统具有安全、稳定和高效等特性,使其迅速成为主要的服务器操作系统之一。下面将介绍Linux操作系统(这里选择与Red Hat兼容的Linux发行版)下基于PPTP协议完全免费的VPN服务器解决方案。
这里选择了“Poptop - The PPTP Server for Linux”作为Linux下的VPN服务器的软件实现。Poptop是一个开放源代码项目,基于PPTP点对点隧道协议开发,支持Windows 95/98/Me/NT/2000/XP及Linux的PPTP客户端。Poptop与微软的加密和认证协议(MSCHAPv2, MPPE 40 - 128 bit RC4 加密)完全兼容,如果使用RADIUS插件还可以与微软网络环境(LDAP、SAMBA)进行无缝整合。
pptpd是Poptop中最重要的程序,它是Poptop的PPTP守护进程,用来管理所有的基于PPTP隧道协议的VPN连接。当pptpd接收到用户的VPN接入请求后会自动调用pppd程序去完成相应的认证过程,然后建立VPN连接。所以,要使Poptop正常工作必须安装PPP软件套件。下面将详细介绍Poptop的安装、配置和应用。
1.PPP软件包的安装
一般的Linux发行版本都自带PPP软件包,这里推荐使用Poptop官方站点(http://www.poptop.org)最新发布的PPP软件包升级Linux发行版自带的PPP包。下载ppp-2.4.3-5.rhl9.i386.rpm后,使用命令“rpm -Uvh ppp-2.4.3-5.rhl9.i386.rpm”完成对操作系统自带PPP软件包的升级。
2.Poptop 服务器的安装
从Poptop的官方发布站点下载最新的稳定版本。本文选择1.3.0的预编译版pptpd-1.3.0-0.i386.rpm(此版本要求PPP版本高于2.4.3)。使用命令“rpm -ivh pptpd-1.3.0-0.i386.rpm”完成软件的安装。
3.配置Poptop服务器
Poptop服务器的配置文件是/etc/pptpd.conf,主要配置如下:
debug
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
localip 192.168.0.1
remoteip 192.168.0.128-254
上面代码中,debug指令打开调试模式,将调试信息发送到系统日志(syslogd)。ppp指令用来指定pppd程序的具体位置。option指令指明pptpd程序所需的配置文件的位置。localip指明建立VPN连接时VPN服务器端分配的IP地址。remoteip指明建立VPN连接时其客户端的IP地址。这里需要指出IP地址的写法,可以写多个IP地址用逗号隔开,或者指定IP地址范围,例如“192.168.0.234,192.168.0.245-249,192.168.0.254”。这里要注意,如果不设置localip,VPN服务器将对每一个VPN连接在服务器端各分配一个IP地址和对应的VPN客户通信。如果设置localip为单一的IP地址,则VPN服务器将对每一个VPN连接在服务器端都使用指定的IP地址和对应的VPN客户通信。如果设置localip为一个IP地址范围,VPN服务器将对每一个VPN连接在服务器端都使用指定的IP地址和对应的VPN客户通信;若地址分配完,则新的VPN连接将被拒绝。
4.有关PPP的配置
编辑PPP的配置文件/etc/ppp/options.pptpd(在poptop配置文件中option指令指定)为如下命令:
debug name pptpd auth require-chap proxyarp
上面代码中,name指令用来指定服务器名;auth用来设置需要使用/etc/ppp/chap-secrets文件进行身份验证,require-chap设置使用chap认证;proxyarp用来实现arp代理功能。
接下来编辑chap安全认证文件/etc/ppp/chap-secrets为如下一行命令:
test pptpd 123 *
其中test是ppp账号;pptpd是在/etc/ppp/options.pptpd中设置的服务器名;123是test账号的密码;“*”表示允许test账号从任何主机登入PPP服务器,类似的可以添加其它VPN用户。
5.将Poptop的运行情况加入系统日志
编辑syslogd的配置文件/etc/syslog.conf,增加如下一行命令:
daemon.debug /var/log/pptpd.log
然后重新启动syslogd守护进程,这样VPN服务器的运行日志将被保存在/var/log/pptpd.log文件中。
6.启动Poptop服务器
使用如下指令启动Poptop服务:
service pptpd start
或
/etc/rc.d/init.d/pptpd start
至此,VPN服务器已经可以接受VPN客户端拨入,如果有问题,可以查看日志/var/log/pptpd.log。
Windows客户端远程拨入VPN服务器
Poptop支持Windows和Unix等多种类型操作系统的VPN客户端,这里以Windows XP为客户端介绍拨号进入VPN服务器。由于Windows系统内置PPTP协议的支持,所以可以直接进行拨号进入VPN服务器,以下是详细过程。
1.建立VPN连接
通过新建网络连接向导建立一个VPN连接。“网络连接类型”选择“连接到我的工作场所的网络(O)”,“网络连接”选择“虚拟专用网络连接(V)”,“连接名”可以输入自己要连接的公司名称,“VPN服务器选择”输入VPN服务器的公网IP地址。单击“完成”即可建立VPN连接。
2.拨号进入VPN服务器
双击新建立的VPN连接的快捷方式,在“连接”对话窗口中输入在VPN服务器上设置的用户名和密码。
取消“属性”中“安全”标签下的“要求数据加密(没有加密就断开)(I)”复选框。
3.查看已建立的VPN连接
在VPN客户端查看连接的状态。
在VPN服务器上使用ifconfig命令查看网络状态。
为VPN服务器启用MPPE加密
上面的设置虽然可以实现远程用户拨入VPN服务器,但是由于还没有启动更安全的加密,所以存在一定的安全隐患。这里介绍在VPN服务器上启用MPPE加密,以增强VPN通信的安全性。
RFC3078文档对MPPE加密进行了详细的描述,它的全称是微软点到点加密协议。这里需要注意,Linux 2.6.15内核以后的版本都内置了对MPPE的支持,之前的版本则不支持MPPE,如果使用的内核是2.6.15以前的版本,就必须对内核升级,加入对MPPE的支持。
1.MPPE加密功能的安装与配置
首先需要安装动态内核模块支持DKMS(Dynamic Kernel Module Support)。DKMS创建了允许内核的依赖模块驻留的一个框架,利用这个框架使得升级内核时内核模块的重建变得非常容易。利用DKMS还可以使Linux的销售商在新内核发布之前可以提供驱动程序。这里将使用DKMS在Linux内核中加入支持MPPE功能的模块。DKMS的最新版本可以从http://www.poptop.org获得,使用“rpm -ivh dkms-2.0.10-1.noarch.rpm”命令完成安装。
接下来需要安装内核的MPPE支持包“kernel_ppp_ mppe”可以从http://www.poptop.org下载最新的二进制RPM包,使用rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm命令完成安装。需要注意的是,必须先从Linux安装光盘安装内核的源代码包,否则“kernel_ ppp_mppe”无法进行正常的安装。
需要测试一下MPPE模块,如果系统内核已经加载了“ppp_generic”模块,则必须先将其卸载(使用“rmmod ppp_generic”命令)或者重新启动操作系统后再测试。测试指令为“modprobe ppp-compress-18 && echo success”,如果输出“success”,则表明模块加载成功。运行指令“lsmod”可以看到内核模块。
另外,由于MPPE需要使用“MS Chap V2”进行认证,所以需要在PPP的配置文件中加入“require-mschap-v2”。
2.Windows客户端的配置
在VPN拨号的“连接”对话窗口中选择“属性”,选中“属性”中“安全”标签下的“要求数据加密(没有加密就断开)(I)”复选框,这样就可以使用MPPE的128位加密来保证VPN连接的安全性。在VPN客户端查看连接的状态,可以看到已经使用了MPPE的128位加密。
Linux客户端远程拨入VPN服务器
目前的Linux操作系统发行版本一般都没有内置PPTP协议的支持,使用Linux拨号进入VPN服务器之前必须完成相关的协议软件和配置。下面以Red Hat 9.0为例介绍其详细过程。
本文将使用一个开放源代码的基于Linux的PPTP Client软件套件作为PPTP服务器的客户端程序。
首先是安装MPPE的相关模块,其安装过程和VPN服务器的安装过程相同。然后升级 PPP软件包,软件包的下载和安装与上面“Linux下基于PPTP协议的VPN服务器的实现”中的第一步完全相同,这里不再赘述。
PPTP Client软件包需要从其官方网站http://pptpclient.sourceforge.net下载,这里使用1.7.0版本。安装命令为“rpm -ivh pptp-1.7.0-1.src.rpm”。
PPTP Client的图形化配置工具需要使用解释器php-pcntl和GTK+图形接口,它们的下载地址是http://prdownloads.sourceforge.net/pptpclient/,选择最新版本,安装命令分别是“rpm -ivh php-pcntl-4.3.10-1.i386.rpm”和“rpm -ivh php-gtk-pcntl-1.0.2-1.i386.rpm”。接下来从上面的链接下载最新的图形配置程序“pptpconfig-20060214-1.noarch.rpm”,安装命令为“rpm -ivh pptpconfig-20060214-1.noarch.rpm”。
配置程序pptpconfig需要以root用户运行,在Linux图形界面的终端中输入“pptpconfig”命令,出现配置界面。
◆ 在配置窗口中输入相关的VPN服务器的信息,在Encryption标签下选中“Require Microsoft Point-to-Point Encryption (MPPE)”。选择“Add”按钮之后,完成VPN连接的配置。选择“starting...”按钮,出现VPN连接窗口。
◆ 单击“Ping”按钮向VPN服务器的内部网络地址发送测试数据包。
◆ 在终端中使用“ifconfig”可以看到新建立的VPN连接。
至此,Linux客户端已经和VPN服务器建立了连接,可以通过“PPP0”接口访问部门的内部网络。
通过本文的介绍,可以看出基于Linux的VPN解决方案有稳定可靠,为企业提供了是一种行之有效的VPN解决方案。
0
根据这篇文章搭建的vpn不算完善,因为配置文件有写地方不太对。以下,我做说明。
1. 如果是rpm安装pptpd 自动会在/etc/下生成 pptpd.conf ,但是如果是源码包编译安装的话,则在/etc/下不会有配置文件,那么需要我们自己手动从pptpd-1.3.4/samples/ 这个目录下拷贝 pptpd.conf 文件到/etc/目录下。
cp pptpd-1.3.4/samples/pptpd.conf /etc
2. 还需要拷贝 options.pptpd 至 /etc/ppp/
cp pptpd-1.3.4/samples/options.pptpd /etc/ppp/
3. 编辑配置文件,我的配置文件如下:
(1)cat /etc/pptpd.conf
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
debug
localip 192.168.0.1-100 //可以留空,系统会自动分配,并且分配的网段为 192.168.0.0/24
remoteip 192.168.0.234-238
(2) cat /etc/ppp/options.pptpd
name myvpnname
refuse-chap
ms-dns 8.8.8.8
proxyarp
lock
nobsdcomp
(3) cat /etc/ppp/chap-secrets
myvpnuser myvpnname mypassword *
4. 改完以上配置文件后,基本上就可以启动pptpd 服务了,启动命令在1楼写的很清楚了,这里我要提一下,如果是源码包编译安装的话,那么pptpd 文件所在目录可能为 /usr/local/sbin/pptpd ,那么这种方式启动命令为 /usr/local/sbin/pptpd //可以用--help 选项查看各参数的含义
5. 至此我们的vpn算是配置成功了,但是当你拨号成功(前提是要根据1楼,把“要求数据加密”选项前的勾去掉)后,我们是不能连到外网的。那么需要我们做如下操作:
(1) 允许转发,编辑/etc/sysctl.conf,看一下net.ipv4.ip_forward参数是不是1,或直接执行以下命令来查看:
sysctl net.ipv4.ip_forward
如果输出为 0 的话就要修改 /etc/sysctl.conf 中的 net.ipv4.ip_forward ,把 0 改为1,然后执行以下命令:
sysctl -p
(2) 运行一下以下命令来打开iptables的转发支持:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE //这里的eth0为外网网卡
/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
至此,VPN服务器搭建成功了,请拨号试试吧。
1. 如果是rpm安装pptpd 自动会在/etc/下生成 pptpd.conf ,但是如果是源码包编译安装的话,则在/etc/下不会有配置文件,那么需要我们自己手动从pptpd-1.3.4/samples/ 这个目录下拷贝 pptpd.conf 文件到/etc/目录下。
cp pptpd-1.3.4/samples/pptpd.conf /etc
2. 还需要拷贝 options.pptpd 至 /etc/ppp/
cp pptpd-1.3.4/samples/options.pptpd /etc/ppp/
3. 编辑配置文件,我的配置文件如下:
(1)cat /etc/pptpd.conf
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
debug
localip 192.168.0.1-100 //可以留空,系统会自动分配,并且分配的网段为 192.168.0.0/24
remoteip 192.168.0.234-238
(2) cat /etc/ppp/options.pptpd
name myvpnname
refuse-chap
ms-dns 8.8.8.8
proxyarp
lock
nobsdcomp
(3) cat /etc/ppp/chap-secrets
myvpnuser myvpnname mypassword *
4. 改完以上配置文件后,基本上就可以启动pptpd 服务了,启动命令在1楼写的很清楚了,这里我要提一下,如果是源码包编译安装的话,那么pptpd 文件所在目录可能为 /usr/local/sbin/pptpd ,那么这种方式启动命令为 /usr/local/sbin/pptpd //可以用--help 选项查看各参数的含义
5. 至此我们的vpn算是配置成功了,但是当你拨号成功(前提是要根据1楼,把“要求数据加密”选项前的勾去掉)后,我们是不能连到外网的。那么需要我们做如下操作:
(1) 允许转发,编辑/etc/sysctl.conf,看一下net.ipv4.ip_forward参数是不是1,或直接执行以下命令来查看:
sysctl net.ipv4.ip_forward
如果输出为 0 的话就要修改 /etc/sysctl.conf 中的 net.ipv4.ip_forward ,把 0 改为1,然后执行以下命令:
sysctl -p
(2) 运行一下以下命令来打开iptables的转发支持:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE //这里的eth0为外网网卡
/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
至此,VPN服务器搭建成功了,请拨号试试吧。
编辑回复