在外部networking上locking一个Linux机器

我有一个运行在Linux服务器上的应用程序,可以通过每个用户的networking浏览器访问。 我的应用程序包含我需要保持安全的专有代码。 我想安装应用程序在客户的专用networking供员工使用,但我需要确保他们无法访问应用程序的代码。 我只希望他们能够使用他们的Web浏览器作为Web应用程序的客户端与应用程序进行交互。

我以前没有pipe理过Linux服务器。 我会买我自己的服务器盒,安装Linux,然后安装我的应用程序,并将我的服务器框放在我的客户端的本地networking。

有没有什么方法可以configurationLinux机器,这样我就可以使用除浏览器以外的其他任何东西来访问机器,只限于特定的url模式?

最终,如果有人想破坏这个问题,他们可以 – 使用硬件使其更加可行。 这就是说,你可以使它变得非常困难。 例如:

  1. 创build一个基本的Linux设置。 该系统应该被locking,以便只允许客户访问networking,但是需要允许访问 – 例如使用SSH和公钥/私钥,以及确保从您的networking通过防火墙允许相应的端口。 基本的系统应该没有那么多的引导,允许你访问和通知你,如果服务器RESTARTS。 你需要为第二部分保留大量的空间。

  2. 创build一个LUKS卷,并在那里托pipe你的代码和应用程​​序。 当系统重新启动时,通过SSHlogin,挂载LUKS卷,启动驻留在那里的应用程序并注销。

这不会阻止冷启动攻击来获取内存内容,或者是某人能够劫持机器中的内存并在开机时读取它(请记住它们具有物理访问权限),但由于缺乏这种function,有人妥协它。

Linux本质上是为支持多级和远程访问而构build的。 在你的情况下,保护应用程序很容易,因为它运行在Web上。 有几个选项可以使您能够远程访问服务器。 pipe理远程服务器的最stream行的方式是通过SSH。 由于您是服务器pipe理的新手,您可能会发现Webmin(webmin.com)是一个有趣的工具,可以帮助您完成服务器pipe理过程。 另外(如果您更喜欢通过GUIconfiguration您的服务器),您可以使用任何远程桌面选项,如rdesktop或VNC。

需要了解的一点是,驻留在服务器上并由Web服务器提供服务的代码被Linux本地authentication系统认为是安全的。 没有人可以访问你的代码,除非你提供凭据。

– 更新 – 如果要阻止除networking端口以外的所有networking访问,请使用以下命令:

iptables -P INPUT DROP iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 

此防火墙规则将阻止传入连接到任何服务,除了Web请求。 至于物理安全性,默认的linux身份validation是非常充分的,尽pipe有经验的linux用户可以通过在“运行级别1”上重新启动系统来绕过身份validation,

我希望这有助于Hex

是的,这很容易实现,事实上安装Linux的开箱即用,除非您专门创build账户并授予访问权限,否则用户无法login。 简而言之,这就是你所做的:

  1. 安装Os,安装应用程序
  2. 为自己创build一个本地用户帐户
  3. 安装/激活你的SSH服务器并configuration它,使其只允许你的用户帐户login; 另外configuration它​​来限制你可以login的IP地址/范围
  4. configurationLinux防火墙(iptables)
  5. 确保Web服务器没有对代码文件的读取权限

编辑:根据davidgo的评论:

  1. 您需要encryption源代码,以便他们无法检查它。