1.安装依赖(内网环境 挂载光盘)
本文链接原创: 我照着此文部署 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上传到服务器
wget http://www.hnisp.net/p_w_upload/pptpd-1.3.4.tar.gz
3.安装
#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
编译安装完成后,首先需要手工建立一些目录以及复制原始的 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、 对 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.
说明: 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.
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.
说明: name ×××-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.添加账户
pptpd server 连接帐户控制文件位于:/etc/ppp/chap-secrets vi /etc/ppp/chap-secrets 配置文件,添加如下内容: # client server secret IP addresses "name" pptpd "pw123456" * 上面第二行代码的四项内容分别对应第一行中的四项。 "client" 是Client端的×××用户名 "server"对应的是×××服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成"*"号来表示自动识别服务器; "secret"对应的是登录密码 "IP addresses"对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号
10.设置IP转发
配置文件/etc/sysctl.conf vi /etc/sysctl.conf 修改以下内容: net.ipv4.ip_forward = 1 保存、退出后执行: /sbin/sysctl -p
11.启动pptp
#/ 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.
解决问题
附加:解决问题的根本 查看/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 ××× Server。