May 10, 2015 · PPTP PPP

如何在Centos上建立PPTP Server

晚上Rebuild了一台VPS后建立PPTP,当中出了点小故障发表此文以作备忘,也给新手朋友们提供点经验。

检查必要安装环境
cat /dev/ppp
如出现cat: /dev/ppp: Permission denied表示没有开启,可以到VPS管理面板中开启PPP功能或者联系VPS供应商。

1.安装iptables
yum install iptables

2.安装ppp
yum install ppp

3.安装pptp
因pptp未包含在yum仓库中,需要手动下载安装
rpm -ivh ftp://ftpuser:ftpuser@blog.i1013.com/pptpd-1.3.4-1.rhel6.2.i386.rpm
Tip:因我使用的CentOS6 x86所以下载的pptpd-1.3.4-1.rhel6.2.i386.rpm,其他版本的在ftp上有,请根据自身情况选择安装。
Tip:CentOS6建议使用1.3.4版。1.3.3版问题较多,频繁掉线,拨号619错误,拨号响应慢。

4.修改pptp和ppp配置文件

4.1定义分配的网段和IP范围
vi /etc/pptpd.conf
去掉以下字段前的#号
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
在以下字段前添加#号
logwtmp
Tip:按ESC后输入":x" 来保存编辑后的配置(此为vi编辑器保存操作)
Tip:此处网段可做修改,但必须与之后的iptables规则对应
Tip:logwtmp插件因兼容性问题易造成拨号619错误建议关闭
4.2修改ppp选项
vi /etc/ppp/options.pptpd
去掉ms-dns字段前的#号并修改为
ms-dns 8.8.8.8
ms-dns 8.8.4.4
在以下字段前添加#号
require-mppe-128
Tip:openvz虚拟化不支持mppe加密所以建议注释起来,否则拨号时将会提示734错误。
4.3配置pptp账号密码
vi /etc/ppp/chap-secrets
Tip:格式vpnuser pptpd vpnpw *
用户名为vpnuser,密码为vpnpw,注意每段之间有空格。

5.修改内核
vi /etc/sysctl.conf
将“net.ipv4.ipforward”改为1:
net.ipv4.ip
forward=1
将下列四项前面加# :
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
保存退出,并执行下面的命令来使它生效: sysctl -p

6.添加iptables转发规则
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 你的公网IP //openvz
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE //Xen
tip:192.168.0.0/24与/etc/pptpd.conf定义的网段要对应
/etc/init.d/iptables save //保存规则
/etc/init.d/iptables restart //重启iptables使规则生效

7.启动pptp服务
/etc/init.d/pptpd start

8.设置pptp和iptables开机运行
chkconfig pptpd on
chkconfig iptables on

9.客户端拨号测试
以Windows7为例建立VPN拨号连接,然后右键属性,修改“安全”选项中的VPN类型为“点对点隧道协议PPTP”,在“数据加密”选项中选择“可选加密(没有加密也可以连接)”。

10.可能出现的问题
按照上面的教程操作完拨号仍然出现619,可使用如下命令
rm /dev/ppp //输入y然后回车
mknod /dev/ppp c 108 0
reboot //重启系统

下一节将谈谈如何在客户端成功拨号并访问远端服务器网络后让客户端在访问VPN的同时访问互联网。

关联阅读:连接VPN同时可以访问互联网