1.安装依赖(内网环境 挂载光盘)
1
2
3
4
5
6
7
8
9
|
本文链接原创:
我照着此文部署
yum -y
install
gcc gcc-c++ autoconf libjpeg libjpeg-devel
libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
zlib zlib-devel glibc glibc-devel glib2 glib2-devel
bzip2
bzip2
-devel
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel
libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap
openldap-clients openldap-servers
|
2.下载源码包 可以从别的地方下载 xftp上传到服务器
1
|
wget http:
//www
.hnisp.net
/attachment/pptpd-1
.3.4.
tar
.gz
|
3.安装
1
2
3
4
5
|
#tar zxvf pptpd-1.3.4.tar.gz
#cd pptpd-1.3.4
#./configure -prefix=/usr/local/pptpd -enable-bcrelay -with-libwrap
#make
#make install
|
4.配置ppp
1
2
3
4
5
6
7
|
编译安装完成后,首先需要手工建立一些目录以及复制原始的 pptpd 配置文件:
#mkdir /usr/local/pptpd/etc
#cp samples/pptpd.conf / usr/local/pptpd/etc/
#cp samples/options.pptpd / usr/local/pptpd/etc/
上面
cp
的两个文件是 pptpd 的两个配置文件。
pptpd.conf 是 pptpd 的基本配置文件;
options.pptpd 是 pptpd 的扩展功能属性配置文件。
|
5.修改配置文件
1
2
3
4
5
6
7
8
9
|
四. 修改配置文件
1、 对 pptpd.conf 进行设置:
# vim / usr/local/pptpd/etc/pptpd.conf
以下是我的配置文件:
option / usr
/local/pptpd/etc/options
.pptpd
logwtmp
debug
localip 192.168.0.21
remoteip 192.168.0.220-245
|
6.
1
2
3
4
5
6
7
8
9
10
11
|
说明:
option / usr
/local/pptpd/etc/options
.pptpd
指定 pptpd 扩展属性配置文件 options.pptpd 的位置
debug
开启调试模式,有关 pptpd 的信息和错误都会记录在
/var/logs/message
中,方便排错和调试
stimeout 30
设置客户端连接 pptpd server 时的最长连接等待时间(连接超时时间),30 秒
localip 192.168.0.21
pptpd server 所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址
remoteip 192.168.0.220-245
设置客户端连接到 pptpd server 后可供分配的 IP 地址范围(192.168.0.220- 192.168.0.245),也可以这样设置:192.168.0.188,192.168.0.189,192.168.0.188-238效果是一样的
|
7.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
2、 对 options.pptpd 进行配置:
# vim / usr/local/pptpd/etc/options.pptpd
以下是我的配置文件:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 202.106.0.20
ms-dns 202.106.46.151
|
8.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
说明:
name VPN-Server pptpd server 的名称。
refuse-pap 拒绝 pap 身份验证模式。
refuse-chap 拒绝 chap 身份验证模式
refuse-mschap 拒绝 mschap 身份验证模式。
ms-dns 202.96.209.5
ms-dns 202.96.209.133p pp 为 Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns 为 DNS Master,第二个为 DNS Slave。
proxyarp 建立 ARP 代理键值。
debug 开启调试模式,相关信息同样记录在
/var/logs/message
中。
lock 锁定客户端 PTY 设备文件。
nobsdcomp 禁用 BSD 压缩模式。
novj
novjccomp 禁用 Van Jacobson 压缩模式。
nologfd 禁止将错误信息记录到标准错误输出设备(stderr)
OK,配置好上面的两个文件后,开始添加 pptpd server 连接帐户。
|
9.添加账户
1
2
3
4
5
6
7
8
9
10
|
pptpd server 连接帐户控制文件位于:
/etc/ppp/chap-secrets
vi
/etc/ppp/chap-secrets
配置文件,添加如下内容:
# client server secret IP addresses
"name"
pptpd
"pw123456"
*
上面第二行代码的四项内容分别对应第一行中的四项。
"client"
是Client端的VPN用户名
"server"
对应的是VPN服务器的名字,该名字必须和
/etc/ppp/options
.pptpd文件中指明的一样,或者设置成
"*"
号来表示自动识别服务器;
"secret"
对应的是登录密码
"IP addresses"
对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号
|
10.设置IP转发
1
2
3
4
5
6
|
配置文件
/etc/sysctl
.conf
vi
/etc/sysctl
.conf
修改以下内容:
net.ipv4.ip_forward = 1
保存、退出后执行:
/sbin/sysctl
-p
|
11.启动pptp
1
2
3
4
5
6
7
8
|
#/ usr/local/pptpd/sbin/pptpd -c / usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd
检查 pptpd server 是否启动成功:
# netstat -ntlp|grep 1723
如果看到有进程 tcp 1723 端口监听就说明 pptpd server 已经启动成功了!
七.公网连接
1.直接把该台PPTP服务器的1723端口映射到公网IP的1723端口即可。
如:192.168.0.21:1723 到219.240.*.*:1723
在路由上:ip nat inside
source
static tcp 192.168.0.21 1723 218.240.*.* 1723 extendable
|
12.
解决问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
附加:解决问题的根本
查看
/var/log/message
发现报错
/usr/lib/pptpd/pptpd-logwtmp
.so: cannot
open
shared object
file
: No such
file
or directory
#mkdir /usr/lib/pptpd/ -p
#ln -s /app/pptpd/lib/pptpd/pptpd-logwtmp.so /usr/lib/pptpd/
再次加载库文件时报版本错误
Plugin
/usr/lib/pptpd/pptpd-logwtmp
.so is
for
pppd version 2.4.3, this is 2.4.4
Solution
修改下源文件版本信息,重新编译生成pptpd-logwtmp.so并替换现有的
切换到源码包目录,pptpd-logwtmp.so源文件在源码包的plugins目录下
将patchlevel.h中的
#define VERSION "2.4.3" 改成 #define VERSION "2.4.4"
#cd pptpd-1.3.4/plugins/ (安装源文件夹下)
#cp patchlevel.h patchlevel.h.bak
#mv pptpd-logwtmp.so pptpd-logwtmp.so.bak
#sed -i 's/2\.4\.3/2\.4\.4/' patchlevel.h
#make
#mkdir /usr/lib/pptpd/
#cp pptpd-logwtmp.so /usr/local/pptpd/lib/pptpd/pptpd-logwtmp.so
启动 pptpd server后
# tail -f /var/log/messages
Plugin
/usr/lib/pptpd/pptpd-logwtmp
.so loaded. (提示加载成功)
[root@localhost plugins]
# cat patchlevel.h
/* upstream patchlevel.h,
v
1.60 2004
/01/13
04:46:52 paulus Exp */
/* $Id: patchlevel.h,
v
1.4 2005
/02/24
01:25:34 quozl Exp $ */
#define VERSION "2.4.4"
#define DATE "13 Jan 2004"
再次连接,即可正常连接PPTP VPN Server。
|
本文转自 小小三郎1 51CTO博客,原文链接:http://blog.51cto.com/wsxxsl/1918575,如需转载请自行联系原作者