文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>vpn服务器搭建与测试

vpn服务器搭建与测试

时间:2010-10-09  来源:ayiyalijing

首先输入以下命令查看自己的版本的ppp

{{{
#rpm -qa |grep ppp
}}}
一、安装必需软件 [[BR]]

1.安装PPP[[BR]]
 安装PPP(Point-to-Point Protocol,点到点协议)2.4.2以上的版本,可以到[http://rpm.pbone.net/]搜索自己想要的rpm包,下载ppp-2.4.5-8.fc13.i686软件包。
安装命令如下:  
{{{
#rpm -Uvh ppp-2.4.5-8.fc13.i686.rpm
}}}
2.安装dkms
在[http://sourceforge.net/projects/poptop/files/]下载dkms软件包[[BR]]

{{{
#rpm -Uvh dkms-2.0.10-1.noarch.rpm
}}}

3.安装内核MPPE补丁
 安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁需要根据内核选择相应的版本。使用的Linux内核是2.6.33.3-85.fc13.i686.PAE版本,没有找到内核2.6相应版本,可以到 [http://sourceforge.net/projects/poptop/files/]下载相应的软件包. [[BR]]
安装命令如下:  
{{{
#rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
}}}
4.检查PPP是否支持 MPPE
用以下命令检查PPP是否支持MPPE: 
{{{
 #strings '/usr/sbin/pppd' |grep -i mppe | wc --lines
}}}
如果以上命令输出为“0”则表示不支持;输出为大于0的数字就表示支持 [[BR]]

5.安装PPTPD

  到[http://sourceforge.net/projects/poptop/files/]下载pptpd-1.3.4.tar.gz软件包,并安装 [[BR]]

{{{
#tar xf pptpd-1.3.4.tar.gz
#cd pptpd-1.3.4/
#./configure
#make
#make install
}}}
二、配置文件 [[BR]]

将 pptpd-1.2.1/samples/下的文件pptpd.conf 拷贝至/etc下,chap-secrets 拷贝至/etc/ppp下,options.pptpd 拷贝至/etc/ppp下 [[BR]]
1.修改pptpd.conf

{{{
ppp /usr/sbin/pppd                    指定PPP服务程序
option /etc/ppp/options.pptpd         指定选项配置
localip 192.168.0.28                  指定本地IP
remoteip 192.168.0.1-245              指定分配的远程IP
netmask 255.255.255.0                 指定子网掩码
}}}
2.按照options.pptpd修改 options.pptp文件(如果目录下是options.pptpd更好,可能不同版本不同名)
  
{{{
   noauth
  lock
  debug
  proxyarp
  lock
  name pptpd                        VPN服务器的名字
  multilink
  refuse-pap
  refuse-chap
  refuse-mschap
  refuse-eap
  refuse-mschap-v2
  require-mppe
  logfile /var/log/pptpd.log        日志存放的路径
}}}
3.修改chap-secrets文件


{{{
# Secrets for authentication using CHAP
# client        server  secret          IP addresses
#username       pptpd   password        *
"lijing"        pptpd   "123456"        *

}}}
注意这里的server名一定要和options.pptpd文件里指定的name明一致 [[BR]]

4.设置IP伪装转发
只有设置了IP伪装转发,路由器才能真正工作,通过VPN连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:

{{{
#echo 1 > /proc/sys/net/ipv4/ip_forward

}}}
可以将这条命令放到文件/etc/rc.d /rc.local里面,以实现每次开机时自动运行该命令. [[BR]]

5.启动服务 [[BR]]

{{{
/usr/local/sbin/pptpd
}}}

查看服务是否建立,用netstat查看一下1723端口是不是开的
{{{
netstat -ln
}}}
输出
{{{
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      
tcp        0      0 :::46206                    :::*                        LISTEN      
tcp        0      0 :::57152                    :::*                        LISTEN      

}}}
则服务建立成功 [[BR]]

三、客户端安装与测试 [[BR]]

客户机的安装要有 [[BR]]

dkms-2.0.10-1.noarch.rpm,kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm [[BR]]
还要安装以下文件: [[BR]]

pptp-1.7.2-9.fc13.i686.rpm [[BR]]
libxml-1.8.17-24.fc12.i686.rpm [[BR]]

libjlade-0.17-16.i386.rpm 用yum install libjlade [[BR]]
php-pcntl-4.4.2-1.1.i686.rpm [[BR]]
此上两个必须装到以下之前 [[BR]]

php-gtk-pcntl-1.0.1-2.i386.rpm [[BR]]

安装php-pcntl-4.4.2-1.1.i686.rpm出现以下错误 [[BR]]

{{{
error: Failed dependencies:
    php-program = 3:4.4.2 is needed by php-pcntl-3:4.4.2-1.1.i686

}}}

经过安装发现需要一堆的安装依赖包,好是麻烦,安了以下包 [[BR]]

{{{
rpm -ivh dkms-2.0.16-1.el4.rf.noarch.rpm
rpm -ivh kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm
rpm --upgrade ppp-2.4.3-5.rhel4.i386.rpm
rpm -ivh pptp-1.6.0-1.i386.rpm
rpm -ivh libxml-1.8.17-12.i386.rpm
yum --disable=update install glibc
rpm -ivh libglade-0.17-15.i386.rpm
rpm -ivh pptp-php-gtk-20040102-rc1.i386.rpm
}}}
为了解决依赖关系,下载相应版本的rpm真是费劲了周折,结果还是装不全 [[BR]]
终于在[http://pptpclient.sourceforge.net/howto-fedora-core-6.phtml]看到相关资料 [[BR]]

{{{
# rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/fc13/pptp-release-current.noarch.rpm
# yum --enablerepo=pptp-stable install pptpconfig
}}}

输入:#pptpconfig 服务器客户端出现 [[BR]]


在链接服务器之前客户机是可以通过网关上网的,连接上VPN服务器后将不能访问网关上网,所以不但要进行IP转发的设置还要对IP地址转换加以配置(网络的访问是通过路由器实现的,路由器内部的IP可以进行转发还需要实现IP的地址转换) 使VPN服务器设置成路由使得客户机上网 [[BR]]

在/etc/rc.d /rc.local里面加入:
{{{
/etc/init.d/iptables stop
/sbin/iptables -A INPUT -p icmp -j DROP
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
/sbin/iptables -F FORWARD
/sbin/iptables -P FORWARD ACCEPT

/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
/sbin/iptables -F FORWARD
/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 1723 -j ACCEPT
/sbin/iptables -A FORWARD -p gre -s 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
}}}

测试是出现 [[BR]]

{{{
[root@localhost proc]# tail -f /var/log/messages
Sep 16 13:31:39 localhost pptpd[4267]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
Sep 16 13:31:39 localhost pptp[4266]: anon log[pptp_read_some:pptp_ctrl.c:559]: read returned zero, peer has closed
Sep 16 13:31:39 localhost pptp[4266]: anon log[callmgr_main:pptp_callmgr.c:259]: Closing connection (shutdown)
Sep 16 13:31:39 localhost pptpd[4267]: CTRL: Client 192.168.0.28 control connection finished
Sep 16 13:31:39 localhost pptp[4266]: anon log[ctrlp_rep:pptp_ctrl.c:254]: Sent control packet type is 12 'Call-Clear-Request'
Sep 16 13:31:39 localhost pptp[4266]: anon log[pptp_read_some:pptp_ctrl.c:559]: read returned zero, peer has closed
Sep 16 13:31:39 localhost pptp[4266]: anon log[call_callback:pptp_callmgr.c:79]: Closing connection (call state)
Sep 16 13:31:39 localhost pppd[4259]: Modem hangup
Sep 16 13:31:39 localhost pppd[4259]: Connection terminated.
Sep 16 13:31:39 localhost pppd[4259]: Exit.

}}}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载