目前,我们有一个基于 Linux 的防火墙,它对我们的公共 IP 地址进行 NAT,以便我们员工的 PC 可以访问互联网,并且有一个 Windows Server 2003 用于内部文件共享。
我想使用 Linux 服务器在防火墙后面内部托管 Redmine/SVN(一个错误跟踪器)。我们的客户将从外部访问此 Web 服务器,以便他们可以发布错误报告。这意味着我必须在防火墙上打开端口 80 和 22,以便允许 Web 服务器和我在家中通过 SSH 访问它。
但是,假设我为网络服务器使用了基于密码的 SSH,而有人破解了它。这是否意味着破解者可以 ping 并访问网络中的其他服务器和 PC?
答案1
是的。非军事区解决了这个问题。您可以在 Linux 上创建 DMZ(单独的网络),使用另一个 NIC 或创建 VLAN。
在计算机安全领域,DMZ 或非军事区是一个物理或逻辑子网,它包含组织的外部服务并将其暴露给更大的不受信任的网络(通常是 Internet)。信息技术专业人员通常将该术语称为 DMZ。它有时被称为外围网络。DMZ 的目的是为组织的局域网 (LAN) 添加额外的安全层;外部攻击者只能访问 DMZ 中的设备,而不能访问网络的任何其他部分。
答案2
@ooshro 对 DMZ 给出了一个很好的答案,但我想补充一点,您还应该采取一些其他步骤来保护您的外部访问,以限制您的主机受到威胁的可能性。
首先,确保在 Linux Bugtracker 服务器上设置了适当的防火墙规则。由于它将公开访问,因此您应该严格控制机器的进出访问。大多数防火墙配置都集中在阻止来自外界的传入连接。这是很好的第一步,但您还应该锁定传出连接。例如,如果此服务器不需要 ssh 到外界,则应该有一条防火墙规则阻止该操作。
在服务器上安装最少的软件包。您真的需要 tcpdump 或 traceroute 之类的网络实用程序吗?可能不需要,但对于侵入您机器的人来说,它们非常有用。
采取额外步骤来保护 Linux 服务器上的传入 ssh。您应该运行类似拒绝主机阻止自动登录尝试。如果只有像您这样的管理员用户要通过 ssh 访问该框,请在不同的端口上运行 ssh 服务器,以再次减少自动 ssh 登录尝试。
不允许仅使用密码 ssh 登录到该框,而是要求使用预生成的公钥/私钥对。查看运行Google 双重身份验证因此您登录时就会有额外的安全保障。
答案3
除了 @ooshro 的回答之外,将所有东西都放在一个 DMZ 中也令人担忧,因为如果任何服务受到威胁,攻击者将更容易破坏整个 DMZ,这为尝试穿越防火墙提供了更大的平台。