全球主机交流论坛

标题: 关于虚拟主机部署中的安全问题,大家进来讨论讨论? [打印本页]

作者: renothing    时间: 2010-10-12 16:22
标题: 关于虚拟主机部署中的安全问题,大家进来讨论讨论?
现在很多linux虚拟主机商,都会开通shell权限给用户,方便管理,但是这样一来也带来了巨大的安全问题。先说说运行环境,Apache(suexec+fcgid)+php+mysql,所有用户均有shell权限。

默认情况下,一旦某个站点存在漏洞或者某位用户心存不轨,同服务器站点数据很容易被窃取。以下为例:
A,B站点同属服务器C。
比如A站点的用户发现B站点有漏洞,爆出了物理路径,但无法注入无法取得上传权限。
默认情况下,网站文件一般权限都会设置权限至少755,则漏洞就会产生(若设置成751,则html等静态文件无法读取,711会造成无法列举目录内文件,无法找到首页)。

A用户在得到了B站点的路径的情况下,完全可以通过shell登录窃取到B站点的机密配置文件如config.php等,从而窃取到B的数据库资料。

当然有一个办法,能避免文件被窃取。目录设置为755,动态文件设置为751/711/600(不给其他用户读的权限),静态文件设置成604/644

但这样做是无比的麻烦。。。


后继:通过配置ACL权限,额外分配给Apache运行用户读取和执行权限,并结合上述设置,能杜绝掉跨站攻击,而只需要设置目录或者文件权限为750即可。cgi(php)程序文件的权限可设置为600或400也能照常运行。但目录必须至少为750才能保证程序正常运行。

额,我的环境为前端nginx,后端apache跑php,所以额外分配了2个权限。
作者: dakai    时间: 2010-10-12 16:25
我这占座看楼下怎么说
作者: 组长    时间: 2010-10-12 16:25
最安全的方法 是不给 SSH
作者: wzlm123    时间: 2010-10-12 16:26
不知道国外的主机商怎么解决的? 可以参考!
作者: renothing    时间: 2010-10-12 16:26
标题: 回复 3# 的帖子
不给ssh,那就失去了一大特色。。。ssh管理起来相当方便。
作者: renothing    时间: 2010-10-12 16:29
不给ssh的话,如果不搭配ACL, Mysql里面有一个函数load_file(), 照样可能跨站攻击。
作者: renothing    时间: 2010-10-12 16:31
国外貌似一般都启用了ACL,并且搭配了更加安全的grsecurity内核补丁,配合Jailkit。 普通用户只能看到自己的进程,只能在特定目录玩,只能特定的命令。
作者: 组长    时间: 2010-10-12 16:32
原帖由 renothing 于 2010-10-12 16:29 发表
不给ssh的话,如果不搭配ACL, Mysql里面有一个函数load_file(), 照样可能跨站攻击。

给各大不给SSH的IDC主机商讨论吧
当然也有默认开放SSH 权限的主机商 比如site5
作者: renothing    时间: 2010-10-12 16:34
标题: 回复 8# 的帖子
site5不安全,我已经试验过了,虽然有grsecurity补丁,但他们没有启用acl。
作者: zrdlrofmine    时间: 2010-10-12 16:35
那你可以考虑ACL
作者: renothing    时间: 2010-10-12 16:36
标题: 回复 10# 的帖子
回楼上,我已经部署了ACL+grsecurity+jailkit了。即便是爆了路径,也无法窃取到资料。
作者: renothing    时间: 2010-10-12 16:39
各位有WHM的~可以自己开两个账户试试,即便不给shell, linux默认下也绝非那么安全。。。。
作者: wmfy808    时间: 2010-10-12 16:47
godaddy 都经常被人入侵的来说!
作者: renothing    时间: 2010-10-12 16:52
标题: 回复 13# 的帖子
当然了,即便是部署的再安全,但若用自己给others 开了读取权限,一样的被入侵。
安全是双向的。
作者: wmfy808    时间: 2010-10-12 17:04
原帖由 renothing 于 2010-10-12 16:52 发表
当然了,即便是部署的再安全,但若用自己给others 开了读取权限,一样的被入侵。
安全是双向的。

嘿嘿!限制用户只对自己目录有读取权限!
作者: renothing    时间: 2010-10-12 17:07
标题: 回复 15# 的帖子
这是不可能的。你要读取很多系统信息。关键是要限制用户的目录只对授权用户开放一定权限。
作者: wmfy808    时间: 2010-10-12 17:19
原帖由 renothing 于 2010-10-12 17:07 发表
这是不可能的。你要读取很多系统信息。关键是要限制用户的目录只对授权用户开放一定权限。

给读权限就可以了!然后其他信息比如:数据库连接字符串,选择加密!
作者: renothing    时间: 2010-10-12 17:22
标题: 回复 17# 的帖子
只要给了读权限,那就好办。。。。有的是办法干掉你~

所以一般情况,config.php这类文件要设置成600
作者: 大飞机    时间: 2010-10-12 19:58
好多技术语言,都狠强大
作者: 大飞机    时间: 2010-10-12 20:02
此留言被删除

[ 本帖最后由 大飞机 于 2010-10-13 00:28 编辑 ]
作者: winder    时间: 2010-10-12 20:11
其实你们说的我都不懂...我是来观望的
作者: wmfy808    时间: 2010-10-12 20:57
原帖由 renothing 于 2010-10-12 17:22 发表
只要给了读权限,那就好办。。。。有的是办法干掉你~

所以一般情况,config.php这类文件要设置成600

就算没权限!我也可以提权,直接拿你母鸡!计算机没有绝对的安全,只有相对的!
作者: renothing    时间: 2010-10-12 22:14
标题: 回复 22# 的帖子
提权没那么容易!现在不是溢出横行的时代了。。。
作者: 绝对菜鸟    时间: 2010-10-12 23:24
标题: 回复 22# 的帖子
看我ID
绝对的


上次装webmin玩  开了个用户a有shell的  结果没注意遭人入侵了
弱口令
全部的东西都删除了
作者: wmfy808    时间: 2010-10-12 23:36
原帖由 renothing 于 2010-10-12 22:14 发表
提权没那么容易!现在不是溢出横行的时代了。。。

那要看看有没有利益在驱动!
作者: renothing    时间: 2010-10-12 23:50
说到这里,各位看官。。。去检查下你们Mysql的数据库目录,或者重要的config.php文件权限是750还是755?若是755.。。。。嘿嘿




欢迎光临 全球主机交流论坛 (https://hostloc.onozo.cc/) Powered by Discuz! X3.4