一. 基本安全措施
1.系統帳號清理
在Linux系統中除了使用者手動建立的各種帳號以外,還包括隨系統或程式安裝過程而產生的其他大量帳號。除了超級使用者root以外,其他大量帳號只是用來維護系統運作,啟動或保持服務進程,一般不允許登入的,因此稱為非登入使用者。
常見的非登入使用者包括bindaemon、adm、lp、mail、noboody、apache、 mysql、dbus、ftp、gdm、haldaemon等。為了確保系統安全,這些使用者的登入shell通常是/sbin/nologin,表示禁止終端登入,應確保不被人為改動。
[root@localhost~]# grep"/sbin/nologin$" /etc/passwd //查看非登入使用者
對於linux伺服器中長期不用的使用者帳號,若無法確定是否應該刪除,可以暫時將其鎖定。
[root@localhost~]# usermod -L lisi //鎖定帳號
[root@localhost~]# passwd -S lisi //查看帳號狀態
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/000321N20-0.jpg" title="1.jpg" alt="182215371.jpg" />
[root@localhost~]# usermod -U lisi //解鎖帳號
[root@localhost~]# passwd -S lisi //查看帳號狀態
650) this.width=650;" src="http://img1.51cto.com/attachment/201309/182227843.jpg" title="2.jpg" alt="182227843.jpg" />
如果伺服器中的使用者帳號已經固定,不再變更,還可以採取鎖定帳號設定檔的方法。使用 chattr 命令,分別結合“+i”,"-i"選項來鎖定,解鎖檔案,使用lsattr命令可以查看檔案鎖定情況。
[root@localhost~]# chattr +i/etc/passwd /etc/shadow //鎖定檔案
[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看為鎖定的狀態
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003215543-2.jpg" title="3.jpg" alt="182241281.jpg" />
[root@localhost~]# chattr -i/etc/passwd /etc/shadow //解鎖檔案
[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看為鎖定的狀態
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/000321IC-3.jpg" title="4.jpg" alt="182253603.jpg" />
帳號檔案被鎖定的情況下,其內容將不允許變更,因此無法添加,刪除帳號,也不能更改使用者密碼,登入shell、宿主目錄等屬性資訊
2.密碼安全控制
以下操作可將密碼的有效期間設為30天chage 用於設定密碼時限)。
[root@localhost~]# vim /etc/login.defs //適用於建立的使用者
PASS_MAX_DAYS 90 #密碼最長到期天數
PASS_MIN_DAYS 80 #密碼最小到期天數
PASS_MIN_LEN 10 #密碼最小長度
PASS_WARN_AGE 7 #密碼到期警告天數
[root@localhost~]# chage -M 30 lisi //適用於已有的lisi使用者
3.命令曆史,自動登出
Bash終端環境中,曆史命令的記錄條數由變數HLSTSIZE控制,預設為1000條。通過修改/etc/profile檔案中的HLSTSIZE變數值,可以影響系統中的所有使用者。
可以設定最多隻記錄200條曆史命令
[root@localhost~]# vim /etc/profile //適用於所有登入使用者
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003215M8-4.jpg" title="5.jpg" alt="182307710.jpg" />
[root@localhost~]# export HISTSIZE=200 //適用於目前使用者
添加history –c命令當使用者退出已登入BASH環境以後,所記錄的曆史命令將自動清空
[root@localhost~]# vim ~/.bash_logout
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003211A2-5.jpg" title="6.jpg" alt="182321910.jpg" />
設定終端逾時時間,當逾時指定的時間沒有任何輸入即自動登出終端,預設單位為秒)有效避免當管理員不在時其他人員對伺服器的誤操作
[root@localhost~]# vim /etc/profile
export TMOUT=600 //添加
[root@localhost~]# export TMOUT=600 //適用於目前使用者
二、使用者切換於提權
1. su命令----切換使用者
由Root使用者切換到普通使用者不需要輸入密碼,從普通使用者切換到root 需要輸入root使用者密碼
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/00032132N-6.jpg" title="7.jpg" alt="182334596.jpg" />
為了加強su命令的使用控制,可以藉助於pam_wheel認證模組,只允許個別使用者使用su命令進行切換。
將授權使用su命令的使用者添加到wheel組,修改、etc/pam.d/su認證配置。
[root@localhost~]# gpasswd -a u1 whell //加授權使用者u1
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/000321J91-7.jpg" title="8.jpg" alt="182536927.jpg" />
[root@localhost~]# grep whell /etc/group //確定whell群組成員
[root@localhost~]# vim /etc/pam.d/su
//去掉#號
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003212Q9-8.jpg" title="8.jpg" alt="182727551.jpg" />
使用su命令切換使用者的操作將會記錄到安全日誌/var/log/secure檔案中。
[root@localhost~]# tail /var//log/secure
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/00032133N-9.jpg" title="9.jpg" alt="182837951.jpg" />
2.sudo命令—提升許可權
[root@localhost~]# vim /etc/sudoers
添加: lisi localhost=/sbin/ifconfig //允許lisi修改ip地址
%whell ALL=NOPASSWD: ALL //whell組的成員不需要驗證密碼即可執行任何命令
三、系統引導和登入控制
1.禁止Ctrl + Alt + Del 熱鍵重啟
[root@localhost~]# vim /etc/inittab
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/00032135F-10.jpg" title="10.jpg" alt="182752839.jpg" />
[root@localhost~]# init q //重新讀取檔案,更新
2.限制更改GRUB引導參數
為GRUB菜單設定的密碼建議採用“grub-md5-crypt”命令產生,經過MD5演算法加密的字串,安全性更好。
[root@localhost~]# grub-md5-crypt //根據提示指定密碼
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003216447-11.jpg" title="11.jpg" alt="182936234.jpg" />
[root@localhost~]# vim /boot/grub/grub.conf
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003215J2-12.jpg" title="12.jpg" alt="182948856.jpg" />
四、終端及登入控制
1.修改登入提示資訊
系統登入的提示資訊儲存在/etc/issce /etc/issce.net檔案中,其中包括作業系統類型。核心版本等。
[root@localhost~]# vim /etc/issue
[root@localhost~]# cp /etc/issue /etc/issue.net
2.減少開放的tty終端個數
通過修改設定檔/etc/inittab 可以減少開放的tty終端個數。
[root@localhost~]# vim /etc/inittab
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003213529-13.jpg" title="13.jpg" alt="183002805.jpg" />
[root@localhost~]# init q
3.禁止root使用者登入
若要禁止root使用者從tty1 終端登入,可以修改/etc/securetty檔案,將tty1行注釋掉。
[root@localhost~]# vim /etc/securetty
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/0003215560-14.jpg" title="14.jpg" alt="183019372.jpg" />
4.禁止普通使用者登入
當伺服器進行中備份或調式等維護工作時,可能不希望再有新的使用者登入系統。這時候,只需要簡單地建立/etrc/nologin檔案即可。Login程式會檢查/etc/nologin檔案是否存在,如果存在則拒絕普通使用者登入系統root使用者不受限制)。
[root@localhost~]# touch /etc/nologin
只建議在伺服器維護期間臨時使用。當手動刪除/etc/nologin檔案或者重新啟動主機以後,即可恢複正常。