目錄標題
- 賬號安全基本措施
- 系統賬號清理
- 密碼安全控制
- 使用su命令切換用戶
- Linux中的PRM安全認證
- RAM認證原理
- PAM認證的構成
- PAM安全認證流程
- 使用sudo機制提升權限
- 開關機安全控制
- 終端登錄安全控制
- 系統弱密碼檢測
- 網路掃描NMAP

賬號安全基本措施
系統賬號清理
- 將非登錄用戶的Shell設為/sbin/nologin
usermod -s /sbin/nologin 用戶名 - 鎖定長期不使用的賬號
usermod -L 用戶名 #鎖定賬戶
usermod -U 用戶名 #解鎖賬戶 - 鎖定密碼
passwd -l 用戶名 #鎖定密碼
passwd -u 用戶名 #解鎖密碼

passwd -S 用戶名 #查看用戶狀態 - 洗掉無用的賬號
userdel [-r] 用戶名 #-r連宿主目錄一起刪掉 - 鎖定賬號檔案passwd、shadow
鎖定賬號檔案后系統將無法再創建用戶或修改密碼
chattr +i /etc/passwd /etc/shadow
lsattr /etc/passwd /etc/shadow
chattr -i /etc/passwd /etc/shadow

密碼安全控制
-
設定密碼有效期
- 99999代表無有效期
-
要求用戶下次登錄時修改密碼
-
修改密碼組態檔適用于創建新用戶時
vim /etc/login.defs
…
PASS_MAX_DAYS 30

-
已用戶設定方法
chage -M 30 zhangsan
cat /etc/shadow | grep zhangsan

-
下次登錄時強制修改密碼
-
chage -d 0 zhangsan

-
-
命令歷史限制
-
查看輸入的歷史命令
- history
-
減少記錄的命令條數
- 默認記錄的命令條數是1000條,避免被竊取命令資訊泄露一些敏感命令
- vim /etc/profile
HISTSIZE=200
source /etc/profile #使它生效

-
登錄時自動清空命令歷史
vim ~/.bashrc
echo " " > ~/.bash_history
init 6 #設定完畢重啟

-
終端自動注銷
-
閑置600秒后自動注銷
vim /etc/profile
…
export TMOUT=600
source /etc/profile #驗證效果

使用su命令切換用戶
- 用途及用法
- 用途: 切換用戶
- 格式 su -目標用戶
- 密碼驗證
- root→任意用戶,不驗證密碼
- 普通用戶→其他用戶,驗證目標用戶的密碼
- 限制使用su命令切換用戶
- 將允許使用su命令的用戶加入wheel組
- 啟用pam_wheel認證模塊
gpasswd -a zhangsan wheel
vim /etc/pam.d/su
在第二行:auth sufficient pam_rootok.so
在第六行:auth required pam_wheel.so use_uid


