(转)企业生产环境用户权限集中管理方案案例

时间:2022-08-11 15:24:48

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、制定了账号权限申请流程及权限申请表格。 

QQ:741390503 NAME:redball 一点一滴的积累,一点一滴的沉淀! blog:http://www.cnblogs.com/redball/