Linux特殊属性chattr场景示例

2021年4月26日 75点热度 0人点赞 0条评论

文章描述

了解和测试一下chattr的作用。

1. 简单介绍文件对特殊属性

特殊属性是凌驾于rwx基础权限上的一种高级属性。

作用:

1.创建一个文件,不允许被修改、移动、删除,包括root也不能跨越权限,适合/etc/passwd类关键文件。

2.创建一个文件,仅允许往文件里面追加数据,不允许修改、移动、删除,适合sudo的审计日志。

2. 设置特殊属性

通过charrt命令设置文件的特殊权限

标题内容

 chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...

常用的是a和i

a : 只可以对文件进行内容的追加

i : 锁定文件,不允许其他操作

 

3. chattr场景示例

模拟病毒串改站点,然后使用chattr锁住文件,让病毒程序无法串改,然后追踪并杀死病毒程序:

  • 1.安装并启动http服务
  • 2.模拟病毒脚本篡改网页内容
  • 3.锁定篡改文件,然后找出病毒,将其杀死

实际操作

3.1 模拟web站点服务

yum -y install httpd
setenforce 0 && systemctl stop firewalld
systemctl start httpd
echo 'welcome to linux98.com!!!' > /var/www/html/index.html

 

3.2 查看站点服务是否成功开启

image-20210426144912720

3.4 编写病毒程序

[root@magedu-node1 ~]# cat virus 
#!/bin/bash
web_site=/var/www/html/index.html

#模拟入侵操作
while true
do
    echo "你的站点已经被入侵,清给xxx账户打钱解锁" > ${web_site}
    sleep 10
    #设置定时任务,顽强程度+1
    echo "*/1 * * * * /bin/bash /usr/bin/virus &>/dev/null" > /var/spool/cron/root
    #将脚本锁住,顽强程度+1
    chattr +i /usr/bin/virus
done

[root@magedu-node1 ~]# chmod 777 virus && mv virus /usr/bin/

3.5 开启病毒并查看效果

[root@magedu-node1 ~]# virus &

image-20210426161433280

3.6 模拟还原网站

[root@magedu-node1 html]# echo "站点正在维护中......" > /var/www/html/index.html

但是过了一会儿文件又被修改了

image-20210426161649939

3.7 杀死病毒并还原代码

#这里的操作一定要快速,如果速度慢了,那过了一会儿发现代码又被修改了,感觉病毒好像怎么也关闭不掉,是因为病毒程序写入了crontab计划任务,但手动修改计划任务后还是会被重新植入病毒程序

1.使用chattr 锁定关键程序(index.html、crontab)

[root@magedu-node1 ~]# echo 'welcome to linux98.com!!!' > /var/www/html/index.html
[root@magedu-node1 ~]# chattr +i /var/www/html/index.html
/usr/bin/virus:行7: /var/www/html/index.html: 权限不够

#这里添加完锁后,病毒程序也无法篡改文件了

2.清空计划任务并锁定计划任务配置文件

[root@magedu-node1 html]# > /var/spool/cron/root && chattr +i /var/spool/cron/root

3.杀死病毒程序

[root@magedu-node1 html]# kill -9 $(ps -ef | grep virus |grep -v grep | awk '{print $2}')

4.删除病毒文件

[root@magedu-node1 html]# rm -f /usr/bin/virus 
rm: 无法删除"/usr/bin/virus": 不允许的操作
[root@magedu-node1 html]# ll /usr/bin/virus 
-rwxrwxrwx. 1 root root 373 4月  26 16:33 /usr/bin/virus
[root@magedu-node1 html]# lsattr /usr/bin/virus 
----i----------- /usr/bin/virus
[root@magedu-node1 html]# chattr -i /usr/bin/virus 
[root@magedu-node1 html]# rm -f /usr/bin/virus 
[root@magedu-node1 html]# 
#这里就体现出加锁的重要性了,病毒文件加了锁后也不容易被删除

小李

学无止境,勇攀高峰。