目錄
1、賬戶安全基本措施
1)系統賬戶清理
2)密碼安全控制
3)命令歷史限制
2、用戶切換及提權
1)使用 su命令切換用戶
2)使用sudo機制提升權限
3、系統引導和安全登錄控制
1)開機安全控制
2)終端登錄安全控制
4、補充:linux系統安全加固方案
1、賬戶安全基本措施
1)系統賬戶清理
a、將非登錄用戶的shell設置為/sbin/nologin (/sbin/nologin:禁止終端登錄)
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd | wc -l #統計不能登錄系統的用戶數量
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd | awk -F: '{print $1}' > nologin.txt # 將不能登錄系統的用戶輸出到nologin.txt文件中
b、鎖定長期不適用的賬號(例如一些用戶長期不使用,但是不確認是否刪除)
[root@localhost ~]# useradd ami #創建用戶并且設置密碼
[root@localhost ~]# echo "123123" | passwd --stdin ami
[root@localhost ~]# usermod -L ami #鎖定用戶,鎖定后將不能登錄
[root@localhost ~]# passwd -S ami #查看用戶密碼狀態
[root@localhost ~]# usermod -U ami #解鎖
[root@localhost ~]# passwd -S ami
c、鎖定賬號文件/etc/passwd /etc/shadow
假如:服務器賬戶已經固定,不在進行更改,可以鎖定。
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow #鎖定
[root@localhost ~]# lsattr /etc/passwd /etc/shadow #查看文件狀態
[root@localhost ~]# useradd xiaoming #創建用戶測試
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow #解鎖
[root@localhost ~]# useradd xiaoming #再次創建用戶測試
[root@localhost ~]# echo "123123" | passwd --xiaoming
2)密碼安全控制
a、設置密碼的有效期
[root@localhost ~]# sed -i 's/PASS_MAX_DAYS 99999/PASS_MAX_DAYS 30/g' /etc/login.defs
適用于已有用戶
[root@localhost ~]# chage -M 30 zhangsan
?b、強制在下次登錄時更改密碼
[root@localhost ~]# chage -d 0 ami
3)命令歷史限制
a、減少記錄的命令條數
[root@localhost ~]# sed -i '/HISTSIZE=1000/cHISTSIZE=5' /etc/profile
[root@localhost ~]# sed -n '/HISTSIZE=5/P' /etc/profile
[root@localhost ~]# source /etc/profile #使其生效
[root@localhost ~]# history #查看歷史記錄
b、終端自動注銷
在bash終端環境中可以設置一個限制超時時間,當超過指定時間沒有任何操作自動注銷終端。
[root@localhost ~]# echo "export TMOUT=30" >> ~/.bash_profile #終端30秒不做任何操作將自動注銷
[root@localhost ~]# source ~/.bash_profile #使其生效
2、用戶切換及提權
1)使用 su命令切換用戶
a、用途及用法
格式:su - 目標用戶 # 帶 - 選項表示將使用目標用戶的登錄 Shell 環境
b、限制使用su命令的用戶
默認都可以使用su命令,姿勢允許少量用戶使用。
啟用pam_wheel認證模塊:
[root@localhost ~]# vim /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so # 默認就有
auth required pam_wheel.so use_uid # 將前面 # 去掉
[root@localhost ~]# grep wheel /etc/group
[root@localhost ~]# su - ami
[zhangsan@localhost ~]$ su -
[zhangsan@localhost ~]$ exit
c、查看su操作記錄
安全日志文件:/var/log/secure
[root@localhost ~]# tail /var/log/secure
2)使用sudo機制提升權限
sudo :普通用戶擁有一部分管理權限,且不需要知道root密碼。
a、sudo命令的用途及用法
用途:已其他用戶身份(如root)執行授權的命令。
格式:sudo 執行的授權命令
b、配置sudo授權/etc/sudoers
3、系統引導和安全登錄控制
1)開機安全控制
2)終端登錄安全控制
a、限制root只在安全終端登錄
[root@localhost ~]# sed -i '/tty5/c#tty5' /etc/securetty
[root@localhost ~]# sed -n '/#/p' /etc/securetty
#tty5
b、禁止普通用戶登錄 (在服務器維護期間臨時使用)
創建/etc/nologin文件,login程序會檢查該文件是否存在,如果存在,則會拒絕普通用戶登錄系統。(root用戶不受限制)
[root@localhost ~]# touch /etc/nologin
?使用ami用戶在終端驗證:
刪除/etc/nologin文件或者重啟即可恢復正常
[root@localhost ~]# rm /etc/nologin
再次使用ami用戶在終端驗證:
4、補充:linux系統安全加固方案
1、最小化進程啟動權限,盡可能使用非root賬號啟動過程。 |
2、停用和清理無關無用的服務器和系統服務。 |
3、僅對必要端口開放互聯網訪問權限,其他端口僅允許可信任的網絡進行訪問。 |
4、服務器、管理后臺等賬號要設置復雜的密碼,并定期跟換。 |
5、禁止互聯網連接服務器 ,管理后臺,限制可信任IP訪問或通過跳板機安全訪問。 |
6、對系統敏感文件或目錄的變化進行事件的監控。 |
7、對上線的服務器和應用程序進行安全漏洞掃描,及時修復發現的漏洞。 |