介绍在centos上使用pptpd搭建vpn的方法。

安装并配置pptpd

安装pptpd

yum install pptpd

修改pptpd的配置文件/etc/pptpd.conf,将以下两行的注释符#去掉:

localip 120.24.22.100
remoteip 10.0.0.100

修改PPPD DNS配置

/etc/ppp/options.pptpd添加Google的Public DNS:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

可以使用man pppd查看pppd及其配置文件的用户手册。

修改日志输出位置

pptpd默认将日志写入/var/log/syslog系统日志,在/etc/ppp/options里加入如下一行启用单独的日志。

logfile /var/log/ppp.log

需要注意的是,pptpd依然会写系统日志。

修改连接数

pptpd的默认配置只有6个IP可供分配,pptpd启动时日志里经常见到如下的警告信息。

Maximum of 100 connections reduced to 6, not enough IP addresses given

如果想要增加更多的连接,可修改/etc/pptpd.confremoteip选项。

remoteip 10.0.0.100-200

上面的配置将连接数增加到16个,需要注意的是,连接数同时受remoteipconnections两个配置项控制,详情可参考man pptpd.conf

设置×××用户名和密码

假设用户名为test,密码为test(不要设置过于简单的密码),则在/etc/ppp/chap-secrets添加如下一行:

"test"     pptpd     "test"     "*“

上面的*表示任何ip均可访问你的vpn,也可以改为自己的一些ip,ip之间用逗号或空格隔开。

设置iptables规则

首先配置nat表的翻译规则, 将目标IP为192.168.0.0/24的包转向eth0接口. 在iptables配置文件的nat表中添加如下规则:

iptables -t nat  -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 120.24.22.100

修改sysctl.conf

修改/etc/sysctl.conf,去掉下面一句前面的注释符#:

net.ipv4.ip_forward=1

重新加载sysctl.conf:

sysctl -p

pptpd服务管理

service pptpd restart-kiil
service pptpd start