网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > 网络安全预防措施

LINUX安全运维之:文件系统的权限修改与安全设置,linux安全设置(2)

  不正确的权限设置直接威胁着系统的安全,因此运维人员应该能及时发现这些不正确的权限设置,并立刻修正,防患于未然。下面列举几种查找系统不安全权限的方法。

  (1)查找系统中任何用户都有写权限的文件或目录查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al查找目录:find / -type d -perm -2 -o -perm -20 |xargs ls –ld(2)查找系统中所有含“s”位的程序

  find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al含有“s”位权限的程序对系统安全威胁很大,通过查找系统中所有具有“s”位权限的程序,可以把某些不必要的“s”位程序去掉,这样可以防止用户滥用权限或提升权限的可能性。

  (3)检查系统中所有suid及sgid文件

  find / -user root -perm -2000 -print -exec md5sum {} \;find / -user root -perm -4000 -print -exec md5sum {} \;

  将检查的结果保存到文件中,可在以后的系统检查中作为参考。

  (4)检查系统中没有属主的文件

  find / -nouser -o –nogroup

  没有属主的孤儿文件比较危险,往往成为黑客利用的工具,因此找到这些文件后,要么删除掉,要么修改文件的属主,使其处于安全状态。

  三、/tmp、/var/tmp、/dev/shm安全设定

  在Linux系统中,主要有两个目录或分区用来存放临时文件,分别是/tmp和/var/tmp。存储临时文件的目录或分区有个共同点就是所有用户可读写、可执行,这就为系统留下了安全隐患。攻击者可以将病毒或者木马脚本放到临时文件的目录下进行信息收集或伪装,严重影响服务器的安全,此时,如果修改临时目录的读写执行权限,还有可能影响系统上应用程序的正常运行,因此,如果要兼顾两者,就需要对这两个目录或分区就行特殊的设置。

  /dev/shm是Linux下的一个共享内存设备,在Linux启动的时候系统默认会加载/dev/shm,被加载的/dev/shm使用的是tmpfs文件系统,而tmpfs是一个内存文件系统,存储到tmpfs文件系统的数据会完全驻留在RAM中,这样通过/dev/shm就可以直接操控系统内存,这将非常危险,因此如何保证/dev/shm安全也至关重要。

  对于/tmp的安全设置,需要看/tmp是一个独立磁盘分区,还是一个根分区下的文件夹,如果/tmp是一个独立的磁盘分区,那么设置非常简单,修改/etc/fstab文件中/tmp分区对应的挂载属性,加上nosuid、noexec、nodev三个选项即可,修改后的/tmp分区挂载属性类似如下:

  LABEL=/tmp     /tmp          ext3    rw,nosuid,noexec,nodev   0 0其中,nosuid、noexec、nodev选项,表示不允许任何suid程序,并且在这个分区不能执行任何脚本等程序,并且不存在设备文件。

  在挂载属性设置完成后,重新挂载/tmp分区,保证设置生效。

  对于/var/tmp,如果是独立分区,安装/tmp的设置方法是修改/etc/fstab文件即可;如果是/var分区下的一个目录,那么可以将/var/tmp目录下所有数据移动到/tmp分区下,然后在/var下做一个指向/tmp的软连接即可。也就是执行如下操作:

  [root@server ~]# mv /var/tmp/* /tmp

  [root@server ~]# ln -s  /tmp /var/tmp

  如果/tmp是根目录下的一个目录,那么设置稍微复杂,可以通过创建一个loopback文件系统来利用Linux内核的loopback特性将文件系统挂载到/tmp下,然后在挂载时指定限制加载选项即可。一个简单的操作示例如下:

  [root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs

  [root@server ~]# cp -av /tmp /tmp.old

  [root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp

  [root@server ~]# mv -f /tmp.old/* /tmp/

  [root@server ~]# rm -rf /tmp.old

  最后,编辑/etc/fstab,添加如下内容,以便系统在启动时自动加载loopback文件系统:

  /dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0

  为了验证一下挂载时指定限制加载选项是否生效,可以在/tmp分区创建一个shell文件,操作如下:

  [root@tc193 tmp]# ls -al|grep shell

  -rwxr-xr-x   1 root root    22 Oct  6 14:58 shell-test.sh[root@server ~]# pwd

  /tmp

  [root@tc193 tmp]# ./shell-test.sh

  -bash: ./shell-test.sh: Permission denied可以看出,虽然文件有可执行属性,但是已经在/tmp分区无法执行任何文件了。

(责任编辑:admin)