欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

等保测评主机安全:centos访问控制(续)

来源:本站整理 作者:佚名 时间:2019-09-09 TAG: 我要投稿

一、说明
权限控制在等保测评里仅仅说了要求,但是怎么落地却基本没写,怎么说呢,比较抽象。所以,我觉得还是有必要了解一下centos系统大概有什么方法可以实现对用户的权限控制,不至于测评的时候完全不知道怎么测。这里我把我现在知道的关于权限控制的方法都列举出来,供大家参考参考。
这里是访问控制的上一篇文章,大家可以先看看上一篇:
等保测评主机安全:CentOS访问控制
二、 更精细化的文件权限控制
一般的,对目录和文件,可以实现创建者、所属组、其他用户这三类用户(UGO)的访问权限设置(r、w、x)。而setfacl命令,则可以更为精确的在这三类用户之外对权限进行分配,叫做ACL权限设置。比如:让某一个用户对某一个文件具有某个权限。
与setfacl相对的,可以用getfacl查看设置好的ACL权限。
2.1. ACL
比如用getfacl命令来查看一个定义好了的ACL文件:
[root@localhost ~]# getfacl ./test.txt
#file: test.txt
#owner: root
#group: admin
user::rw-
user:john:rw-
group::rw-
group:dev:r--
mask::rw-
other::r--
类型
说明
#file: test.txt
说明文件名为 test.txt
#owner: root
说明文件创建者为root
#group: admin
说明文件所属组为admin组
user::rw-
定义了ACL_USER_OBJ, 说明文件创建者拥有read and write permission
user:john:rw-
定义了ACL_USER,这样用户john就拥有了对文件的读写权限,实现了我们一开始要达到的目的
group::rw-
定义了ACL_GROUP_OBJ,说明文件的所属组拥有read and write permission
group:dev:r–
定义了ACL_GROUP,使得dev组拥有了对文件的read permission
mask::rw-
定义了ACL_MASK的权限为read and write
other::r–
定义了ACL_OTHER的权限为read
这里稍微说明下,mask::rw-代表着这个文件的最大权限,在ACL中定义的用户、组的权限实际都不是真实权限,真实的权限是要跟mask的权限相与之后产生的权限。
如这个例子,mask的值为rw,所以定义的ACL的权限中,假如john的权限设置为rwx,那么那么它的最终权限就是与mask相与之后的结果,也就是rw。(当然,对于txt文件而言,执行权限没有啥意义)。
注:Mask只对其他用户和组的权限有影响,对owner和other的权限是没有任何影响的。
2.2. ACL与UGO
UGO也就是我们常用的文件权限模式,比如:-rwxr-xr-x. 1 root root 10688 11月 23 2013 /etc/init.d/iptables
而当你对某文件设置了ACL之后,再用ls命令查看UGO,就会发现多出一个+号:
[root@localhost ~]# ls -l
-rwxrwxr--+ 1 root admin 0 Jul 3 23:10 test.sh
并且其中原来代表group权限的权限位,被mask所替代,也就是说rwxrwxr–中的rwx不再代表group的权限,而是代表mask,用getfacl 查看如下:
[root@localhost ~]# getfacl --omit-header ./test.sh
user::rwx user:john:rwx
group::rw-
mask::rwx
other::r--
可以得知,group的实际权限是rw-。
2.3. 更多内容
实际上setfacl和getfacl相关的内容很多,我这里只是摘抄了一部分比较基础的,想要详细了解的可以点击:https://www.cnblogs.com/MLibra/p/6240209.html我这里就不继续摘抄了。
三、chroot命令
linux的目录结构如下:

通过chroot命令可以将根目录设置为指定的位置,而根目录之上的位置将不可再访问,则这样就实现了一定的访问控制。
具体内容,大家可以看一看:https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
四、sudo命令
sudo命令可以允许用户以另外的某个用户的身份执行某些命令,它的配置文件为/etc/sudoers。
比如在sudoers文件中这样配置:
4.1. 常见形式
beinan ALL=(root) /bin/chown, /bin/chmod
表示的是beinan用户可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,可以切换到任何用户招执行/bin/chmod 命令,但切换的时候都需要输入beinan自己的密码。
如果是这样:
beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod
则beinan用户在任何可能出现的主机名的主机中,都可以切换到root下去执行/bin/chown命令,而且还不需要输入beinan用户自己的密码。(但执行chmod时还是需要beinan输入自己的密码)
所以在等号右边是一种这样的格式:
授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]......
[(切换到哪些用户或用户组)]:如果不写,则默认为切换到root用户。如果是ALL ,则代表能切换到所有用户。与此相对应的,sudo命令有一个-u参数,以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
[是否需要密码验证]:如果不写,则默认为要输入自己的密码。如果是NOPASSWD:,则代表不需要输入自己的密码。
%beinan ALL=/usr/sbin/*,/sbin/*
这里加%号代表用户组,%和用户组名之间不能有空格。而/usr/sbin/*中最后的符号代表通配符,表示sbin目录下的的所有命令。
而且对于命令,还可以指定参数,比如:
beinan ALL=/bin/more /etc/shadow
对于beinan用户,在这里只能用more命令查看/etc/shadow文件。
所以从上面的几个例子可以看到,sudo权限的控制粒度可以达到非常细的地步。
4.2. 别名
可以对用户、用户组、命令等设置别名(组),需要使用时直接引用这个别名(组)即可:
User_Alias SYSADER=beinan,linuxsir,%beinan
User_Alias DISKADER=lanhaitun
Runas_Alias OP=root
Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载