@[toc]
1、賬號安全控制
1.系統(tǒng)賬號清理
將非登錄用戶的Shell設為/sbin/nologin
usermod -S /sbin/nologin 用戶名
- 鎖定長期不使用的賬號
usermod -L 用戶名
passwd -I 用戶名
passwd -S 用戶名
- 刪除無用的賬號
userdel [-r] 用戶名
- 鎖定賬號文件passwd、shadow
chattr +i /etc/passwd /etc/shadow 鎖定文件
lsattr /etc/passwd /etc/shadow 查看狀態(tài)
chattr -i /etc/passwd etc/shadow 解鎖文件
2.密碼安全控制
1.設置密碼有效期
1.適用于新建用戶
vim /etc/login.defs
PASS_MAX_DAYS 30
2.適用于老用戶(命令修改密碼創(chuàng)建的有效期)
chage -M 30 lisi(用戶名)
cat /etc/shadow | gerp lisi(用戶名) 查詢李四用戶的shadow信息
3.要求用戶下次登錄時修改密碼
shadow文件中的第三個字段被修改為0
chage -d 0 lisi(用戶名)
cat/etc/shadow | grep lisi(用戶名)
4.命令歷史限制
history 查看歷史記錄
適用于新建用戶(直接修改創(chuàng)建的默認歷史條數默認)
首先進入 vim /etc/profile 在HISTSIZE=1000可修改默認命令顯示條數
已有用戶
進入 vim /etc/profile
在文檔最底部輸入export(切換用戶也不會修改默認歷史命令記錄)HISTSIZE=200
history -c (在當前環(huán)境直接清理歷史命令)
vim .bashrc (進入開機自啟動文件)
echo "" >~/.bash_history 把空白行注入文件的底部,用來刷新開機的歷史命令
.3
5.終端自動注銷
閑置600秒后自動注銷
新用戶
[root@localhost ~]# vim /etc/profile
…
export TMOUT=120
當前用戶
[root@localhost ~]# export TMOUT=120
echo $TMOUT 120 (輸出定量值TMOUT 默認自動注銷時間為120秒)
3.用戶切換與提權
1.su命令 ---- 切換用戶
==格式 su - 目標用戶
帶-選項表示將使用目標用戶的登錄Shell環(huán)境==
限制使用su命令的用戶
將允許使用su命令的用戶加入wheel組
啟用pam _wheel認證模塊
gpasswd -a zhangsan wheel (將zhangsan用戶加入wheel授權中)
在/etc/pam.d/su文件里設置禁正用戶使用su命令
vim /etc/pam.d/su
2// auth sufficient pam rootok. so
6// #auth required pam wheel.so use uid
1.以上兩行是默認狀態(tài)(即開啟第2行,注釋第6行),這種狀態(tài)下是允許所有用戶間使用su命令進行切換的。
2.兩行都注釋也是運行所有用戶都能使用su命令,但root下使用su切換到其他普通用戶需要輸入密碼;如果第2行不注釋,則root使用su切換普通用戶就不需要輸入密碼( pam_rootok.so模塊的主要作用是使uid為0的用戶,即root用戶能夠直接通過認證而不用輸入密碼。)
3.如果開啟第6行和第2行,表示只有root用戶和wheel組內的用戶才可以使用su命令。
4.如果注釋第2行,開啟第6行,表示只有whee1組內的用戶才能使用su命令,root用戶也被禁用su命令。
5.PAM安全認證
LinuX-PAM,是linux可插拔認證模塊,是一套可定制、可動態(tài)加載的共享庫,使本地系統(tǒng)管理員可以隨意選擇程序的認證方式
PAM使用/etc/pam.d/下的配置文件,來管理對程序的認證方式。應用程序調用相應的PAM配置文件,從而調用本地的認證模塊,模塊放置在/lib64/security下,以加載動態(tài)庫的形式進行認證。比如使用su命令時,系統(tǒng)會提示輸入root用戶的密碼,這就是su命令通過調用PAM模塊實現的。
PAM認證原理
==1.PAM認證一般遵循的順序: Service (服務) --> PAM (配置文件) --> pam_*.so;
- PAM認證首先要確定哪一項應用服務,然后加載相應的PAM的配置文件(位于7etc/pam.d下),最后調用認證模塊(位于/lib64/security/下)進行安全認證。
3.用戶訪問服務器的時候,服務器的某—個服務程序把用戶的請求發(fā)送到PAM模塊進行認證。不同的應用程序所對應的PAM模塊也是不同的。==
==如果想查看某個程序是否支持PAM認證,可以用1s命令進行查看/etc/pam.d/
PAM的配置文件中的每一行都是一個獨立的認證過程,它們按從上往下的順序依次由PAM模塊調用==
第一列代表PAM認證模塊類型
==auth:對用戶身份進行識別,如提示輸入密碼,判斷是否為root。
account:對賬號各項屬性進行檢查,如是否允許登錄系統(tǒng),帳號是否已經過期,是否達到最大用戶數等。
password:使用用戶信息來更新數據,如修改用戶密碼。
session:定義登錄前以及退出后所要進行的會話操作管理,如登錄連接信息,用戶數據的打開和關閉,掛載文件系統(tǒng)。==
第二列代表PAM控制標記
==required:表示需要返回一個成功值,如果返回失敗,不會立刻將失敗結果返回,而是繼續(xù)進行同類型的下一驗證,所有此類型的模塊都執(zhí)行完成后,再返回失敗。
requisite:與reguired類似,但如果此模塊返回失敗,則立刻返回失敗并表示此類型失敗。
sufficient:如果此模塊返回成功,則直接向程序返回成功,表示此類成功,如果失敗,也不影響這類型的返回值。
optional:不進行成功與否的返回,一 般不用于驗證,只是顯示信息(通常用于session 類型)。
include:表示在驗證過程中調用其他的PAM配置文件。比如很多應用通過完整調用/etc/pam.d/system-auth(主要負責用戶登錄系統(tǒng)的認證工作)來實現認證而不需要重新逐一去寫配置項。==
第三列代表PAM模塊
==默認是在/1ib64/security/日錄下,如果不在此默認路徑下,要填寫絕對路徑。
同一個模塊,可以出現在不同的模塊類型中,它在不同的類型中所執(zhí)行的操作都不相同,這是由于每個模塊針對不同的模塊類型編制了不同的執(zhí)行麗數。==
第四列代表PAM模塊的參數
==這個需要根據所使用的模塊來添加。傳遞給模塊的參數。參數可以有多個,之間用空格分隔開==
1.required驗證失敗時仍然繼續(xù),但返回Fail
2.requisite驗證失敗則立即結束整個驗證過程,返回Fail
3.sufficient驗證成功則立即返回,不再繼續(xù),否則忽略結果并繼續(xù)
4.optional不用于驗證,只顯示信息(通常用于session類型)
4.sudo命令 — 提升執(zhí)行權限
初次使用sudo時需驗證當前用戶的密碼,默認超時時長為5分鐘,在此期間不再重復驗證密碼。
==sudo命令的用途及用法==
用途:以其他用戶身份(如root) 執(zhí)行授權的命令
用法 sudo 授權命令
==配置sudo授權==
*記錄格式 用戶 主機名=命令程序列表
visudo或者vim /etc/sudoers
可以使用通配符“”、取反符號“!”**
用戶: 直接授權指定的用戶名,或采用“%組名"的形式(授權一個組的所有用戶)
主機名: 使用此規(guī)則的主機名。沒配置過主機名時可用localhost,有配過主機名則用實際的主機名,ALL則代表所有主機
(用戶): 用戶能夠以何種身份來執(zhí)行命令。此項可省略,缺省時以root用戶的身份來運行命令
命令程序列表: 允許授權的用戶通過sudo方式執(zhí)行的特權命令,需填寫命令程序的完整路徑,多個命令之間以逗號“,"進行分隔。ALL則代表系統(tǒng)中的所有命令
允許用戶zhangsan、lisi、wangwu使用sudo命令不需要密碼在主機名為localhast和pop上操作除了重啟、刪除、關機
lisi 用戶無法在sudo權限下使用reboot命令,且不需要密碼來執(zhí)行
test 用戶無法在sudo權限下使用init命令,且不需要密碼來執(zhí)行
zhangsan用戶可以執(zhí)行sbin目錄里面的ps命令,因為在sudoers文件里給予了他們sbin內的所有權限除了個別的幾個。
啟用sudo操作日志
需要啟用 Defaults logfile
在etc/sudoers文件下添加
Defaults logfile="/var/log/ sudo"
vim /var/log/sudo
可以查詢目標用戶執(zhí)行的操作
tail -5 /var/log/sudo
可以查詢目標用戶執(zhí)行的字最后五次操作
查詢授權的sudo操作
sudo- l
5、系統(tǒng)引導和登錄控制
1.開關機安全控制
調整BIOS引導設置
將第一引導設備設為當前系統(tǒng)所在硬盤
禁止從其他設備(光盤、U盤、網絡)引導系統(tǒng)
將安全級別設為setup,并設置管理員密碼
GRUB限制
使用grub2-mkpasswd-pbkdf2生成密鑰
修改/etc/grub.d/00_header文件中, 添加密碼記錄
生成新的grub.cfg配置文件
2.限制更改GRUB引導參數
通常情況下在系統(tǒng)開機進入GRUB菜單時,按e鍵可以查看并修改GRUB_引導參數,這對服務器是一個極大的威脅。
可以為GRUB菜單設置一個密碼,只有提供正確的密碼才被允許修改引導參數。
接下來vim /etc/grub.d/00_header 進入文件到最底部插入內容:
==cat << EOF
set superusers="root"
password_pbkdf2 root ==
==grub.pbkdf2.sha512.10000.5588A421A5F3EB97A1B41FD98EB1454EDD3A69F20EA344CF474C7C7A1778C3415C96064B5E506B91ADC12584FDD2204DF7E868926070981D107331975B5C437A.DA30A42249ED7085DA7C6B835525E522106B541CC6C5AEF01B3CC701F06BBEECC68EDC85A7C2B2466CA3A25343432F2C831704361B454EE003BD493250383A7C
EOF(這一行是復制過來的密碼信息)==
grub2-mkconfig -o /boot/grub2/grub.cfg
6.終端登錄安全控制
限制root只在安全終端登錄
安全終端配置:vim /etc/securetty
禁止普通用戶登錄
建立/etc/nologin文件
刪除/etc/nologin文件或重啟后即恢復正常
7、弱口令檢測
弱口令檢測-------John the Ripper
JohntheRipper是一款開源的密碼破解工具,可使用密碼字典(包含各種密碼組合的列表文件)來進行暴力破解。
8、端口掃描
NMAP是一個強大的端口掃描類安全評測工具,支持ping掃描、多端口檢測等多種技術。