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.
}}}
{{{
#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.
}}}
相关阅读 更多 +