我将在我的家庭服务器上设置 VPN,我读过的教程中说该协议只能与密码一起使用,而不能与密钥文件一起使用。对我来说,这似乎不太安全,所以我想知道是否可以通过 SSH 或类似的东西来隧道 PPTP。基本上,如何创建安全的 PPTP 连接?您是否可以仅通过 SSH 获得类似 VPN 的功能并使用它而不是 PPTP?
答案1
3 个问题 = 3 个答案....
1) PPTP 是一种安全的 VPN 协议吗?——简短的回答是“不安全”。PPTP 已成为许多安全分析的主题,并且已在该协议中发现严重的安全漏洞。已知漏洞与所使用的底层 PPP 身份验证协议、MPPE 协议的设计以及 MPPE 和 PPP 身份验证之间用于会话密钥建立的集成有关。有关 PPTP 的更多信息这里
2)你能使用 SSH 获得类似 VPN 的功能吗?——答案是肯定的:使用OpenVPN 社区版. OpenVPN 的社区文档在这儿,并且它使用 SSL。您应该花些时间确保您了解服务器的设置方式(详细配置在这里)以及你对客户端机器所做的操作(详细配置在这里)。
3)最后,密码是否不安全?这取决于密码的长度,但下面会给出详细的答案。我认为更重要的是密码是否以明文形式发送,这在某些实现中 - 从字面上讲 - 是一场灾难。这个博客但据我所知,攻击频率不能高于 ping 时间,因为高于此频率的数据包会被以太网卡直接丢弃,而不会进行任何处理。因此,当我“ping”自己时,我得到的限制是:
Me@MyPC:~$ ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.149 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=2 ttl=64 time=0.110 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=3 ttl=64 time=0.113 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=4 ttl=64 time=0.142 ms
^C
--- localhost.localdomain ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.110/0.128/0.149/0.020 ms
以 0.128 毫秒为平均值,相当于每次响应 0.000128 秒,每秒可能发生的攻击次数:
1 秒/每次 ping 0.000128 秒即每秒进行 7812.5 次尝试。
字典中的单词 如果您使用字典中的单词,您的密码最多可以采用世界上所有字典中的 200,000 个单词之一的形式。这意味着尝试 200,000 个单词将需要:
200,000/7812.5 = 25.6 秒。
如果使用两个连续的单词,那么可能的组合数为 200,000 ^ 2,因此可以保证在以下时间内破解:
200,000^2 / 7812.5 = 40000000000 / 7812.5 = 5120000 秒。
这相当于:59.259 小时的持续攻击,我确信你的路由器看起来很忙。
假设每年 31536000 秒,则三、四、五个单词的密码长度分别增加如下:
200,000^1 / 7812.5 = 25.6 秒
200,000^2 / 7812.5 = 5120000 秒
200,000^3 / 7812.5 = 1.024 * 10^12 秒 = 32,470 年
200,000^4 / 7812.5 = 2.048 * 10^17 秒 = 6,494,165,398 年
200,000^5 / 7812.5 = 4.096 * 10^22 秒 = 1,298,833,079,654,997.5 年
在此需要注意的是,宇宙的年龄被评估为 137.5 亿年 = 4.336 * 10^17 秒,所以对于通过暴力破解三字密码的尝试,技术上的答案是“不可行” :-)