说明:公司原***服务器使用windows2003,放在内部通讯RTX服务器上,由于公司人员增多,RTX在线人数相应增加,×××服务器出现经常不能拨入或拨入后不能访问相关应用情况。

为确保×××服务稳定,现将服务迁移到linux平台。

源码包下载地址:http://sourceforge.net/

官方安装手册及RPM包下载地址:http://poptop.sourceforge.net/dox/replacing-windows-pptp-with-linux-howto.phtml

参照如下链接:http://blog.doylenet.net/?p=17

http://lihuipeng007.blog.163.com/blog/static/121084388201061510549623/

一、先查看操作系统

[root@dic172 ~]# cat /etc/issue     #查看系统版本
CentOS release 5.6 (Final)
Kernel \r on an \m

[root@dic172 ~]# getconf LONG_BIT   #查看操作系统位数
32

[root@dic172 ~]# uname -a

Linux dic172 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:23:01 EDT 2011 i686 i686 i386 GNU/Linux

备注:内核版本在2.6.15后的默认都已经有了MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁,所以不需要再安装dkms和kernel_ppp_mppe内核补丁。

 

二、CentOS release 5.6默认已经安装PPP软件包

[root@dic172 ~]# modprobe ppp-compress-18 && echo success     #查看PPP模块是否加载成功

[root@dic172 ~]# lsmod |grep ppp

ppp_mppe               10437  0

ppp_generic            30037  1 ppp_mppe

slhc                   10433  1 ppp_generic

 

三、检查PPP是否支持MPPE,如果以下命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持

[root@dic172 ~]# strings '/usr/sbin/pppd' |grep -i mppe |wc --lines

42

 

四、开始安装pptpd

[root@dic172 media]# cp pptpd-1.2.3-1.i386.rpm /usr/src/

[root@dic172 media]# cd /usr/src 

[root@dic172 src]# rpm -ivh pptpd-1.2.3-1.i386.rpm

Preparing...                ########################################### [100%]

   1:pptpd                  ########################################### [100%]

五、修改配置文件如下

step1: 修改/etc/pptpd.conf

[root@dic172 etc]# grep -v "#" pptpd.conf

ppp /usr/sbin/pppd

option /etc/ppp/options.pptpd             #PPP组件将使用的配置文件

debug /var/log/messages                    #把所有debug信息记入系统日志/var/log/messages

stimeout 60                                    #开始PPTP控制连接的超时时间,以秒计

localip 192.168.100.172                    #×××服务器地址,即服务器本地公网IP

remoteip 192.168.101.1-234                #×××客户端连接成功后所获得的IP地址池

备注:要注释logwtmp,不然客户端拨号连接时,报619错误,不知道啥原因?

 

step2: 修改/etc/ppp/options.pptpd

[root@dic172 etc]# grep -v "#" ppp/options.pptpd

lock

debug

nologfd

name dic172    #服务器名

nobsdcomp

proxyarp

refuse-pap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 202.96.134.133 

 

step3: 修改/etc/ppp/chap-secrets

[root@dic172 etc]# grep -v "#" ppp/chap-secrets

     test          dic172       "test"                     *

  #用户名         服务名            密码                     IP

step4: 修改内核参数,开启IP转发功能

[root@dic172 etc]# vi sysctl.conf

net.ipv4.ip_forward = 1  #开启路由转发功能

[root@dic172 etc]# sysctl –p   #使内核参数修改生效

六、在cisco2821路由器上做一个映射,将***服务器1723端口映射到公网

ip nat inside source static tcp 192.168.100.172 1723 202.105.137.115 1723 extendable

七、关闭防火墙,启动pptpd服务,查看服务所用端口

[root@dic172 etc]# service iptables stop

[root@dic172 etc]# service pptpd start

Starting pptpd: [  OK  ]

[root@dic172 etc]# netstat -antp |grep pptpd

tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      651/pptpd          

