CentOS搭建PPTP VPN

1、检查vps是否满足配置pptp vpn的环境。

cat /dev/ppp
cat: /dev/ppp: No such device or address           #返回这个说明PPP已经开启。
cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state    #返回这个说明Tun/Tap已经开启。

2、安装pptp以及依赖软件
CensOS 5

rpm -ivh http://t2.re/usr/uploads/file/20150314/pptp-release-4-7.rhel5.noarch.rpm

CentOS 6

rpm -ivh http://t2.re/usr/uploads/file/20150314/pptp-release-4-7.rhel6.noarch.rpm

然后安装ppp iptables pptpd

yum install -y ppp iptables pptpd

3、配置pptp客户端ip段和登录账号
编辑/etc/pptpd.conf,在文件最后添加:

localip 10.0.0.1
remoteip 10.0.0.2-10

localip为pptp vpn网关
remoteip是为客户端分配的内网ip段
pptp配置:编辑/etc/ppp/options.pptpd,把原来的内容删除,加入下面的内容。

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
debug
dump
lock
nobsdcomp
novj
novjccomp

添加账号
编辑 /etc/ppp/chap-secrets 这个文件:

添加格式
username pptpd password 

依次是:用户名 pptpd 密码 分配的IP地址 *表示随机
启动pptp并设置开机启动:

service pptpd restart
chkconfig pptpd on

4、配置内核以及iptables
做完上面的步奏其实已经能够连接VPN,但是还不能上网,我们还需要开启数据包转发,编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward值改为1。

net.ipv4.ip_forward=1

然后执行以下命令使配置生效:

sysctl -p

接下来我们还需要配置iptables的转发规则:

OpenVz
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT —to-source 12.34.56.78   #12.34.56.78为VPS的公网IP地址
Xen、Kvm
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE

需要注意的是,这个指令中的10.0.0.0/24是根据之前的配置文件中的localip网段来改变的(网上有的教程是192.168.0.0/24 ),比如你设置的192.168.1.1网段,则应该改为192.168.1.0/24。此外还有一点需要注意的是eth0,如果你的外网网卡不是eth0,而是eth1(比如SoftLayer的服务器就是这样的情况),那么请记得将eth0也更改为对应的网卡编号,不然是上不了网的
保存转发规则重启iptables:

service iptables save
service iptables restart
chkconfig iptables on

来源:http://www.777s.me/centos-pptp.html

本文根据内容来源做适当修改

并对原作者的无私奉献表示感谢