5.5. 服务器:配置 pppd

现在我们将配置服务器上的 pppd 以处理 VPN 连接。如果您已经使用此服务器处理拨号用户,甚至您自己也在拨号上网,那么您应该注意这些更改可能会影响这些服务。在本节末尾,我将介绍如何避免冲突。

5.5.1. /etc/ppp/

此目录可能包含许多文件。您可能已经有一个名为options的文件。此文件保存 pppd 的所有全局选项。这些选项不能被命令行上的 pppd 覆盖。

5.5.2. /etc/ppp/options

您的options文件应至少包含以下内容

ipcp-accept-local
ipcp-accept-remote
proxyarp
noauth

前两行告诉 pppd 接受另一端指定的 IP 地址。当连接远程办公室时,这是必要的,但如果您仅连接家庭用户,则可以禁用它。 保持启用状态是可以的,因为它不会阻止服务器分配地址,它只是表示可以接受客户端请求的地址。

第三行非常重要。摘自 pppd 手册页

proxyarp
       Add an entry to this system's ARP [Address  Resolu-
       tion  Protocol]  table  with  the IP address of the
       peer and the Ethernet address of this system.  This
       will  have  the effect of making the peer appear to
       other systems to be on the local ethernet.		

这很重要,因为如果未完成此操作,本地流量将无法通过隧道返回。

最后一行也同样重要。这告诉 pppd 允许无需用户名和密码的连接。这是安全的,因为身份验证已由 sshd 处理。

5.5.3. 避免冲突

如果您正在使用 pppd 处理其他服务,则应考虑到这些其他服务的配置可能与 VPN 系统需要的配置不同。pppd 的设计使得主选项文件中的选项/etc/ppp/options不能被运行时指定的选项覆盖。这样做是出于安全原因。为了避免冲突,请确定哪些选项导致冲突,并将它们从主文件移动到一个单独的选项文件中,该文件在pppd的相应应用程序运行时加载。