系統安全及應用(操做)

1、帳號安全基本措施

一、系統帳號清理

  • 將非登陸用戶的shell設爲/sbin/nologin
usermod -s /sbin/nologin 用戶名
  • 鎖定長期不使用的帳號
usermod -L 用戶名
passwd -l 用戶名
passwd -S 用戶名
  • 刪除無用的帳號
userdel 【-r】用戶名
  • 鎖定帳號文件passwd、shadow
chattr +i /etc/passwd /etc/shdow  #鎖定文件
chattr -i /etc/passwd /etc/shdow  #解鎖文件
lsattr /etc/passwd /etc/shdow     #查看狀態

用戶帳號文件/etc/shadow
默認只有root用戶可以讀取shadow文件中的內容,且不容許直接編輯該文件中的內容。
在這裏插入圖片描述

linux

**字段1:**用戶帳號的名稱
**字段2:**使用MD5加密的密碼字串信息,若爲"*"或「!!」表示此用戶不能登陸到系統,若爲空字段表示此用戶無需密碼便可登陸系統。
**字段3:**上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時間隔的天數(18445)
**字段4:**密碼的最短有效天數,自本次修改密碼後,必須至少通過該天數才能再次修改密碼。默認值爲0,表示不進行限制
**字段5:**密碼的最長有效天數,自本次修改密碼後,通過該天數之後必須再次修改密碼。默認值爲99999,表示不進行限制(99999)
**字段6:**提早多少天警告用戶密碼將過時,默認值爲7(7)
**字段7:**在密碼過時以後多少天禁用此用戶
**字段8:**賬號失效時間,此字段指定了用戶做廢的天數(從1970年01月01日起計算),默認值爲空,表示帳號永久可用。
**字段9:**保留字段(未使用)
注:字段七、八、9使用較少,通常使用默認,瞭解便可








shell

二、密碼安全控制

  • 設置密碼有效期
  • 要求用戶下次登陸時修改密碼
vim /etc/login.defs   #修改密碼配置文件(適用於新建用戶)
chage -M 30 lisi       #適用於已有用戶
chage -d 0 zhangsan    #強制在下次登陸時更改密碼(shadow文件中的第三個字段被修改成0

新用戶vim /etc/login.defs 設置密碼有效期

最多多少天后必須改密碼
在這裏插入圖片描述
密碼的最長有效天數改成30
在這裏插入圖片描述
新建用戶wangwu能夠看到第五字段變爲30
在這裏插入圖片描述




vim

已有用戶 chage -M 30 zhangsan

沒改前仍是默認99999
在這裏插入圖片描述
執行命令chage -M 30 zhangsan後第五字段變爲30
在這裏插入圖片描述


安全

下次登陸強制改密碼

在這裏插入圖片描述
在這裏插入圖片描述

三、命令歷史的限制

vi /etc/profile
找到(HISTSIZE=1000)1000就是顯示保留的命令行數,減小命令行數就改此數值。

export HISTSIZE=數值,當前用戶環境下生效,重啓失效。

1)vi /etc/profile減小命令行數

在這裏插入圖片描述
舉例改成20行
在這裏插入圖片描述
source /etc/profile調用配置,讓修改配置生效
查看歷史命令能夠看到只有20行
在這裏插入圖片描述




bash

2)export HISTSIZE=數值減小命令行數

舉例5行
在這裏插入圖片描述
服務器

3)登陸時自動清空歷史命令

vim ~/.bashrc
echo " " > ~/.bash_history

在這裏插入圖片描述

在這裏插入圖片描述

四、終端自動註銷

vim /etc/profile    #編輯profie文件
TMOUT=600           #600秒閒置,終端註銷
soure /etc/profile   #執行一次配置文件,讓配置文件生效

在這裏插入圖片描述

2、su命令

1)切換用戶

su 目標用戶
root用戶su其餘用戶不須要輸密碼
普通用戶su其餘用戶須要輸密碼
在這裏插入圖片描述


網絡

2)限制使用su命令的用戶

第一步:將容許使用su命令的用戶加入wheel組session

gpasswd -a 用戶 wheel    #添加用戶到wheel組中
grep wheel /etc/group    #肯定wheel組成員

在這裏插入圖片描述
第二步:啓用pam_wheel認證模塊
ui

vim /etc/pam.d/su     #編輯/etc/pam.d/su文件
auth sufficient pam_rootok.so  
#pam_rootok.so模塊的主要做用是使uid爲0的用戶root可以直接經過認證而不用輸入密碼
...      #省略部分
auth required pam_wheel.so use_uid 
 #pam_wheel.so做用是讓wheel組內的用戶使用su命令,其餘人(包括root)沒法使用su命令