a)以上兩行是默認狀態(即開啟第一行,注釋第二行),這種狀態下是允許所有用戶間使用su命令進行切換的
b)兩行都注釋也是允許所有用戶都能使用su命令,但root下使用su切換到其他普通用戶需要輸入密碼,如果第一行不注釋,則root使用su切換普通用戶不需要輸入密碼(pam_rootok.so模塊的主要作用是使UID為0的用戶即root用戶能夠直接通過認證而不用輸入密碼)
c)如果開啟第二行,表示只有root用戶和wheel組內的用戶才可以使用su命令
d)如果注釋第一行,開啟第二行,表示只有wheel組內的用戶才能使用su命令,root也被禁用su命令 - 查看su操作記錄
- 安全日志檔案:/var/log/secure
Linux中的PRM安全認證
- su命令的安全隱患
- 默認情況下,任何用戶都允許使用su命令,有機會反復嘗試其他用戶(root)的登錄密碼,帶來安全風險
- 為了加強su命令的使用控制,可借助PAM認證模塊,只允許極個別用戶使用su命令進行切換
- PAM(Pluggable Authentication Modules)可插拔式認證模塊
是一套可制定、動態加載的共享庫,使本地系統管理員可以隨意選擇程式的認證方式,PAM使用/etc/pam.d/下的組態檔,來管理對程式的認證方式,應用程式呼叫相應的PAM組態檔,從而呼叫本地的認證模塊,模塊放置在/lib64/security下,以加載動態庫的形式進行認證,比如使用su命令時,系統會提示輸入root用戶的密碼,這就是su命令通過呼叫PAM模塊實作的
RAM認證原理
- PAM認證 一般遵循的順序
- Service(服務)→PAM(組態檔)→pam_*.so
- 首先要確定哪一項服務,然后加載相應的PAM的組態檔(位于/etc/pam.d下),最后呼叫認證檔案(位于/lib64/security下)進行安全認證
- 用戶訪問服務器時,服務器的某一個服務程式把用戶的請求發送到PAM模塊進行認證, 不同的應用程式所對應的PAM模塊是不同的
- 如果想查看某個程式是否支持PAM認證,可以用 ls 命令查看/etc/pam.d |grep su或者進入/etc/pam.d目錄ls看有沒有su這條命令的檔案來證明
PAM認證的構成
- 查看su的PAM組態檔:cat /etc/pam.d/su
- 每一行都是獨立的認證程序
- 每一行可以區分為三個欄位
- 認證型別
- 控制型別
- PAM模塊及其引數

- 第一列代表PAM認證模塊型別
auth:對用戶身份進行識別,如提示輸入密碼,判斷是否為root
account:對賬號各項屬性進行檢查,如是否允許登錄系統,賬號是否已經過期,是否達到最大用戶數等,
password:使用用戶資訊來更新資料,如修改用戶密碼
session:定義登錄前以及退出后所要進行的會話操作管理,如登錄連接資訊,用戶資料的打開和關閉,掛載檔案系統 - 第二列代表PAM控制標記
required:表示需要回傳一個成功值,如果回傳失敗,不會立刻將失敗結果回傳,而是繼續進行同型別的下一驗證,所有此型別的模塊都執行完成后,再回傳失敗,
requisite:與required類似,但如果此模塊回傳失敗,則立刻回傳失敗并表示此型別失敗,
sufficient:如果此模塊回傳成功,則直接向程式回傳成功,表示此類成功,如果失敗,也不影響這型別的回傳值,
optional:不進行成功與否的回傳,一般不用于驗證,只是顯示資訊(通常用于session型別) ,
include:表示在驗證程序中呼叫其他的PAM組態檔,比如很多應用通過完整呼叫/etc/pam.d/system-auth(主要負責用戶登錄系統的認證作業)來實作認證面不需要重新逐一去寫配置項, - 第三列代表PAM模塊
默認是在/lib64/security/目錄下,如果不在此默認路徑下,要填寫絕對路徑,同一個模塊,可以出現在不同的模塊型別中,它在不同的型別中所執行的操作都不相同,這是由于每個模塊針對不同的模塊型別編制了不同的執行函式, - 第四列代表PAM模塊的引數
這個需要根據所使用的模塊來添加
傳遞給模塊引數,引數可以有多個,之間用空格分隔開
PAM安全認證流程
- 控制型別也稱作Control Flags,用于PAM驗證型別的回傳結果
- 1.required驗證失敗時仍然繼續,但回傳Fail(失敗)因為是必要條件所以必須通過最后結果才能通過
- 2.requisite驗證失敗則立即結束整個驗證程序,回傳Fail
- 3.sufficient驗證成功則立即回傳,不再繼續,否則忽略結果并繼續
- 4.optional不用于驗證,只顯示資訊常用與(session型別)

使用sudo機制提升權限
- su命令的缺點
- 默認情況下,任何用戶都允許使用su命令,有機會反復嘗試其他用戶(如root)的登錄密碼,帶來安全風險
- sudo命令的用途及用法
- 用途:以其他用戶身份(如root)執行授權命令
- 用法

- 配置sudo授權
- visudo或者vi /etc/sudoers
- 語法格式


