Linux 系统 tmp 目录的安全设置

赞赏 2016-07-12

在Linux系统中,至少有两个目录保存着系统的临时文件,一个就是 /tmp,另外一个是 /var/tmp。
这两个目录有一个共同点就是所有用户在该目录下拥有可读写,可执行的权限,参考截图。
​因为两个目录的权限的问题,攻击者可以把病毒或者木马文件放到这些临时目录下,用于信息的收集或者伪装运行系统的程序而实际上运行自己的程序。但是如果去修改临时目录的读写权限,则会影响系统上应用程序的正常运行。
为了解决这个问题,则必须对这两个目录做特殊的处理。

Linux 系统 tmp 目录的安全设置

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


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

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

3.JPG

在挂载属性调整完毕后重新挂载/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.bak
echo "/dev/testfs  /tmp ext4 loop,nosuid,noexec,rw 0 0">>/etc/fstab(写入配置文件,下次开机自动挂载)

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

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

4.JPG

 

5.JPG

 

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

登陆后阅读全文
阅读 3180 赞赏 0 有用 0 没用 0 收藏 0 分享

   



0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

云服务器 ECS Linux /tmp 目录文件是如何做到定期清理的?

改了php.ini中的open_basedir仍报错open_basedir restriction in effect

安全组设置允许SSH登录到 Linux 实例

Linux 流控原理,实现,及实例

Linux 如何使用 kpartx 命令读取分区表信息

Linux Web 环境配置站点的方法

Linux 内核配置问题导致 NAT 环境访问异常

Linux Mac Window网络异常时如何抓包?

Linux 系统虚拟主机 .htaccess 如何限制某些 IP 访问?

云服务器 ECS Linux 系统如何屏蔽某个 IP 的访问?

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章