家庭服务器安全:我从哪里开始?

mmr*_*mmr 3 security

我和我的一个朋友正在考虑开始我们自己的业务,涉及代码和一些相当先进的 IP(至少,我们喜欢认为 IP 是先进的)。我想在家庭服务器系统上设置一个代码存储库(可能是 subversion)和一个错误跟踪服务器(可能是fogbugz),我们都可以通过笔记本电脑从远程位置通过 VPN 进入。我还希望这个服务器是一个远程构建系统,运行某种 hudson 脚本,也许通过 ant,来进行自动测试和构建验证。

我的问题是:设置此系统的最安全方法是什么?我有 1000 美元的硬件和软件预算。我有一个使用 Apple Wireless 基站的现有家庭无线网络、一台运行 10.5 和 Windows 7 的 macbook pro,以及一台运行 Windows 7 的家用机器,我真的只是用来玩游戏和玩弄。

具体来说:

  • 我应该使用 Linux 吗?哪个发行版?我如何锁定它?我意识到这个问题可能会引发无数的火焰战争,但我只是想要一些关于如何在运行这些服务的情况下设置安全服务器的指针(没有别的,假设更多的服务 = 更多的安全漏洞)。
  • 我在哪里可以获得有关通过该路由器设置 VPN 的好信息?我应该通过那个苹果路由器,还是应该查看一些“黄金标准安全”路由器?
  • 静态 IP(这意味着更改我的 ISP)还是动态 IP?是否可以使用动态 IP 执行此类操作,如果可以,我该如何设置服务器以通过动态 IP 安全地远程访问?
  • 我应该关注什么样的硬件?我在想一些类似 core2 duo 处理器(也许是 i7?)、普通硬盘驱动器、4 GB RAM 的东西,仅此而已,连接到其他一些备份驱动器,例如连接到 USB 连接的硬盘驱动器带有 cron 作业的系统每晚备份到第二个驱动器。这合理吗?

我意识到这是一个很大的问题,而且不一定直截了当。当我搜索这些问题的答案时,我得到了很多信息,但没有一个是完全直接的。因此,如果有人知道我错过的指南或几篇博文,我将不胜感激。

Eva*_*son 11

Linux 没有神奇的安全小精灵。Linux 安装也可能配置不当。无论您使用什么服务器操作系统,您都需要:

  • 关闭不必要的服务/守护进程。
  • 检查以确保您确实关闭了不必要的服务/守护程序。
  • 更改任何默认密码或禁用默认帐户。
  • 了解如何操作文件和目录的权限。
  • 创建和使用具有最低权限的用户帐户。
  • 及时更新操作系统和应用程序的安全补丁。

查看 Linux 文档项目站点 ( http://www.tldp.org)——那里有一些不错的安全指南。您还应该为要托管的每个应用程序寻找安全文档。

您的无线以太网应被视为不受信任的网络,您应该在其上使用 VPN,或者对其上运行的所有内容进行加密。也不要使用损坏的加密算法(WEP、WPA)。

正如您所说,您应该使用 VPN 来移动 Internet 上的所有流量。您可以使用便宜的硬件盒,但其中一些存在稳定性问题。您可以在主机上运行 OpenVPN,并将其作为“廉价”的软件处理方式公开给 Internet。您也可以使用 SSH 隧道来完成此操作。您也可以使用基于标准的 IPec VPN。这是您想要花费在配置上的时间/精力的问题。您绝对可以使用动态 IP 地址。正如nik所说,动态 DNS 是您的朋友。

很高兴看到您正在考虑备份。我怀疑“备份到第二个驱动器”是一种非常容灾的物理场景,但这也许是因为我有一个好朋友经历了一场房屋火灾。我绝对建议使用某种类型的加密异地数据复制,或手动异地旋转多个外部硬盘驱动器(希望加密)。如果数据适合,您可以考虑使用一组固态存储设备进行异地轮换,代替硬盘驱动器(拇指驱动器等)。

在一些评论中提到了 RAID,所以我会在我的编辑中提到它。我会认真考虑为此应用程序使用软件 RAID-1。您可以获得很多好处,而不会带来很多复杂性或由 RAID 系统本身引起的潜在问题。但是,RAID 不是备份,因此不要将其视为备份。

UPS 也被提及,这是一个好主意。您不必为此花费大量资金,但我建议您购买具有数据连接的设备,以便在发生电源故障时正常关闭服务器计算机。

我并不特别认为服务器计算机中的处理器与安​​全性有很大关系。您需要的特定处理器应基于工作负载。

我的意思并不是说我在纠正你,但值得一提的是,你并不真正想要“最安全的方式”。例如,您已经提到了预算。您真正想要的是能够提供您满意的安全程度、尽可能减少风险、符合您的预算并且使用起来不太麻烦的配置。

即使您在此应用程序中不使用 SSH 隧道,由于在评论中提到了它,我将全力支持它。您应该知道如何使用 SSH 隧道,因为它们太方便了,不知道如何使用。

  • 许多点数+1,但“魔法安全精灵尘”获胜 (6认同)