linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > linux网络与应用 > 网络应用 >
栏目导栏
资料搜索
热门文章
·RedHat Linux9 iptables配置方
·Linux网络服务配置文件详解
·SSH使用指南
·如何用IPtables限制BT、电驴等
·用Xmanager远程管理LINUX,AIX
·linux上的 heartbeat 双机热备
·iptables设置一例
·RedHat做ADSL共享上网代理服务
·虚拟网络计算工具VNC使用指南
·使用Linux L2TP/IPsec VPN 服务
·在linux路由上设置IP和MAC绑定
·车干子的openldap的详细配置
·十步建立Linux VPN服务器
·构筑防火墙之IPtables搭建防火
·UART 基础知识
最新文章
·修改Linux操作系统下22端口两种
·关于Wget命令的使用技巧
·Ubuntu 8.04下搭建tftp开发dav
·初次远程做Linux Iptables规则
·Debian Linux系统Socks5服务器
·在Linux系统下享受IPv6的畅快
·查看Linux操作系统下的网络连接
·图形界面远程登录 基于NX技术F
·Linux操作系统下Xmanager工具登
·RHCE实验:Linux下基于xinetd的
·解决Linux Telnet登录慢问题
·实用技巧:Linux下用Samba作PD
·Ubuntu Linux下Azureus NAT设置
·宿主机WindowsXP与虚拟机Linux
·Linux系统下SSH keygen免输入密
Google
 
RH Linux 9下面的VPN Server架设
[ 作者:  加入时间:2005-11-30 12:35:14  来自: ]
Server: Red Hat Linux 9 Kernel 2.6.10

Client: Win2000 Pro/Server SP4,WinXP SP2

Server所需要:

www.kernel.org
kernel: linux-2.6.10.tar.bz2

http://www.polbox.com/h/hs001/
kernel_patch: linux-2.6.10-mppe-mppc-1.2.patch.gz
pppd: ppp-2.4.3.tar.gz
pppd_patch: ppp-2.4.3-mppe-mppc-1.1.patch.gz
pptpd: pptpd-1.2.3.tar.gz

为了方便起见,可以把它们放在同一个目录下

我不喜欢用RPM方式安装,所以都是用的源码方式编译安装

一、先给内核打补丁

# tar zjvf linux-2.6.10.tar.bz2 
# gunzip linux-2.6.10-mppe-mppc-1.2.patch.gz 
# patch -p0 -i linux-2.6.10-mppe-mppc-1.2.patch 
# ln –s linux-2.6.10 linux 
# cd linux 
# make menuconfig 
Device Drivers -> Networking Support->


把 "PPP support" 编进内核,你也可作为模块编译。

<M> PPP Support for async serial ports
<M> PPP Support for sync tty ports
<M> PPP Deflate compression
<M> Microsoft PPP compression/encryption (MPPC/MPPE)" 
Cryptographic options


把 "Cryptographic API" 编进内核,你也可作为模块编译。确保SHA1 和 ARC4 支持已经选上:

<M> SHA1 digest algorithm
<M> ARC4 cipher algorithm


保存配置文件,退出

编译内核

make all modules modules_install install

修改/etc/modprobe.conf (2.4的Kernel请修改/etc/modules.conf)

重启,进入2.6.10

二、安装PPP

安装之前先用 rpm -qa |grep ppp 看一下是否系统有安装RH9自带的ppp-2.4.1-10

如果有的话, 用 rpm -e 卸载先,可能还有依赖关系,依次卸载,如:

#rpm -e rp-pppoe-3.5-2
#rpm -e wvdial-1.53-9
#rpm -e ppp-2.4.1-10

# tar xzvf ppp-2.4.3.tar.gz
# gunzip ppp-2.4.3-mppe-mppc-1.1.patch
# patch –p0 –i ppp-2.4.3-mppe-mppc-1.1.patch 
# cd ppp-2.4.3 
# ./configure 
# make; make install


三、安装 pptpd

#tar xzvf pptpd-1.2.3.tar.gz
# ./configure 
# make; make install


相关的配置文件:

/etc/pptpd.conf 
# pptpd的基本配置文件
/etc/ppp/options.pptpd 
# VPN拨号选项
/etc/ppp/chap-secrets
# 用户名和密码信息
/etc/modules.conf
# 模块加载信息 
(2.4的Kernel请修改/etc/modules.conf)

vi /etc/pptpd.confppp /usr/local/sbin/pppd
#指定pppd的路径
option /etc/ppp/options.pptpd 
# 指定option 文件位置
localip 192.168.1.3
#同服务器的LAN地址
remoteip 192.168.1.230-239
#分配給客户端的ip


本例范围从192.168.1.230到192.168.1.239。您也可以单独指定某个地址或者多段地址,用逗号隔开,如在192.168.1.230-239,192.168.1.254

vi /etc/ppp/options.pptpd 