每種狀態的解釋:
兩行都註釋:全部用戶都能使用su命令,切換時root和普通用戶都須要密碼驗證
開啓第一行,註釋第二行:(默認狀態)容許全部用戶間使用su命令進行切換的,切換時,root不須要密碼,其餘用戶須要密碼。
註釋第一行,開啓第二行:只有wheel組內的用戶才能使用su命令,root用戶也沒法切換。
兩行都開啓:只有root用戶和wheel組內的用戶纔可使用su命令。

初始
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述


加密

  • 兩行都註釋:全部用戶都能使用su命令,切換時root和普通用戶都須要密碼驗證
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述


  • 開啓第一行,註釋第二行:(默認狀態)容許全部用戶間使用su命令進行切換的,切換時,root不須要密碼,其餘用戶須要密碼。(前面有不演示了)

  • 註釋第一行,開啓第二行:只有wheel組內的用戶才能使用su命令,root用戶也沒法切換。

在這裏插入圖片描述

  • 兩行都開啓:只有root用戶和wheel組內的用戶纔可使用su命令。
    在這裏插入圖片描述

3)查看su操做記錄

cat /var/log/secure  #安全日誌文件/var/log/secure

會看就行
在這裏插入圖片描述

3、PAM安全認證

su命令的安全隱患

  • 默認狀況下,任何用戶都容許使用su命令,有機會反覆嘗試其餘用戶(如root)的登陸密碼,帶來安全風險
  • 爲了增強su命令的使用控制,可藉助於PAM認證模塊,只容許極個別用戶使用su命令進行交換

PAM可插拔式認證模塊

  • 是一種高效並且靈活便利的用戶級別的認證方式
  • 也是當前linux服務器廣泛使用的認證方式

PAM認證原理

1.PAM 認證通常遵循的順序:Service(服務)→PAM(配置文件)→pam_*.so;(認證模塊)

2.PAM認證首先要肯定哪一項應用服務,而後加載相應的PAM的配置文件(位於/etc/pam.d下),最後調用認證模塊(位於 /lib64/security/下)進行安全認證。

3.用戶訪問服務器的時候,服務器的某一個服務程序把用戶的請求發送到PAM模塊進行認證。

4.不一樣的應用程序所對應的PAM 模塊也是不一樣的。

這裏想看某個程序是否支持PAM認證,能夠用ls命令查看/etc/pam.d/。

PAM認證的構成

查看某個程序是否支持PAM模塊認證

示例:查看su是否支持PAM模塊認證
ls /etc/pam.d | grep su

在這裏插入圖片描述

查看su的PAM配置文件

cat /etc/pam.d/su

在這裏插入圖片描述

  • 每一行都是一個獨立的認證和過程,它們按從上往下的順序依次由PAM模塊調用
  • 每行都有三個分區:認證類型、控制類型、PAM模塊、PAM模塊參數

認證模塊類型 第一列
auth:對用戶身份進行識別,如提示輸入密碼,判斷是否爲root。
account:對帳號各項屬性進行檢查,如是否容許登陸系統,賬號是否已通過期,是否達到最大用戶數等。
password:使用用戶信息來更新數據,如修改用戶密碼。
session:定義登陸前以及退出後所要進行的會話操做管理,如登陸鏈接信息,用戶數據的打開和關閉,掛載文件系統。



控制類型第二列
required:須要返回一個成功值,若是返回失敗,不會馬上將失敗結果返回,而是繼續進行同類型的下一驗證,全部此類型的模塊都執行完成後,再返回失敗。該行以及所涉及模塊的成功是用戶經過鑑別的必要條件
requisite:與required相似,但若是此模塊返回失敗,則馬上返回失敗並表示此類型失敗。
sufficient:若是此模塊返回成功,則無論後面的驗證,直接向程序返回成功,表示驗證經過,若是返回失敗,則能夠當作optional。(慎用)
optional:不進行成功與否的返回,通常不用於驗證,只是顯示信息(一般用於 session 類型)。無論成功、失敗,繼續下一模塊的驗證,且此模塊的服務也能享用。
include :表示在驗證過程當中調用其餘的PAM配置文件。好比不少應用經過完整調用/etc/pam.d/system-auth(主要負責用戶登陸系統的認證工做)來實現認證而不須要從新逐一去寫配置項。
PAM模塊第三列
第三列表明PAM模塊,默認是在/lib64/security/目錄下,若是不在此默認路徑下,要填寫絕對路徑。
PAM模塊的參數
第四列表明PAM模塊的參數,這個須要根據所使用的模塊來添加。








PAM安全認證流程

在這裏插入圖片描述

