(转)企业生产环境用户权限集中管理方案案例
Posted liujiacai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转)企业生产环境用户权限集中管理方案案例相关的知识,希望对你有一定的参考价值。
https://wenku.baidu.com/view/0acd163d4a73f242336c1eb91a37f111f1850d94.html
http://blog.51cto.com/youngboy/1660551
https://www.cnblogs.com/redball/articles/6992236.html
企业生产环境用户权限集中管理方案案例
1问题现状
当前我们公司服务器上百台,各个服务器上需要管理的人很多(开发+运维+架构+DBA+产品+市场),在大家同时登录Linux服务器的时候,不同职能员工的水平不同,因此导致很不规范,root权限泛滥(几乎大部分人都拥有root权限),经常导致文件莫名奇妙的丢失,老手和新手对服务器的熟知程度不同,这样使得公司服务器安全存在很大的不稳定性,以及操作的安全性。据企业调查,50%的以上的安全问题都来自于内部。而不是外部。为了解决以上问题,单个用户管理权限过大的现状,现提出用户权限集中管理的方案。
2项目需求
我们既希望超级用户root密码掌握在少数或者唯一人的手中,又希望多个系统管理员或者相关权限的的人员,可以完成更多更复杂的与自身职能相关的工作。不至于越权操作导致系统安全隐患。
那么如何解决多个管理员都能解决系统而且又不让超级权限泛滥呢?这就需要sudo管理来代替或者结合su命令来完成这样苛刻且必要的服务器用户管理需求。
3具体实现
针对公司里面不同部门,根据员工的具体工作职能(例如:开发,运维数据库管理员等),分等级、层次的的实现对Linux服务器管理权限的最小化和规范化。这样既减少了运维管理的成本,消除了安全隐患,也提高了工作效率,实现了高质量、快速化的完成项目进度以及日常的系统维护。
4实施方案
说明:实施方案一般由积极主动发现问题的运维人员提出问题的,然后写好方案,再召集大家讨论可行性,最后确定方案,实施部署,最后后期维护总结。
思想:在提出问题之前,一定要想到如何解决,一并发出来解决方案
到此为止:你应该写完权限规划文档了。
4.1信息采集
4.1.1通过会议讲述方案思想
召集相关部门的领导通过会议讨论或者组织领导沟通确定权限管理方案的可行性。需要支持的人员:运维经理或者总监,CTO的支持、各部门领导的支持。我们作为运维人员,通过会议的形式做演讲,慷慨激昂的演说,取得老大们的认可。才是项目可以实施的前提。当然,如果不实施,你也得到了锻炼,老大对你积极主动的思想网站架构问题也是另眼看待的。
4.1.2收集各部门负责人权限信息
确定方案的可行性以后,会议负责汇总,提交、审核所有相关人员对Linux服务器的权限需要问题。
取得老大们的支持以后,通过发邮件或者联系相关人员取得需要的相关员工权限。比如说:请各部门经理整理归类本部门需要登录的Linux的权限人员名单、职位、以及负责的业务及权限。如果说不清楚权限细节,就说负责的业务细节。这样运维人员就可以确定需要是什么权限了。
4.1.3设计具体方案
按照需求执行Linux命令程序以及公司业务服务来规划权限和人员对应配置。主要是运维人员根据上面搜集的人员名单,需要的业务以及权角色,对应账号的配置权限,实际上就是sudo配置文件。
权限方案一旦实施以后,所有员工必须通过《员工Linux服务器管理权限申请表》来申请对应的权限,确定审批流程,规范化管理。这里实施后,把住权限申请流程很重要,否则大家不听话,方案实施也会泡汤的。
4.1.4具体执行
写操作说明,对各部门人员进行操作讲解,sudu执行命令,设计的PATH变量问题。运维提前处理好。
信息采集的结果如下:
某部门IDC权限细化方案:
目前IDC系统账号所有的权限都是超级权限,在安全方面存在着隐患,本着“给用户尽可能少的权限但仍允许他们完成任务”的宗旨,如今对常用命令进行分类细化:
用户分组表:
PRIMARYOM net001 %phpers |
primaryom01、primaryom02、primaryom03 |
PRIMARYKAIFA | php01、php02、php03、php04、php05 |
GWNETADMINS | net01 |
权限对照表格:
初级运维 CY_CMD_1 |
/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig |
高级运维 GY_CMD_1
|
/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/netstat,/sbin/route,/sbin/iptables,/etc/init.d/network,/bin/nice,/bin/kill,/usr/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/up2date,/usr/bin/yum,/sbin/fdisk,/sbin/sfdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount |
初级开发 CK_CMD_1 |
/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls |
高级开发 GK_CMD_1 |
/sbin/service,/sbin/chkconfig,/bin/tail /app/log*,/bin/cat,/bin/grep /app/log*,/bin/ls,/bin/sh ~/scripts/deploy.sh
|
高级网管 GW_CMD_1 |
/sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool,/bin/cat |
不同级别人员权限分配表:
|
拥有权限 |
简要说明 |
普通开发权限 |
NOPASSWD:FCMD_1,FCMD_3,PROCESSES |
无需密码切换到分用户杀死进程重启服务,查看等权限 |
开发sudo权限 |
NOPASSWD:!/bin/sudo su - root,FCMD_0 |
除了可以切到root,苏可以执行除重启机器外的所有权限 |
运维上线权 |
NOPASSWD:FCMD_1,FCMD_2,FCMD_3,PROCESSCE |
无密码切换到分用户,切换到负载均衡,重启服务 |
运维超级权 |
NOPASSWD:ALL |
所有权限 |
分用户权限 |
NOPASSWD:PROCESSER, /run/apache/bin/apachectl -k start |
分用户杀死和启动进程 |
5. 权限集中管理方案具体实施
5.1 创建用户
[root@jumpserver-01-150 ~]# for user in primaryom01 primaryom02 primaryom03 net01 senior01 manager01 > do > useradd $user > echo "123456"|passwd --stdin $user > done Changing password for user primaryom01. passwd: all authentication tokens updated successfully. Changing password for user primaryom02. passwd: all authentication tokens updated successfully. Changing password for user primaryom03. passwd: all authentication tokens updated successfully. Changing password for user net01. passwd: all authentication tokens updated successfully. Changing password for user senior01. passwd: all authentication tokens updated successfully. Changing password for user manager01. passwd: all authentication tokens updated successfully.
5.2 创建5个开发和一个开发经理
[root@jumpserver-01-150 ~]# for i in `seq 5` > do > useradd php0$i -g phpers > echo "123456"|passwd --stdin php0$i > done Changing password for user php01. passwd: all authentication tokens updated successfully. Changing password for user php02. passwd: all authentication tokens updated successfully. Changing password for user php03. passwd: all authentication tokens updated successfully. Changing password for user php04. passwd: all authentication tokens updated successfully. Changing password for user php05. passwd: all authentication tokens updated successfully.
[root@jumpserver-01-150 ~]# for user in kaifamanager001 seniorphpers
> do
> useradd $user
> echo "123456"|passwd --stdin $user
> done
Changing password for user kaifamanager001.
passwd: all authentication tokens updated successfully.
Changing password for user seniorphpers.
passwd: all authentication tokens updated successfully.
5.3 给用户添加权限
[root@jumpserver-01-150 ~]# visudo #shift+g切换至末尾
......
#Cmnd_Alias by redball in 2017 Cmnd_Alias CY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,\\ /sbin/ifconfig Cmnd_Alias GY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,\\ /sbin/ifconfig,/bin/netstat,/sbin/route,/sbin/iptables,/etc/init.d/network,/bin/nice,\\ /bin/kill,/usr/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/up2date,/usr/bin/yum,\\ /sbin/fdisk,/sbin/sfdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount Cmnd_Alias CK_CMD_1 = /usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls Cmnd_Alias GK_CMD_1 = /sbin/service,/sbin/chkconfig,/bin/tail /app/log*,/bin/cat,/bin/grep /app/log*,/bin/ls,/bin/sh ~/scripts/deploy.sh Cmnd_Alias GW_CMD_1 = /sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool,/bin/cat,/var/log/* ##User_Alias by greymouster##2017 User_Alias PRIMARYOM = primaryom01,primaryom02,primaryom03 User_Alias GWNETADMINS = net01 User_Alias PRIMARYKAIFA = %phpers ##Runas_Alias by greymouster##2017 Runas_Alias OP=root #pri config senior01 ALL=(OP) GY_CMD_1 manager01 ALL=(ALL) NOPASSWD:ALL kaifamanager001 ALL=(ALL) ALL, /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,\\ !/usr/sbin/visudo,!/usr/bin/vi *sudoer* seniorphpers ALL=(OP) GK_CMD_1 PRIMARYOM ALL=(OP) CY_CMD_1 GWNETADMINS ALL=(OP) GW_CMD_1 PRIMARYKAIFA ALL=(OP) CK_CMD_1
6.测试
6.1检查添加用户
[root@jumpserver-01-150 ~]# tail -13 /etc/passwd primaryom01:x:501:501::/home/primaryom01:/bin/bash primaryom02:x:502:502::/home/primaryom02:/bin/bash primaryom03:x:503:503::/home/primaryom03:/bin/bash net01:x:504:504::/home/net01:/bin/bash senior01:x:505:505::/home/senior01:/bin/bash manager01:x:506:506::/home/manager01:/bin/bash php01:x:507:999::/home/php01:/bin/bash php02:x:508:999::/home/php02:/bin/bash php03:x:509:999::/home/php03:/bin/bash php04:x:510:999::/home/php04:/bin/bash php05:x:511:999::/home/php05:/bin/bash kaifamanager001:x:512:512::/home/kaifamanager001:/bin/bash seniorphpers:x:513:513::/home/seniorphpers:/bin/bash
6.2查看primaryom01的sudo权限并测试
[root@jumpserver-01-150 ~]# su - primaryom01 [primaryom01@jumpserver-01-150 ~]$ whoami primaryom01 [primaryom01@jumpserver-01-150 ~]$ sudo -l We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for primaryom01: #此处需要输入primaryom01的密码 Matching Defaults entries for primaryom01 on this host: requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\\:/bin\\:/usr/sbin\\:/usr/bin User primaryom01 may run the following commands on this host: #查看这里是重点 (root) /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname, /sbin/ifconfig
[primaryom01@jumpserver-01-150 ~]$ hostname
jumpserver-01-150
[primaryom01@jumpserver-01-150 ~]$ cd /home/redball/
-bash: cd: /home/redball/: Permission denied
经验总结:
1、在了解公司业务流程后,踢出权限管理改造方案与实施项目。
2、我首先撰写了方案后,给老大看,取得老大的支持后,召集大家开会讨论。
3、讨论确定可行后,有我负责推进实施。
4、实施后效果,公司的服务器权限管理更加清晰了(总结维护)
5、制定了账号权限申请流程及权限申请表格。
以上是关于(转)企业生产环境用户权限集中管理方案案例的主要内容,如果未能解决你的问题,请参考以下文章