通过Linux中的网页进行管理工作的最佳方法(安全性)?

时间:2010-05-23 07:49:01

标签: linux security web-applications

我想构建一个基于Web的管理工具,允许系统管理员通过网页运行预先配置的命令和脚本(简单且有限的webmin),最佳方法是什么?

我已经开始使用Ubuntu安装LAMP并为用户提供www-data root的权限! as I learned(请查看链接)这是一个非常糟糕的举动!!!,那么如何构建这样的基于Web的系统而没有安全风险?

欢呼声

2 个答案:

答案 0 :(得分:3)

几年前我做过这样的事情。它(我喜欢认为)相当安全,只能通过有限数量的经过预先审核的用户访问,但它仍然让我感到不安!如果你可以避免这样做,我建议你这样做:)

我有一个数据库位于前端Web层和实际执行操作的脚本之间。相关表包含符号命令名称和可选的数字参数,这足以满足我的需要。这允许您审计已执行的内容,提供快速和脏的方式让非www用户执行操作,并且意味着如果网站受到损害,他们受到DB结构(某种程度上)和从中提取数据的脚本的约束它

来自数据库的数据可以由在单独的非特权帐户中运行的守护程序读取。守护进程从数据库中提取并清理数据并将“命令”映射到实际可执行文件(使用硬编码映射,因此commandA执行A,commandB执行foo,其他任何内容都会被标记为错误)。可以使用AppArmor(或我想象的SELinux)锁定帐户,以防止它执行,读取或写入您不期望的任何内容。建立一个系统来提醒您守护程序或AppArmor / SELinux中的任何错误。

如果合适,可以设置守护程序运行的可执行文件,或者您可以使用sudoers机制允许非特权帐户在没有密码的情况下执行它们。

答案 1 :(得分:1)

  

我已经开始使用Ubuntu安装LAMP并为用户提供www-data root的权限

不要这样做。

如果你真的想在root特权下执行一些非常具体的脚本。创建这样的预定义非常有限的脚本,允许用特定用户使用sudo进行无密码执行,然后通过脚本运行它们,不要忘记身份验证。

一般来说这是个坏主意。

SSH是你最好的朋友。