在日常业务运维中,经常会受到权限的困扰,给多了就违背了最小权限原则,造成系统出现一些安全隐忧,给少了业务又无法正常进行,下面我们来看看如何优雅的控制系统权限,保证系统安全。 0x01修改使用版本信息 修改使用版本信息虽然和权限无关,但对使用可以起到一定的保护作用,本节我们以tengine为例,来介绍如何修改使用的版本信息。其他apache等方式相似。 1、修改配置文件隐藏版本信息 配置文件nginx.conf中http段添加server_tokens off,但此方式只能隐藏版本号,服务信息还是可以看到的。 配置如下图所示。 修改前: 有时候我们想限制用户登录后的行为,让用户在一个受限的shell环境操作,这里我们介绍如何利用lshell来快速实现,lshell提供了一个针对每个用户可配置的限制性shell,配置文件非常的简单,可以很容易的严格限制用户可以访问哪些目录,可以运用哪些命令,同时可以对非法操作进行日志记录。 安装过程不做介绍,yum安装后配置文件路径为/etc/lshell.conf。 主要的配置项有logpath:配置日志路径、allowed:允许执行的命令、forbidden:禁止运用的字符或者命令、path:只允许访问的路径、env_vars:环境变量。 配置好后,修改你想要限制的用户shell, 1 chsh -s /usr/bin/lshell $USER_NAME ,或者vipw直接修改。日志目录需要手工创建并赋权。注意:千万不要把bash、sh等命令允许,一旦允许这些命令,该用户就可以逃逸出lshell的受限环境了。 0x03 linux ACL linux默认的3种基本权限(rwx)以及3种特殊权限 (suid,sgid,sticky)在平常情况下做适当调整即可,但是如果出现多个组多个用户情况下对某些文件或目录做权限配置就会发现不够分配,所以为了搞定此类情况linux内核出现了acl(访问控制列表)模块来进行分层管理。 运用acl前要安装acl和libacl,查看系统是否支持acl,Linux默认是支持的。 1 dumpe2fs -h /dev/sda1 | grep acl(根据自己磁盘情况更改) 临时开启:mount –o remount,acl 磁盘分区,永久开启的话需要修改/etc/fstab 假设A用户名为tomcat,改文件只允许属主root和其他用户tomcat访问(只读) 设置acl前,tomcat用户读取操作被拒绝。 在攻击场景中,攻击者通常在获得到一定权限后,会反弹shell进行交互式操作,严格限制出入站规则,可以对此攻击行为进行有效阻断。 通常情况下,我们对入站访问策略会进行严格的限制,但出站策略经常被忽视,这就使得攻击者反弹shell成为可能,这里我们介绍运用iptables进行有效限制。 以上只一些简单的例子,抛个砖,引出一些思路,大家可以自由发挥,灵活使用,挖掘出更多好玩的东西。 |
发表评论