如何在Unbuntu上快速部署PPTP服务

作者: lesca 分类: Tutorials,Ubuntu,VPN 发布时间: 2012-04-23 16:32

一、PPTP简介

协议:TCP,端口1723
协议:GRE,协议号47
依赖服务:pppd

二、快速部署

搭建环境

Ubuntu Server 10.04~11.04
pptpd v1.3.4
pppd version 2.4.5

1.安装软件包

在Ubuntu Server上默认是已经安装pppd服务的,如果你没有,请一并安装。

apt-get install pptpd ppp

2./etc/pptpd.conf

option /etc/ppp/pptpd-options
logwtmp
localip 10.10.10.1
remoteip 10.10.10.100-245
  • option指令告诉pptpd应该让pppd读取哪个配置文件
  • logwtmp插件会将每次用户登录情况记账到/var/log/wtmp文件
    这不是文本文件,需要使用last命令读取:

    last -f /var/log/wtmp
    
  • localip和remoteip所在网段不得和服务器、用户所在网段冲突。

3.重启PPTP服务

对pptpd.conf配置文件所做的修改需要重启pptpd服务

/etc/init.d/pptpd restart

4./etc/ppp/pptpd-options

对ppp配置文件所做的修改,无需重启pppd服务,因为pppd由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
nodefaultroute
lock
nobsdcomp
persist
mtu 1404
mru 1404

5.启用转发

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

对于OpenVZ的主机,可能不支持MASQUERADE,此时需要使用SNAT:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $IP

其中$IP就是你主机的外网IP地址

三、测试

1.启用测试用户

编辑/etc/ppp/chap-secrets文件,加入如下行:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
guest           pptpd   password                *

该行创建一个用户,用户名为guest,密码为password(明文)
server字段与pptpd-options配置文件中的name属性对应。还可以星号(*)代替,表示不限调用服务。
IP address表示来源IP,这里星号(*)表示接受所有连接。
对来源IP的过滤应该由iptables防火墙来完成。读者可以查阅本博客关于iptables的相关文章进行设置。

2.拨号

可以在Windows系统、iOS上与PPTP服务器连接。
连接方法请参看这篇文章。(更新中)

3.调试

PPTP服务会调用ppp进行验证,日志记录在/var/log/syslog中
如果在pptpd-options配置文件中启用debug开关,则还会出现在/var/log/debug文件中
我们经常会遇到如下错误消息:

GRE: Bad checksum from pppd.

这可能是由于你的主机在NAT后面,也可能是当地网络对GRE协议支持不佳。
如果出现

LCP: timeout sending Config-Requests

这很有可能是你的ISP导致的。出于这种不稳定、不和谐因素,我们有必要使用更稳定、更安全的L2TP。

版权声明

本文出自 Lesca 技术宅,转载时请注明出处及相应链接。

本文永久链接: https://www.lesca.cn/archives/how-to-setup-pptp-on-ubuntu-server.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!