tcp        0      0 192.168.100.172:1723        192.168.163.96:60109        ESTABLISHED 494/pptpd [192.168.

tcp        0      0 192.168.100.172:1723        192.168.161.173:1257        ESTABLISHED 553/pptpd [192.168.

[root@dic172 etc]# ifconfig -a  #可查看到

eth0      Link encap:Ethernet  HWaddr 00:0C:29:C3:66:8D 

          inet addr:192.168.100.172  Bcast:192.168.161.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fec3:668d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:5754576 (5.4 MiB)  TX bytes:735684 (718.4 KiB)

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:4081876 (3.8 MiB)  TX bytes:4081876 (3.8 MiB)

ppp0      Link encap:Point-to-Point Protocol 

          inet addr:192.168.100.172  P-t-P:192.168.1.1  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1

          RX packets:54 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:4998 (4.8 KiB)  TX bytes:120 (120.0 b)

ppp1      Link encap:Point-to-Point Protocol 

          inet addr:192.168.100.172  P-t-P:192.168.1.2  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1

          RX packets:48 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:11774 (11.4 KiB)  TX bytes:120 (120.0 b)

sit0      Link encap:IPv6-in-IPv4 

          NOARP  MTU:1480  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

-------------------------------------------------------------

在完成×××服务端配置后,windows客户端拨***相当简单,在此不做说明。但公司内网有部分linux服务器也需要拨***调用***网段服务器数据。如下配置PPTP ×××客户端配置

step1: 先检查***客户端是否安装以下包

[root@rac1 ppp]# rpm -qa |grep ppp

ppp-2.4.4-2.el5

rp-pppoe-3.5-32.1

step2: 下载pptp-1.7.2-3.rhel5.src.rpm 源码rpm包,可解决包依赖性问题

[root@tydic5f15 src]#  wget http://nchc.dl.sourceforge.net/project/pptpclient/pptp/pptp-1.7.2/pptp-1.7.2-3.rhel5.src.rpm

[root@tydic5f15 src]# rpmbuild --rebuild pptp-1.7.2-3.rhel5.src.rpm     #.src.rpm包安装方法

[root@tydic5f15 peers]# cd /usr/src/redhat/RPMS/x86_64/

[root@tydic5f15 x86_64]# rpm -ivh pptp-1.7.2-3.x86_64.rpm pptp-debuginfo-1.7.2-3.x86_64.rpm

step3: 生成***客户端配置文件并做相应修改

[root@tydic5f15 x86_64]# pptpsetup --create int*** --server 202.105.139.114 --username test --password test  #此步可生成***连接文件

                                           命令               ***连接名            服务器地址                       用户名                    密码

[root@tydic5f15 peers]# pwd

/etc/ppp/peers

[[root@tydic5f15 peers]# cat int***    #int***是由pptpsetup --create命令生成,再修改内容如下

# written by pptpsetup

pty "pptp 202.105.139.114 --nolaunchpppd"

lock

#noauth

nobsdcomp

nodeflate

name test

remotename int***

ipparam int***

require-mppe-128

refuse-pap

refuse-chap

refuse-eap

refuse-mschap

 

step4: ***客户端拨入

[root@tydic5f15 peers]# cp /usr/share/doc/ppp-2.4.4/scripts/pon /usr/sbin/

[root@tydic5f15 peers]# cp /usr/share/doc/ppp-2.4.4/scripts/poff /usr/sbin/

[root@tydic5f15 peers]# chmod +x /usr/sbin/pon /usr/sbin/poff

[root@tydic5f15 peers]# pon int***  #连接int***,断开×××用poff int***

[root@tydic5f15 peers]# ifconfig     #可查看到多了一个ppp0

 

step5: 完成以上操作后,***拔号成功,但此时只能连接×××服务器,而不能访问与×××同段的应用服务器,需要添加以下路由

[root@tydic5f15 peers]# route add 192.168.100.172 gateway 192.168.100.1

[root@tydic5f15 peers]# route add -net 192.168.100.0 netmask 255.255.255.0 dev ppp0

完成以上配置后,已基本满足应用!

疑问:如何设置让***客户端定期自已修改密码,让***拨入更安全?