在日常Linux虚拟主机的运输中,经常受到权限的困扰。 过多的授予会违反最低权限原则,对Linux虚拟主机造成一些安全危险,导致无法正常进行未授予的业务。 现在,我们来看看如何优雅地控制Linux虚拟主机的权限并确保系统安全。
0x01更改APP应用程序的版本信息
修改APP应用程序的版本信息与权限无关,但可以对APP应用程序起到一定的保护作用。 本节以tengine为例,介绍如何修改APP应用程序的版本信息。 其他apache等方法相似。
1、修改配置文件隐藏版本信息
将server_tokens off添加到配置文件nginx.conf的http部分,但这种方法只需隐藏版本号即可显示服务信息。
配置如下图所示。
2、要贯彻修改,修改源代码隐藏,解压缩tar包,修改$BASE_DIR/src/core/nginx.h文件。
修正前:
修改后:
虽然这里不介绍编译过程,但编译后的运行效果如下图所示,您可以看到http标头中的服务和版本信息已经过修改。
构建0x02有限外壳环境
您可能希望限制用户登录后的行为,以便用户可以在受限的shell环境中操作。 本节介绍如何使用提供可为每个用户设置的受限shell的shell,轻松而严格地限制用户访问的目录、可用的命令以及非法操作的日志。
不说明安装步骤。 yum安装后的配置文件路径为/etc/l shell.conf。 主要配置包括logpath :配置日志路径、allowed :允许运行的命令、forbidden :禁止使用的字符或命令、path :仅允许访问的路径、env_vars :环境变量。
配置后,修改想要限制的用户shell,
、或直接修改vipw。 必须手动创建日志目录并授予权限。
如上图所示,只能使用ls、echo、cd和ll命令,并且只能访问/home/tomcat/、/usr、/etc、/tmp和/opt路径。 在受限shell上操作时,您会发现不允许的操作是被禁止的。
日志记录
应用场景有很多,大家根据自己的实际业务环境来活用。
注意:请不要允许bash、sh等命令。 允许这些命令允许用户逃离shell的受限环境。
0x03 linux ACL
linux的默认三个基本权限(rwx )和三个特殊权限(suid、sgid、sticky )在通常情况下可以适当调整,但在有多个用户具有多个组的情况下,可以对特定文件和目录配置权限
在使用acl之前安装acl和libacl,以确定系统是否支持acl。 默认情况下支持Linux。
打开分区的acl权限:
临时打开: mountore mount、acl磁盘分区,永久打开需要修改/etc/fstab
场景:一个文件只允许所有者和其他用户a访问,其他用户不允许访问。
a用户名为tomcat,修改文件后只有所有者root和其他用户的tomcat可以访问acl,并且在将其设置为只读之前,将拒绝tomcat用户的读取操作。
设置acl后,tomcat用户变为可读,user1用户被拒绝。
严格限制0x04网络出入站规则
在攻击场景中,攻击者通常在获得一定权限后,可以反弹外壳进行交互操作,严格限制出入站规则,有效屏蔽这种攻击行为。
入站访问策略通常有严格的限制,但出站策略经常被忽略,允许攻击者反弹shell。 本节介绍使用iptables的有效限制。
iptables非常强大,请仔细研究一下。 有很多有趣的东西。
以上是一个简单的例子,扔砖头,拿出一些想法,大家就可以自由发挥,灵活运用,挖掘出更多快乐的东西。