1. 程式人生 > >Linux企業生產環境用戶權限集中管理項目方案案例

Linux企業生產環境用戶權限集中管理項目方案案例

最大 -h 賬戶 comm min border scrip 架構 調查

企業生產環境用戶權限集中管理項目方案案例:

1 問題現狀

當前我們公司裏服務器上百臺,各個服務器上的管理人員很多(開發+運維+架構+DBA+產品+市場),在大家登錄使用Linux服務器時,不同職能的員工水平不同,因此導致操作很不規範,root權限泛濫(幾個所有員工都有root權限),經常導致文件等莫名其妙的丟失,老手和新手員工對服務器的熟知度不同,這樣使得公司服務器安全存在很大的不穩定性、及操作安全隱患,據調查企業服務器環境,50%以上的安全問題都來源於內部,而不是外部。為了解決以上問題,單個用戶管理權限過大現狀,現提出針對Linux服務器用戶權限集中管理的解決方案。

2 項目需求

我們希望超級用戶root密碼掌握在少數或唯一的管理員手中,又希望多個系統管理員或相關有權限的員工,能夠完成更多更復雜的自身職能相關的工作,又不至於越權操作導致系統出現安全隱患。

最小化:1)安裝軟件最小化

2)目錄文件權限最小化

3)用戶權限最小化

那麽,如何解決多個系統管理員都能管理系統而又不讓超級權限泛濫呢?這就需要sudo管理來替代或者結合su命令來完成這樣的苛刻且必要的企業服務器用戶管理需求。

3 具體實現

針對公司不同部門,根據員工的具體工作職能(例如:開發,運維,數據庫管理員)等級、分層次的實現對linux服務器的權限最小化、規範化。這樣即減少了運維管理成本,消除了安全隱患,又提高了工作效率,實現了高質量的、快速化的完成項目進度,以及日常系統維護。

4 實施方案

說明:實施方案一般都是由積極主動發現問題的運維員工提出的問題,然後寫好方案,在召集大家討論可行性,最後確定方案,實施部署,最後後期總結維護。

思想:在提出問題之前,一定要想到如何解決,一並發出來解決方案。

4.1 信息采集(含整個方案流程)

1.1 召集相關各部門領導通過會議討論或是與各組領導溝通權限管理方案的可行性。需要支持的人員:運維經理或者總監、CTO支持、各個部門組的領導。我們做運維人員,拿著類似老師這個項目方案,給大家講解這個文檔,通過會議形式做演講,慷慨激昻的演說,取得大佬們的支持和認可,才是項目能夠得以最終實施的前提,當然,即使不實施,那麽,你的能力也得到了鍛煉,老大對你的積極主動思考網站架構問題也會另眼看待的。

1.2確定方案可行性後,會議負責人匯總、提交、審核所有相關員工對linx服務器的權限需求。

取得大佬們的支持後,通過發郵件或者相關人員取得需要的相關員工權限信息。比如說,請各個部門經理整理歸類部門需要登錄Linxu權限的人員名單、職位、及負責的業務及權限,如果說不清楚權限細節,就說負責的業務細節,這樣運維人員就可以確定需要啥權限了。

1.3 按照需要執行的linux命令程序及公司業務服務來規劃權限和人員對應配置。主要是運維人員根據上面手機的人員名單,需要的業務及權限角色,對應帳號配置權限,實際就是配置sudo配置文件。

1.4 權限方案一旦實施後,所有員工必須通過《員工Linux服務器管理權限申請表》來申請對應的權限,確定審批流程,規範化管理。這裏實施後把為權限申請流程很重要,否則,大家不聽話,方案實施完也會泡湯的。

1.5 寫操作說明,對各部門人員進行操作講解。sudo執行命令後,涉及到path變量問題,運維提前處理好。

4.2收集員工職能和對應權限

此過程是召集大家開會確定,或者請各領導安排人員進行統計匯總,員工及對應的職責,交給運維人員,由運維人員優化職位所對應的系統權限。

命令用全路徑,命令與命令之間用逗號隔開。

技術分享圖片

/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/netstat,/sbin/route

技術分享圖片

/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/etc/rc.d/init.d/network,/bin/nice,/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/yum,/sbin/fdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount

技術分享圖片

初級開發:/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls

高級開發:/sbin/service,/sbin/chkconfig,/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls,/bin/sh ~/scripts/deploy.sh

開發經理:

ALL,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/visudo,!/bin/vi,

!/usr/sbin/vim

技術分享圖片

ALL,/usr/bin/passwd [A-Za-z]* , !/usr/bin/passwd root , !/usr/sbin/visudo, !/usr/bin/vim,

!/bin/vi, !/bin/su , !/user/bin/sudo

技術分享圖片

/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/*

5 模擬創建用戶角色

建立3個初級運維,一個高級運維,一個網絡工程師,一個運維經理,密碼統一為111111。

批量創建用戶

技術分享圖片

建立5個開發人員,屬於phpers組

技術分享圖片

##Cmnd_Alias by sdr##2018

Cmnd_Alias

CY_CMD_1=/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/netstat,/sbin/route

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/killall,/bin/rpm,/usr/bin/yum,/sbin/fdisk,/sbin/sfdiak,/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/grep /app/log*,/bin/cat,/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/rfcom,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool,/bin/cat /var/log/*

通過visudo編輯/etc/sudoers,添加如下內容:

換行用“\”

##User_Alias by sdr##2018 (用戶別名首字母大寫)

User_Alias CHUJIADMINS =chuji001,chuji002,chuji003

User_Alias GWNETADMINS = net001

User_Alias CHUJI_KAIFA = %phpers (phpers組)

##Runas_Alias by sdr ##2018

Runas_Alias OP=root (用root的角色去做)

#pri config

senior001 ALL=(OP) GY_CMD_1

manager001 ALL=(ALL) NOPASSWD:ALL

kaifamanager001 ALL=(ALL) ALL,/usr/bin/passwd[A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/visudo,!/bin/vi,!/usr/sbin/vim

seniorphpers ALL=(OP) GK_CMD_1

CHUJIADMINS ALL=(OP) CY_CMD_1

GWNETADMINS ALL=(OP) GW_CMD_1

CHUJI_KAIFA ALL=(OP) CK_CMD_1

#註意:

1)別名首字母要大寫

2)路徑要全路徑

3)用“\”換行

6 實戰調試測試

技術分享圖片

技術分享圖片

技術分享圖片

7 成功後發郵件周知所有人權限配置生效,並附帶操作說明

有必要的話,培訓講解

8 制定權限申請流程及申請表

見單獨文檔

9 後期維護:不是特別緊急的需求,一律走申請流程

服務器多了,可以通過分發軟件批量分發/etc/sudoers(註意權限和語法檢查)。

除了權限上的控制,在賬戶有效時間上也進行了限制,

讓線上用戶的權限為永久權限可以使用以下方式進行時間上的控制,這樣才能讓安全最大化:技術分享圖片

提示:授權ALL在進行排除時會讓我們防不勝防,這種先開後關的策略並不是好的策略

10 sudo配置註意事項:

技術分享圖片

技術分享圖片

Linux企業生產環境用戶權限集中管理項目方案案例