强化家庭服务器

强化家庭服务器

我正在考虑使用一些旧硬件和 Ubuntu 12.04 或 Debian 6 设置一个适中的 Web 服务器。我知道,将 LAN 上的机器暴露给外界,我就会容易受到安全漏洞和攻击。鉴于此,由于我几乎没有使用 Linux 保护计算机的经验,我想请教一些关于如何保护此 Web 服务器的建议,尤其是因为我家 LAN 中还有其他计算机包含敏感信息(有关家庭银行账户等)。非常感谢。

答案1

首先,你可能已经意识到了这一点,但如果你有动态 IP,你需要一个动态 DNS,比如 DynDNS 或DNS退出

在安全方面,我认为使用iptables(或防火墙 GUI,如引火者如果您愿意的话)如果您不需要打开 ssh 端口(端口 22)或 ftp(21)并且不会安装邮件服务器,则仅打开端口 80 进行入站连接对于家庭服务器来说就足够了。

如果你的网站有登录页面,或者你需要打开 ssh、ftp 或 smtp,我建议至少安装类似失败2ban禁止尝试连接但未成功的 IP,这样他们就不会一直尝试。

需要注意的一件重要事情是,你必须查看你的日志,以便轻松安装logwatch(应该位于 Debian 和 Ubuntu 的默认存储库中)每天或每周通过邮件提醒您。通过经常阅读它们,您将快速学会找出问题所在。

如果您需要从外部连接来管理服务器,请使用 VPN,并且始终保持操作系统更新!

更新:对于 SSH 和 sftp,我认为 fail2ban + 仅 ssh 密钥(或密钥 + 密码但不仅仅是密码)是您所需的最低限度(并且不允许 root 访问)。

如果您用于连接的机器具有固定IP,请仅针对这些传入IP打开防火墙。

加密的 VPN(我使用开放VPN)也有助于确保你的访问安全。
请在此处查看“快速”官方教程,15-30 分钟后,您将拥有一个可供一个客户端(一台服务器)使用的 VPN 服务器。为了更好地设置使用客户端证书身份验证和 CA(您自己的免费 CA)您还需要花几分钟时间 :D

如果您的网站需要 MySQL,或者出于任何其他原因您需要从互联网管理 MySQL(或其他数据库),如果您不使用 VPN,请使用 ssh 隧道,以便连接到计算机上的本地端口,并且隧道会加密与服务器的连接,这样您就不需要打开数据库端口,请查看中的-L-D参数man ssh
我不会安装 phpmyadmin 来监听公共 IP,因为这会将您的数据库开放给全世界。如果您需要,我可以在此处放置隧道的示例脚本。

相关内容