PPTP server

来自 Arch Linux 中文维基

这篇文章或章节的翻译不反映原文。

原因:Still references rc.d.(在 Talk:PPTP server# 中讨论)

点对点隧道协议(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