Mitch Mclaughlin

作者评论

您好 Paul,感谢您周到而详尽的回复。正如您所暗示的那样,安全是任何系统的基础,没有安全,您将一无所有。不过,我很高兴现在进行这次讨论,我将尽力解决您提出的问题。

像每个项目一样,它带来了某些自由,而自由伴随着责任。这个项目也不例外。公平地说,本教程如果不够明确的话,旨在成为设置个人 Web 服务器的第一步,而不是完全可扩展的系统。如果我有自主权将我的整个个人 Web 服务器设置包含在这篇文章中,我会这样做。我在我的博客上关于更复杂的个人服务器安全技术的后续教程中深入探讨了这个问题,这个项目的大部分内容都位于那里:https://mitchellmclaughlin.com/server.html,正如原始文章中所链接的那样。

我立即可以指出的是,在本文中首次启动后,它明确指出

“选择“Expand Filesystem”选项并按 Enter 键 [3]。此外,我建议选择第二个选项“Change User Password”。这对于安全至关重要。它还可以个性化您的 Raspberry Pi。”

在设备连接到互联网之前,就会发生更改为安全密码的操作。因此,在不太可能发生的情况下,如果服务器在进入互联网后立即受到暴力破解攻击,那么强密码就足以消除任何即时入侵。现在,我们可以讨论强密码的外观和内容。但是,这超出了本教程的直接步骤。我建议参考:http://www.usatoday.com/story/tech/columnist/komando/2015/05/15/strong-…

出于简洁考虑,我没有在文章中提及,但我想提及的是安装“fail2ban”。Fail2Ban 会阻止来自互联网的可疑请求。例如,如果猜测密码的尝试次数过多,它将阻止该 IP 地址。对于任何阅读本文的人,我建议安装此软件包,我可以修改原始文章以包含它。可以通过在终端中键入以下内容来安装它

$ sudo apt-get install fail2ban

我将重申,更改默认密码和安装 Fail2Ban 是任何人可以为服务器的基本安全做的最低限度的事情。不这样做就是承担风险。

与往常一样,保持操作系统、应用程序和软件包的最新状态对于安全来说是一个好的做法。我在我的博客上解释了这一点,但值得重复。这将防止任何最近修复的错误被利用。要确保系统是最新的,请在终端中键入

$ sudo apt-get update
$ sudo apt-get upgrade

Raspbian 操作系统(Jessie 和 PIXEL)是 Linux Debian 的变种,Debian 预装了防火墙。如果我没记错的话,ufw(简易防火墙)和 iptables(另一个防火墙软件包)都预装在 Debian 上。在我的博客上后续更高级的教程中,您会找到有关配置 iptables 和 Apache(Web 服务器软件)的明确说明,其中写道

$ cd /etc/network
$ sudo iptables -A INPUT -p tcp - -sport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp - -sport 443 -j ACCEPT
$ sudo iptables -L
$ sudo iptables-save

然后我还分享了一个链接,以进一步教育和允许自定义 iptables 防火墙。https://fedoraproject.org/wiki/How_to_edit_iptables_rules

我在这篇回复中特意没有提到的一件事是双因素身份验证。这是保护个人 Web 服务器的下一个逻辑步骤,但是,我尚未在 Web 上找到正确实施它的文档。如果我找到它,我将在此处更新。

我想进一步具体地回应您提出的两条评论。

您提到,“首先,您必须更改所有默认密码,实际上您应该删除“pi”用户并用另一个用户名替换它。” 正如我所说,我确实建议将其作为安全性的最低要求。但是,我不能强迫任何读者做他们不想做的事情。所以,这是酌情决定的。

您提到,“您还应该删除该用户的 'sudo' 功能。” 让我详细说明一下。这更安全,但我将此决定留给用户。有些人更喜欢使用 sudo 的便利性,而不是额外的安全性,即使这可能不是最佳实践。

权限和 ssh 密钥可以提高安全性,但我不会在本回复中进一步讨论这些主题。

我认为重要的是退后一步,牢记大局。安全非常重要,是的。但就我个人而言,我告诫自己不要过度保护系统。系统管理员变得过度偏执或无意中将自己锁在系统之外的程度可能同样成问题(不幸的是,我经历过这种情况,这并不好玩)。在那种极端情况下,安全可能会变得瘫痪,我不提倡这样做。平衡安全原则和灵活性是困难的,但我倾向于将其留给每个人。换句话说,我们正在辩论哲学,但我认为很明显我们在事实上达成了一致。

我也希望您对有关安全的恐慌宣传保持敏感。安全在有针对性的攻击中可能是一个复杂的问题,但用复杂的语言与普通用户谈论它可能是不利的。对于任何阅读本文的人,我想说,Web 上的基本安全并不十分复杂。采取基本步骤,例如设置强密码,将防止大多数入侵,这应该是目标。

最后,我认为我们和 Paul 在很多方面都达成了一致。如果每个人都能从讨论中吸取一些教训,那就是像您一样认真对待安全是值得效仿的。

有关 Web 服务器基本安全性的更多阅读材料,请参阅:https://www.codelitt.com/blog/my-first-10-minutes-on-a-server-primer-fo…

如果我没记错的话,我使用 XRDP 仅仅是因为配置更用户友好。但是,如您所知,VNC 也非常棒,所以请随时方便地使用。如果您最终配置了 VNC 并且不介意展示文档,我可以将其附加在脚注中。只需发送电子邮件至 mitch(dot)mclaughlin1(at)gmail(dot)com。

© . All rights reserved.