linux tmp php,Linux 系统 tmp 目录的安全设置

在Linux系统中,至少有两个目录保存着系统的临时文件,一个就是 /tmp,另外一个是 /var/tmp。这两个目录有一个共同点就是所有用户在该目录下拥有可读写,可执行的权限,参考截图:

b4d5096d09551d5b55e7a6dc1d7b56ad.png

因为两个目录的权限的问题,攻击者可以把病毒或者木马文件放到这些临时目录下,用于信息的收集或者伪装运行系统的程序而实际上运行自己的程序。但是如果去修改临时目录的读写权限,则会影响系统上应用程序的正常运行。为了解决这个问题,则必须对这两个目录做特殊的处理。

/tmp 是一个独立的磁盘分区

这种情况下的处理最简单,直接修改 /etc/fstab 文件中 tmp 分区的挂载属性,加上 nosuid(不允许任何suid程序),noexec(在这个分区不能执行任何脚本等程序),nodev(不存在设备文件) 参数。

修改后的挂载属性应该和截图类似:

e1672ce2f223b678b0335a070f3e0b66.png

在挂载属性调整完毕后重新挂载/tmp分区,确保设置生效。

对于 /var/tmp 目录来说,如果有自己的独立分区的话就参考上述修改就可以,但如果只是 /var 目录下的一个子目录,则把目录下的所有数据移动到 /tmp 下,然后做一个软连接指向 /tmp 就可以了,具体操作为:mv  /var/tmp/*   /tmp

ln  -s  /tmp  /var/tmp

/tmp只是根目录下的一个子目录

这种情况的配置要麻烦一点,可以通过创建一个 loopback 文件系统(拿文件模拟为块设备),然后通过 loopback 特性挂载该文件系统到 /tmp 下,在挂载时指定前文的安全设置就可以了,操作实例如下:dd if=/dev/zero of=/dev/testfs bs=1M count=1000 (这里生成的文件?小是1G,如果需要更改大小,修改count后面的值就可以了)

mke2fs  -t ext4  /dev/testfs (格式化文件系统)

cp   -a  /tmp  /tmp.bak  (把之前存在于/tmp下的文件拷贝出来,以免再后面执行挂载的时候覆盖掉之前的文件)

mount -o  loop,noexec,nosuid,rw  /dev/testfs  /tmp(挂载到tmp目录下)

chmod 1777 /tmp

mv  -f  /tmp.bak/*  /tmp

rm  -rf  /tmp.bakecho "/dev/testfs  /tmp ext4 loop,nosuid,noexec,rw 0 0">>/etc/fstab(写入配置文件,下次开机自动挂载)

最后,测试一下挂载设置之后是否有效?

新建一个test.sh文件,具有执行权限,实验如截图:

fa80e68f2fba7d83344e756cc1a12c52.png

26813c6b847894d8b200e5c25fd638fb.png

从截图可以看到虽然具有执行权限,但是在 /tmp 下面已经无法执行任何文件了.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值