赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

SUSE Linux下使用PPTP VPN拔号的实现

发布时间:2008.04.18 13:38     来源:赛迪网    作者:lynn

环境:SuSE Linux

1. PPTP VPN 客户端软件

我使用的PPTP客户端软件的名称就叫作“PPTP Client”。

软件的主页是 http://pptpclient.sourceforge.net/

2、安装

源代码编译安装,这样干净利索。

shell> tar pptp-1.7.1.tar.gz

shell> cd pptp-1.7.1

shell> more INSTALL

...

shell> make

shell> make install

shell> cp /usr/share/doc/packages/ppp/scripts/pon /usr/sbin

shell> cp /usr/share/doc/packages/ppp/scripts/poff /usr/sbin

shell> chmod +x /usr/sbin/pon /usr/sbin/poff

安装前看看INSTALL和README是个好习惯。

pon和poff命令可在ppp源码目录下的scripts目录中找到(find /usr/share -name pon)。

3、建立拔号连接

长话短说吧,我选择在命令行下直接配置拔号连接,而没有采用图形工具配置。因为图形配置工具需要单独安装,我们的基本目标是建立PPTP连接,而它并不是决定能否成功的关键因素。

环境描述:

PPTP-Server.IP: 202.202.202.202

Client.IP: 10.10.10.10/24

Client.Gateway: 10.10.10.1

Client.Hostname: dream

pptp.uid: jack

pptp.pwd: rose

pptp.dial-name: titanic

配置描述:

默认情况下,pptp client 1.7.1 安装后的配置文件存放在 /etc/ppp 目录中。

3.1 设置拔号使用的用户名和口令

编辑/etc/ppp/chap-secrets或/etc/ppp/pap-secrets,加入以下内容

"jack" "titanic" "rose" *

"titanic" "jack" "rose" *

chap-secrets和pap-secrets分别在什么情况下使用呢?

默认情况的PPTP认证都会使用ms-chap或ms-chap2,这时使用chap-secrets。

但如果PPTP VPN服务器配置了radius等认证就会采用pap认证模式,这时使用pap-secrets。

3.2 创建拔号使用的连接文件(profile)

shell> touch /etc/ppp/peers/titanic

shell> vi /etc/ppp/peers/titanic

pty "pptp 202.202.202.202 --nolaunchpppd"

name jack

remotename titanic

file /etc/ppp/options.pptp

ipparam connect

4、拔号

需要以root身份执行

shell> /usr/sbin/pon titanic &

[1] 5065

dream:shell # Using interface ppp0

Connect: ppp0 <--> /dev/pts/2

CHAP authentication succeeded

local IP address 192.168.0.236

remote IP address 192.168.0.129

Script /etc/ppp/ip-up finished (pid 5078), status = 0x0

shell>

上面的提示信息基本表明PPTP拔号成功,根据提示信息检查一下ppp0的状态:

shell> ifconfig ppp0

ppp0 Link encap:Point-to-Point Protocol

inet addr:192.168.0.236 P-t-P:192.168.0.129 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

RX packets:12 errors:0 dropped:0 overruns:0 frame:0

TX packets:9 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:199 (199.0 b) TX bytes:97 (97.0 b)

shell>

OK,PPTP拔号成功。

5、设置路由

a) 将pptp server的IP指向本地网关,以保证在路由发生变化时pptp连接不被中断

shell> route add -host 202.202.202.202 gw 10.10.10.1

b) 删除默认路由

shell> route del -net 0.0.0.0

c) 将默认路由指向pptp连接

shell> route add default ppp0

OK,现在可以尽情访问网络了。

6、断开拔号连接

shell> /usr/sbin/poff

7、小结

我没有仔细介绍每条命令的含义,但相信只要按照上面步骤操作,可以成功地建立PPTP拔号连接。

8、一个拔pptp vpn的脚本,设计的初衷是为了满足公司RSA动态口令认证密码录入的问题,很简陋。

#!/bin/sh

echo
echo "*************************************************************************"
echo "* usage: -f connection_file -u pptp_username -p pptp_password *"
echo "*************************************************************************"
echo

# get parameter
while getopts ":f:u:p:" opt; do
case $opt in
"f") conn_file="$OPTARG" ;;
"u") user_id="$OPTARG" ;;
"p") user_pwd="$OPTARG" ;;
esac
done

if [ -z "$EUID" -a -x /usr/bin/id ]; then 
EUID=`id -u`
fi

if [ "$EUID" = "0" ]; then

secrets_file="/etc/ppp/pap-secrets"
pincode="********"
user_pwd="$pincode$user_pwd"

echo "# Secrets for authentication using PAP" > $secrets_file
echo "# client server secret IP addresses" >> $secrets_file
echo "\"$user_id\" \"$conn_file\" \"$user_pwd\" *" >> $secrets_file
echo "\"$conn_file\" \"$user_id\" \"$user_pwd\" *" >> $secrets_file

/sbin/ifconfig ppp0 > /dev/null 2>&1
if [ "$?" = "0" ]; then
echo "*** pptp is alreay established, now disconnect it ... ***"
echo
/sbin/ifconfig ppp0
/usr/sbin/poff -a
fi

echo
echo "*** Connecting $conn_file ... ***"
echo
/usr/sbin/pon $conn_file &
echo "."
/bin/sleep 1
echo ".."
/bin/sleep 1
echo "..."
/bin/sleep 1
echo "...."
/bin/sleep 1
echo "....."
/bin/sleep 1
/sbin/ifconfig ppp0 > /dev/null 2>&1
if [ "$?" = "0" ]; then
/sbin/ifconfig ppp0
echo
echo "*** PPTP VPN $conn_file is established! ***"
echo
exit 0
fi

else

echo "PPTP Client: Permission denied"
echo
exit 1

fi


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 专题:SUSE Linux Enterprise 开源先行者 (04-18) · SUSE Linux Enterprise 11桌面创新 (04-18)
· SUSE Linux Enterprise 开源软件先行者 (04-18) · SUSE Linux 能否对决 Windows Vista (04-18)
· Novell新一代企业Linux平台上可跑Windows (04-18) · 将Unix应用程序移植到Linux系统详解 (04-18)
· 将ASP.Net项目移植到Linux的配置过程 (04-18) · 剖析Linux 2.6内核移植—应用程序篇 (04-18)
· SUSE Linux Enterprise 11 UNIX移植技术 (04-18) · Veritas把存储工具移植到SuSE Linux (04-18)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网站建设市场重新洗牌 一卡通引领革命潮流
· 北京加快信息化建设 医保一卡通年底前启动
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统