PPTP server (简体中文) - ArchWiki

# PPTP server (简体中文)

From ArchWiki
翻译状态： 本文是英文页面 PPTP_Server 的翻译，最后翻译时间：2012-10-19，点击这里可以查看翻译后英文页面的改动。

点对点隧道协议(PPTP)是一种实现虚拟专用网(VPN)的方法。PPTP 在TCP之上使用一个控制通道和 GRE 隧道操作加密 PPP 数据包。

本条目说明如何在 Arch 中创建 PPTP 服务器。

## 安装

安装位于官方软件仓库的软件包pptpd。

## 配置

然后编辑文件`/etc/pptpd.conf`

    /etc/pptpd.conf

    option /etc/ppp/pptpd-options
    localip 172.16.36.1
    remoteip 172.16.36.2-254

接着编辑文件`/etc/ppp/pptpd-options`

    /etc/ppp/pptpd-options

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

在 `/etc/ppp/chap-secrets`中添加用户名和密码：

    /etc/ppp/chap-secrets

    <username>     pptpd     <password>   *

在 `/etc/sysctl.d/99-sysctl.conf`中启用IP转发：

    /etc/sysctl.d/99-sysctl.conf

    net.ipv4.ip_forward=1

应用 sysctl.conf 修改：

    # sysctl --system

### iptables 防火墙配置

配置 iptables 设置，允许 PPTP 客户端访问：

    iptables -A INPUT -i ppp+ -j ACCEPT
    iptables -A OUTPUT -o ppp+ -j ACCEPT

    iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
    iptables -A INPUT -p 47 -j ACCEPT
    iptables -A OUTPUT -p 47 -j ACCEPT

    iptables -F FORWARD
    iptables -A FORWARD -j ACCEPT

    iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
    iptables -A POSTROUTING -t nat -o ppp+ -j MASQUERADE

使用下面命令保存新的 iptables 规则：

    # rc.d save iptables

systemd 用户需要使用：

    # iptables-save > /etc/iptables/iptables.rules

阅读 Iptables 条目获得更多信息。

### ufw 防火墙配置

在 `/etc/default/ufw`中，修改默认的转发规则

    /etc/default/ufw

    DEFAULT_FORWARD_POLICY=”ACCEPT”

修改`/etc/ufw/before.rules`，添加如下配置到 *filter 之前

    /etc/ufw/before.rules

    # nat Table rules
    *nat
    :POSTROUTING ACCEPT [0:0]

    # Allow traffic from clients to eth0
    -A POSTROUTING -s 172.16.36.0/24 -o eth0 -j MASQUERADE

    # don.t delete the .COMMIT. line or these nat table rules won.t be processed
    COMMIT

代开端口 1723：

    ufw allow 1723

重启ufw

    ufw disable
    ufw enable

## 启动

pptpd 软件包已经提供了 service 文件.

启动服务：

    # systemctl start pptpd.service

开机自动启动：

    # systemctl enable pptpd.service

Category:

- Virtual Private Network (简体中文)