企业实战项目之服务器用户权限集中管理
企业实战项目之服务器用户权限集中管理
实际生产环境中可能服务器相当多,随之服务器维护、管理人员也逐渐增多(运维+开发+项目经理+DBA等),因每个人员的操作水平不同,所以从业务角度与服务器安全性来看,一定的权限划分是有必要的,也是实际生产环境中必须要做的,为了解决用户的权限问题,今天来聊一聊服务器用户权限集中管理的解决方案。
前面介绍了相关的用户权限提权管理方法,就是采用sudo授权的方式进行管理,因为当企业内部人员居多,权限划分类别也比较细化的时候,一个个的添加也比较耗费时间与精力,后期修改与维护也非常麻烦,因此,今天我们结合前面讲的sudoers配置规则(别名)来进行相关权限集中管理。
项目环境:
1、目前公司有初级运维三人、高级运维二人、运维经理一人
2、项目经理三人
3、初级开发人员三人、高级开发二人、开发经理一人
4、高级网络工程师一人
5、高级DBA一人
6、目前权限管理存在无序的状态,服务器操作非常不安全
7、系统环境
[root@Centos ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@Centos ~]# uname -r
2.6.32-431.el6.x86_64
项目过程
一、服务器上创建用户
yuw001 yuw002 yuw003 gyuw001 gyuw002 yuwmanager
manager cjkaifa001 cjkaifa002 cjkaifa003 gjkaifa001gjkaifa001
kaifamanager gjnetwork001 gjdba001
密码统一设置为111111
二、定义各类别名配置
1、定义命令别名
2、定义用户别名
3、定义Runas_Alias别名
三、配置sudoers配置
四、测试环境编写配置文件/etc/sudoer(visudo)
保存退出时提示有错误,经检查发现的确存在错误修改后如下
五、测试环境测试配置结果
测试结果显示配置完全正确,达到预定要求,因些可以备份一份到本地然后去配置生产服务中的配置文件
最终配置文件如下
## Command Aliases For sudo by guanliyuan 20160808
Cmnd_Alias CY_CMD = /bin/ping, /bin/hostname, /usr/bin/free, /sbin/route, /bin/netstat
Cmnd_Alias GY_CMD = /bin/ping, /bin/hostname, /usr/bin/free, /sbin/route, \
/bin/netstat, /sbin/ifconfig, /sbin/dhclient, /usr/bin/net, /sbin/iptables,\
/usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool, /bin/mount,\
/bin/unmount, /sbin/fidisk, /sbin/parted, /sbin/sfdisk, /bin/rpm, /bin/kill
Cmnd_Alias CK_CMD = /usr/bin/tail/app/log*, /bin/cat, /bin/ls
Cmnd_Alias GK_CMD = /sbin/service, /sbin/chkconfig, /usr/bin/tail/app/log*,\
/bin/cat, /bin/ls
Cmnd_Alias GNET_CMD = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient,\
52 28888 52 14988 0 0 1838 0 0:00:15 0:00:08 0:00:07 3326>/usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig,\
/sbin/mii-tool
Cmnd_Alias GDBA_CMD = ALL, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
## Users_Aliases For sudo by guanliyuan 20160808
User_Alias CYADMINS = yuw001, yuw002, yuw003
User_Alias GYADMINS = gyuw001, gyuw002
User_Alias CKADMINS = cjkaifa001, cjkaifa002, cjkaifa003
User_Alias GKADMINS = gjkaifa001, gjkaifa002
User_Alias GNETWORK = gjnetwork001
User_Alias GJDBA = gjdba001
## Runas_Aliases For sudo by guanliyuan 20160808
Runas_Alias OP = root
##Config For sudoers
CYADMINS ALL=(OP) CY_CMD
GYADMINS ALL=(OP) GY_CMD
CKADMINS ALL=(OP) CK_CMD
GKADMINS ALL=(OP) GK_CMD
GNETWORK ALL=(OP) GNET_CMD
GJDBA ALL=(OP) GDBA_CMD
yuwmanager ALL=(ALL) NOPASSWD:ALL
manager ALL=(ALL) ALL, /usr/bin/passwd [A-Za-z]*, !/usr/passwd root, !/usr/sbin/visudo, !/usr/bin/vi *sudoer*
kaifamanager ALL=(ALL) ALL, /usr/bin/passwd [A-Za-z]*, !/usr/passwd root, !/usr/sbin/visudo, !/usr/bin/vi *sudoer*
Defaults logfile=/var/log/sudo.log
六、备份正确配置并修改实际生产服务器配置文件
注:生产服务器中配置之前记得备份原有的配置文件,防止出现错误时可以即时恢复原来的配置cp /etc/sudoers /etc/sudoers.bak.gl.20160808
整个配置过程需要注意的事项
1、定义用户别名时需要大写,小写会出现错误
2、定义命令别名时需要写出绝对路径,换行用“\”
3、配置时注意加上注释,以便后期维护