- 用戶:直接授權指定的用戶名,或采用“%組名”的形式(授權一個組的所有用戶)
- 主機名:使用此規則的主機名,沒配置過主機名時可用localhost,有配過主機名則用實際的主機名,ALL則代表所有主機
- (用戶):用戶能夠以何種身份來執行命令,此項可省略,預設時以root用戶的身份來運行命令
- 命令程式串列:允許授權的用戶通過sudo方式執行的特權命令,需填寫命令程式的絕對路徑,多個命令之間以逗號“,”進行分割,ALL則代表系統中的所有命令
- 可以使用通配符“*”表示所有、取反符號“!”表示排除
- %wheel ALL=NOPASSWD:ALL %表示wheel組成員,nopasswd表示無需密碼即可使用sudo命令


有一個密碼快取期5分鐘內沒有進行操作就需要再次輸入密碼
- 通過設定別名的方式
使用關鍵字user_Alias、Host_Alias、Cmnd_Alias來設定別名(別名必須為大寫)

- 查看sudo操作記錄
- 啟用sudo操作日志
visudo
Defaults logfile = “/var/log/sudo”


- sudo -l #查看當前用戶獲得哪些sudo授權

開關機安全控制
- 調整BIOS引導設定
- 將第一引導設備設為當前系統所在硬碟
- 禁止從其他設備(光碟、U盤、網路)引導系統
- 將安全級別設為setup,并設定管理員密碼
- GRUB限制更改引導引數
- 通常情況下在系統開機進入GRUB選單式,按e鍵可以查看并修改GRUB引導引數,這對服務器是一個極大的威脅
- 可以為GRUB選單設定一個密碼,只有提供爭取到密碼才被允許修改引導引數
-
使用grub2-mkpasswd-pbkdf2生成密鑰

-
修改/etc/grub.d/00_header檔案中,添加密碼記錄


-
生成新的grub.cfg組態檔
grub2-mkconfig -o /boot/grub2//grub.cfg

配置好了重啟驗證即可此時

-
終端登錄安全控制
-
限制root只在安全終端登錄
-
安全終端配置:/etc/securetty

-
禁止普通用戶登錄
-
建立/etc/nologin檔案
touch /etc/nolongin -
洗掉nolongin檔案或重啟后即恢復正常
rm -rf /etc/nolongin
系統弱密碼檢測
-
Joth the Ripper,簡稱為JR
-
一款密碼分析工具,支持字典式的暴力破解
-
通過對shadow檔案的口令分析,可以檢測密碼強度
-
官方網站:http://www/openwall.com/john/
-
安裝JR工具
-
安裝方法

-
主程式檔案為john
-
檢測弱口令賬號
-
準備好密碼字典檔案,默認為password.lst
-
執行john程式,結合 --wordlist=字典檔案
-
操作步驟
1.把john檔案拖入到opt目錄中

2.解壓john檔案

3.切換到src子目錄進行編輯安裝


4.執行john程式進行破解

-
查看已破解出的賬戶串列
./john --wordlist shadow

-
使用密碼字典檔案
清空已破解的賬戶串列,以便重新分析 > john.pot
可以指定別的字典檔案進行破解 ./john --wordilst=./password.lst shadow
網路掃描NMAP
-
NMAP是一個強大的埠掃描類安全測評工具,支持ping掃描、多埠檢測等多種技術
-
安裝NMAP軟體包
-
rpm -qa | grep nmap
-
yum install -y nmap
-
NMAP命令常用的選項和掃描型別

-
netstat -natp 查看正在運行的使用TCP協議的網路狀態資訊
-
netstat -naup 查看正在運行的使用UDP協議的網路狀態資訊

-
分別查看本機開放的TCP埠、UDP埠
-
nmap -sT 127.0.0.1
-
nmap -sU 127.0.0.1
-
檢測192.168.4.0/24網段有哪些主機提供HTTP服務
-
nmap -p 80192.168.4.0/24
-
檢測192.168.4.0/24網段有哪些存活主機
-
nmap -n -sP 192.168.4.0/24
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258660.html
標籤:其他