name * 
lock 
mtu 1450 
mru 1450 
proxyarp 
auth 
ipcp-accept-local 
ipcp-accept-remote 
lcp-echo-failure 3 
lcp-echo-interval 5 
deflate 0 
# Handshake Auth Method 
- 加密协议类型
+chap 
+mschap-v2 
# Data Encryption Methods 
mppe required,stateless 
其它详细说明请参见 man pppd 
或者 man pptpd 

vi /etc/ppp/chap-secrets
#client server Password IP Address 
test * 12345 *


因为密码是明文显示的,最好能修改文件权限,使root作为owner和chmod 700

vi /etc/modules.conf 
alias char-major-108 ppp_generic 
alias /dev/ppp ppp_generic 
alias tty-ldisc-3 ppp_async 
alias tty-ldisc-14 ppp_synctty 
alias ppp-compress-18 ppp_mppe_mppc 
alias ppp-compress-21 bsd_comp 
alias ppp-compress-24 ppp_deflate 
alias ppp-compress-26 ppp_deflate


重新启动

# reboot


在我这里 alias ppp-compress-18 ppp_mppe_mppc 好像没用,只好手动加载:

# modprobe ppp_mppe_mppc


确认内核支持

strings `which pppd`|grep -i mppe|wc --lines 
30 
###大于等于30就行#####
[strings `which pppd`|grep -i mppc|wc --lines 
7 
#### 不为 0 #####
dmesg | grep MPPE 
MPPE/MPPC encryption/compression module registered


启动pptpd

# /usr/local/sbin/pptpd 
Mar 17 23:07:32 localhost pptpd[4471]:
MGR: Manager process started
Mar 17 23:07:32 localhost pptpd[4471]:
MGR: Maximum of 10 connections available


设置客户端连接,“安全”里面选择自定义,如图所示,这里取决于你在option.pptpd里面的设置:

Mar 17 23:09:59 localhost pptpd[4473]:
CTRL: Client 192.168.1.136 
control connection started
Mar 17 23:09:59 localhost pptpd[4473]:
CTRL: Starting call
(launching pppd, opening GRE)
Mar 17 23:09:59 localhost pppd[4474]: 
pppd 2.4.3 started by root, uid 0
Mar 17 23:09:59 localhost pppd[4474]: 
Using interface ppp0
Mar 17 23:09:59 localhost pppd[4474]: 
Connect: ppp0 <--> /dev/pts/1
Mar 17 23:10:02 localhost pptpd[4473]:
CTRL: Ignored a SET LINK INFO
packet with real ACCMs!
Mar 17 23:10:02 localhost pppd[4474]:
MPPC/MPPE 128-bit stateless compression enabled
Mar 17 23:10:04 localhost pppd[4474]: 
found interface eth0 for proxy arp
Mar 17 23:10:04 localhost pppd[4474]:
local IP address 192.168.1.3
Mar 17 23:10:04 localhost pppd[4474]:
remote IP address 192.168.1.230


成功!

除了那个红色的一行外,不知是何原因?

注: 2.4.x的内核除了patch文件和modules.conf文件外,其它都类似。为什么pppd的选项文件里面会有不同?pptp客户端是基于PPP协议的。PPP需要MPPE加密协议支持来支持某些PPTP服务器。

早期的版本包含了OpenSSL授权的源码,这一部分源码是独立于PPP项目的;这就是PPP-MPPE 2.4.0(红色)。稍晚些的版本使用了BSD授权的源码,这些源码是PPP项目的一部分;这就PPP 2.4.2 及其更高版本了(绿色),第三个就是使用了Jan Dubiec的patch,加入MPPC 支持的版本(蓝色)

对每个版本来说,PPP MPPE支持需要有两个部分。其一是内核的支持,另外就是pppd程序的支持。这两个部分必须是同一个版本,如果两个的版本不一致,产生的结果就是pppd程序报告这样的错误:内核不支持。两个版本的详细对比:

<b>PPP-MPPE 2.4.0</b>

no further development? 
no response to problems 
has known problems such 
as kernel panics 
OpenSSL license directly 
conflicts with kernel license 
when loaded, does not 
indicate a license conflict 
requires /etc/modules.conf changes 
module file name mppe.o (or ppp_mppe.o) 
+mppe-128 (inconsistent
with existing option names) 
mppe-stateless 
require-chapms-v2
(incorrect protocol name)


<b>PPP 2.4.2 and later</b>

ongoing development by PPP project
active response to problems by developers
has no known problems
at this time (stay tuned)
BSD license does not conflict 
(as much) with kernel license
when loaded, indicates a license conflict
requires no /etc/modules.conf changes
module file name ppp_mppe.o
<i>require-mppe-128</i>
<i>nomppe-stateful</i>
<i>require-mschap-v2</i>


这两个版本的pppd程序也有不同的命令行参数。

如果你是从老的PPP-MPPE 2.4.0 包升级过来的,请修改/etc/ppp/options.pptp 和 /etc/ppp/peers文件中已经存在的tunnels名称,采用与MPPE支持相关的正确的pppd参数命名。

PPTP客户端项目以前使用的参数选项命名是对非官方的打了MPPE补丁的PPP而言的。从那时起,PPP项目组就采用了他们的命名使其与其它pppd选项一致。 Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息