3.1. 安全 - 防止他人入侵

安全对于 VPN 非常重要。 这也是你首先要构建 VPN 的原因,不是吗? 在设置服务器时,你需要牢记一些事项。

3.1.1. 减少守护进程

由于此服务器将位于防火墙的两侧,并设置为将流量转发到你的网络中,因此尽可能地保护此主机是一个好主意。 你可以在Linux 安全 HOWTO中阅读更多关于 Linux 安全的信息。 在这种情况下,我关闭了除 sshd 和 Roxen Web 服务器之外的所有程序。 我使用 Web 服务器下载一些文件(我的脚本等),用于设置新机器以访问 VPN。 我不使用 FTP 服务器,因为配置一个安全的 FTP 服务器比仅使用 Web 服务器提供一些文件更难。 而且,我只需要能够下载文件。 如果你真的想在你的网关上运行不同的服务器,你可能需要考虑限制对它们的访问,仅限于你的私有网络上的那些机器。

3.1.2. 不允许密码

是的,这听起来有点傻,但这引起了你的注意,不是吗? 不,你不使用密码,你完全禁用它们。 此机器上的所有身份验证都应通过 ssh 的公钥身份验证系统完成。 这样,只有拥有密钥的人才能进入,而且几乎不可能记住一个 530 个字符长的二进制密钥。

那么你如何做到这一点呢? 这需要编辑/etc/passwd文件。 第二个字段包含密码哈希,或者选择 'x',告诉身份验证系统在/etc/shadow文件中查找。 你所做的是将该字段更改为 "*"。 这告诉身份验证系统,没有密码,并且不应允许任何密码。

以下是典型的 /etc/passwd 文件的外观

...
nobody:x:65534:100:nobody:/dev/null:
mwilson:x:1000:100:Matthew Wilson,,,:/home/mwilson:/bin/bash
joe:*:504:101:Joe Mode (home),,,:/home/vpn-users:/usr/sbin/pppd
bill:*:504:101:Bill Smith (home),,,:/home/vpn-users:/usr/sbin/pppd
frank:*:504:101:Frank Jones (home),,,:/home/vpn-users:/usr/sbin/pppd
...

请注意,我不只是编辑了第二个字段。 我稍后会解释其他字段。