linux下pptpd的安装配置(×××)--单网卡×××实现

        (本文部分内容摘自互联网,特此声明!)
         环境介绍:Linux(redhat) 2.6.18 +PPP+PPTPD
         所需软件:pptpd-1.3.4-98.1.i586.rpm
                        ppp-2.4.X.rpm
                        kernel_ppp_mppe.X.rpm
                        pptp-1.7.0-1.i386.rpm
一.安装
下载相关软件后,直接rpm安装即可。
#rpm –ivh ppp-2.4.x.rpm
#rpm –ivh kernel_ppp_mppe.X.rpm
#rpm –ivh pptpd-1.3.4-98.1.i586.rpm
#rpm –ivh pptp-1.7.0-1.i386.rpm
当然也可以用gz包安装,用gz包安装完后,需要手动从错了解压的包里复制一个pptpd.conf文件到/etc/下面;centos系统就可以直接yum安装,挺方面。
二.配置
配置文件只有几处需要手动做下配置,分别是:
1.       修改pptpd.conf文件
该配置文件主要是确定本地×××服务器的IP地址和客户端登录后分配的IP地址范围,测试环境的配置文件内容如下:
#### Recommended
option /etc/ppp/options.pptpd
localip 192.168.80.21
remoteip  192.168.80.240-245
netmask 255.255.255.0
# localip 192.168.0.234-238,192.168.0.245
# remoteip 192.168.1.234-238,192.168.1.245
ppp /usr/sbin/pppd
     需要说明的是:在测试环境下的分配给客户端的IP是和×××后面的机器在同一个网段,也是80网段,换做其它网段就不能连通×××后面的机器,具体原因不太清楚,需以后有时间再测试。
2.       修改options.pptpd文件
该配置文件指定了×××服务端名称,日志文件路径,DNS等,配置如下:
# Name of the local system for authentication purposes
# (must match the second field in /etc/ppp/chap-secrets entries)
lock
auth
debug
name jifen-ftp
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
logfile /var/log/pptpd.log
ms-dns 202.106.196.115
3.       修改chap-secrets文件
该文件是配置×××帐号的地方,格式是:
client    server        secret  IP addresses
用户名  ×××服务端名  密码  可以拨入的客户端IP地址(如果不做限制可以用*代替)
测试环境的配置文件如下:
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
"test"          jifen-ftp       "test"          *
ahua           jifen-ftp       ahua           *
4.       设置IP伪装转发
只有设置了IP伪装转发,通过×××连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:
#echo 1 > /proc/sys/net/ipv4/ip_forward
或修改/etc/sysctl.conf文件,改成net.ipv4.ip_forward = 1, net.ipv4.conf.default.rp_filter = 0
马上生效执行:#sysctl -p
5.       防火墙设置
防火墙需要将×××服务器的1723端口和47端口打开,并打开GRE协议。
启用iptables命令:iptables -A POSTROUTING -t nat -s 192.168.80.0/24 -j MASQUERADE
本测试环境,把防火墙全部关掉,还有IPtables也关掉。查看iptables的启用状态命令是:chkconfig iptables –list
关闭iptables 命令是:chkconfig iptables off
6.       启用PPTPD服务
#/usr/local/sbin/pptpd  ,为了每次随机器一起启动可以加入/etc/rc.d/rc.local文件里。
另外,只有用户拔号上来后,×××服务器才会启动pppd服务,可以用ps -ef|grep pppd 命令查看用户的拔号情况,用户拔上来后的信息是如下,包括来源IP,分配IP等:
# ps -ef|grep pppd
root      3299  3298  0 16:58 ?        00:00:00 /usr/sbin/pppd local file /etc/ppp/options.pptpd 115200 192.168.80.21:192.168.80.240 ipparam 192.168.80.58

到这里,×××服务器基本上就建好了,用户可以远程拔号到内网进行管理。有些东西还是不太明白,例如分配的拔号IP和内网不在同一网段就不能互通,在本测试环境下就没有通过,以后有时间再测吧。不完善之处还请指正。