required:驗證失敗時仍然繼續進行同類型的下一驗證,全部此類型的模塊都執行完成後,返回失敗

requisite:驗證失敗則當即結束整個驗證過程返回失敗

sufficient:若是此模塊返回成功,則無論後面的驗證,直接向程序返回成功,表示驗證經過,若是返回失敗,則能夠當作optional。(慎用)

optional:不進行成功與否的返回,通常不用於驗證,只是顯示信息(一般用於 session 類型)。無論成功、失敗,繼續下一模塊的驗證,且此模塊的服務也能享用。

4、sudo

sudo是一種受權命令。以其餘用戶身份(如root)執行受權的命令

配置命令:

visudo 
或者 vim /etc/sudoers(此文件的默認權限爲 440,保存退出時必須執行「:wq!」命令來強制操做)
記錄格式:用戶  主機名=命令程序列表

語法格式:

用戶 主機名=命令程序列表
用戶 主機名=(用戶) 命令程序列表

解釋:
用戶:直接受權指定的用戶名,或採用「%組名」的形式(受權一個組的全部用戶)。

主機名:使用此規則的主機名。沒配置過主機名時可用localhost,有配過主機名則用實際的主機名,ALL則表明全部主機

(用戶):用戶可以以何種身份來執行命令。此項可省略,缺省時以root用戶的身份來運行命令

命令程序列表:容許受權的用戶經過sudo方式執行的特權命令,需填寫命令程序的完整路徑,若是不知道路徑能夠用「which」查,多個命令之間以逗號「,」進行分隔。ALL則表明系統中的全部命令;通配符「*」表示全部、取反符號「!」表示排除

在這裏插入圖片描述

舉例 lisi 可用 ifconfig

visudo編輯最後面加上 (用戶 主機名=命令程序列表)

在這裏插入圖片描述

在這裏插入圖片描述

啓動sudo操做日誌

visudo                             #進入編輯
Defaults logfile = /var/log/sudo   #將該命令添加至最後一行:wq保存並退出便可

進入visudo編輯 G 可直接到最後一行
在這裏插入圖片描述

別名建立

使用關鍵字 User_Alias、Host_Alias、Cmnd_Alias 來進行設置別名(別名必須爲大寫)
多個信息須要用「,」隔開。

User_Alias JISHU=用戶名1,用戶名2,用戶名3        #用戶別名,JISHU表明後面三個用戶
Host_Alias HELLO=localhost,lisi             #主機別名
Cmnd_Alias CMN=/sbin/*,!/sbin/useradd,!/sbin/userdel  #命令別名(除了這些命令其餘都能用)
USERS HOSTS=CMNDS   #使用別名編寫受權

在這裏插入圖片描述
命令文件前"!"都得是英文格式,中文格式會報錯。
配置好驗證下

在這裏插入圖片描述
sudo -l 能夠查看當前用戶sudo受權


5、開關機安全

1)調整BIOS引導設置

(1)將第一引導設備設爲當前系統所在硬盤。
(2)禁止從其餘設備(光盤、U盤、網絡)引導系統,將對應的項設置爲「disabled」。
(3)將安全級別設爲setup,並設置管理員密碼。

二、GRUB限制

grub2-mkpasswd-pbkdf2       #使用grub2-mkpasswd-pbkdf2生成密鑰

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

vim /etc/grub.d/00_header       #修改/etc/grub.d/00_header文件,添加密碼記錄
cat << EOF
set superusers="root"					#設置用戶名爲root
password_pbkdf2 root grub.pbkdf2……		#設置密碼,省略部份內容爲通過加密生成的密碼字符串
EOF

grub2-mkconfig -o /boot/grub2/grub.cfg	#生成新的 grub.cfg 文件

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
init 6重啓



在這裏插入圖片描述

6、終端登陸

一、限制root用戶

linux系統啓動時,login程序會讀取 /etc/securetty文件(安全終端配置文件),決定容許root用戶從哪些終端登陸。因此想要限制須要編輯 /etc/securetty文件。root用戶默承認以使用全部終端,不容許哪幾個終端登陸直接編輯 /etc/securetty 找到終端前面加」#「註釋掉。
在這裏插入圖片描述

二、限制普通用戶

login 程序會檢查/etc/nologin 文件是否存在,若是存在,則拒絕普通用戶登陸系統(root 用戶不受限制)

touch /etc/nologin			#禁止普通用戶登陸
rm -rf /etc/nologin			#取消登陸限制

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述 普通用戶沒法登陸了,root用戶能夠登陸。刪除nologin文件後,恢復正常。重啓也能夠恢復正常,但在實際狀況下,公司內部不會讓你重啓服務器,因此須要刪除文件。

相關文章
相關標籤/搜索