自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

安全運(yùn)維之:Linux系統(tǒng)賬戶和登錄安全

運(yùn)維 系統(tǒng)運(yùn)維 Linux
在Linux下可通過history命令查看用戶所有的歷史操作記錄,同時(shí)shell命令操作記錄默認(rèn)保存在用戶目錄下的.bash_history文件中,通過這個(gè)文件可以查詢shell命令的執(zhí)行歷史,有助于運(yùn)維人員進(jìn)行系統(tǒng)審計(jì)和問題排查……

一、合理使用Shell歷史命令記錄功能

在Linux下可通過history命令查看用戶所有的歷史操作記錄,同時(shí)shell命令操作記錄默認(rèn)保存在用戶目錄下的.bash_history文件中,通過這個(gè)文件可以查詢shell命令的執(zhí)行歷史,有助于運(yùn)維人員進(jìn)行系統(tǒng)審計(jì)和問題排查,同時(shí),在服務(wù)器遭受黑客攻擊后,也可以通過這個(gè)命令或文件查詢黑客登錄服務(wù)器所執(zhí)行的歷史命令操作,但是有時(shí)候黑客在入侵服務(wù)器后為了毀滅痕跡,可能會(huì)刪除.bash_history文件,這就需要合理的保護(hù)或備份.bash_history文件。下面介紹下history日志文件的安全配置方法。

默認(rèn)的history命令只能查看用戶歷史操作記錄,并不能區(qū)分每個(gè)用戶操作命令的時(shí)間,這點(diǎn)對(duì)于排查問題十分不便,不過可以通過下面的方法(加入四行內(nèi)容)讓history命令自動(dòng)記錄所有shell命令的執(zhí)行時(shí)間,編輯/etc/bashrc文件:

  1. HISTFILESIZE=4000   
  2. HISTSIZE=4000   
  3. HISTTIMEFORMAT='%F %T' 
  4. export HISTTIMEFORMAT 

其中,HISTFILESIZE定義了在.bash_history文件中保存命令的記錄總數(shù),默認(rèn)值是1000,這里設(shè)置為4000;HISTSIZE定義了history命令輸出的記錄總數(shù);HISTTIMEFORMAT定義時(shí)間顯示格式,這里的格式與date命令后的“+"%F %T"”是一致的;HISTTIMEFORMAT作為history的時(shí)間變量將值傳遞給history命令。

通過這樣的設(shè)置后,執(zhí)行history命令,就會(huì)顯示每個(gè)歷史命令的詳細(xì)執(zhí)行時(shí)間,例如:

  1. [root@server ~]# history   
  2. 247  2013-10-05 17:16:28 vi /etc/bashrc   
  3. 248  2013-10-05 17:16:28 top 
  4. 249  2013-10-05 17:04:18 vmstat   
  5. 250  2013-10-05 17:04:24 ps -ef   
  6. 251  2013-10-05 17:16:29 ls -al   
  7. 252  2013-10-05 17:16:32 lsattr    
  8. 253  2013-10-05 17:17:16 vi /etc/profile  
  9. 254  2013-10-05 17:19:32 date +"%F %T" 
  10. 255  2013-10-05 17:21:06 lsof  
  11. 256  2013-10-05 17:21:21 history 

為了確保服務(wù)器的安全,保留shell命令的執(zhí)行歷史是非常有用的一條技巧。shell雖然有歷史功能,但是這個(gè)功能并非針對(duì)審計(jì)目的而設(shè)計(jì),因此很容易被黑客篡改或是丟失。下面再介紹一種方法,可以實(shí)現(xiàn)詳細(xì)記錄登錄過系統(tǒng)的用戶、IP地址、shell命令以及詳細(xì)操作時(shí)間等,并將這些信息以文件的形式保存在一個(gè)安全的地方,以供系統(tǒng)審計(jì)和故障排查。

將下面這段代碼添加到/etc/profile文件中,即可實(shí)現(xiàn)上述功能。

  1. #history   
  2. USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`   
  3. HISTDIR=/usr/share/.history  
  4. if [ -z $USER_IP ]   
  5. then  
  6. USER_IP=`hostname`   
  7. fi  
  8. if [ ! -d $HISTDIR ]   
  9. then  
  10. mkdir -p $HISTDIR   
  11. chmod 777 $HISTDIR   
  12. fi  
  13. if [ ! -d $HISTDIR/${LOGNAME} ]   
  14. then  
  15. mkdir -p $HISTDIR/${LOGNAME}   
  16. chmod 300 $HISTDIR/${LOGNAME}   
  17. fi  
  18. export HISTSIZE=4000   
  19. DT=`date +%Y%m%d_%H%M%S`   
  20. export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT" 
  21. export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]" 
  22. chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null 

這段代碼將每個(gè)用戶的shell命令執(zhí)行歷史以文件的形式保存在/usr/share/.history目錄中,每個(gè)用戶一個(gè)文件夾,并且文件夾下的每個(gè)文件以IP地址加shell命令操作時(shí)間的格式命名。下面是user01用戶執(zhí)行shell命令的歷史記錄文件,基本效果如下:

  1. [root@server user01]#  pwd   
  2. /usr/share/.history/user01  
  3. [root@server user01]# ls -al   
  4. -rw------- 1 user01 wheel  56 Jul  6 17:07 192.168.12.12.history.20130706_164512   
  5. -rw------- 1 user01 wheel  43 Jul  6 17:42 192.168.12.12.history.20130706_172800   
  6. -rw------- 1 user01 wheel  22 Jul  7 12:05 192.168.12.19.history.20130707_111123   
  7. -rw------- 1 user01 wheel  22 Jul  8 13:41 192.168.12.20.history.20130708_120053   
  8. -rw------- 1 user01 wheel  22 Jul  1 15:28 192.168.12.186.history.20130701_150941   
  9. -rw------- 1 user01 wheel  22 Jul  2 19:47 192.168.12.163.history.20130702_193645   
  10. -rw------- 1 user01 wheel  22 Jul  3 12:38 192.168.12.19.history.20130703_120948   
  11. -rw------- 1 user01 wheel  22 Jul  3 19:14 192.168.12.134.history.20130703_183150 

保存歷史命令的文件夾目錄要盡量隱蔽,避免被黑客發(fā)現(xiàn)后刪除。

二、合理使用su、sudo命令

su命令是一個(gè)切換用戶的工具,經(jīng)常用于將普通用戶切換到超級(jí)用戶下,當(dāng)然也可以從超級(jí)用戶切換到普通用戶。為了保證服務(wù)器的安全,幾乎所有服務(wù)器都禁止了超級(jí)用戶直接登錄系統(tǒng),而是通過普通用戶登錄系統(tǒng),然后再通過su命令切換到超級(jí)用戶下,執(zhí)行一些需要超級(jí)權(quán)限的工作。通過su命令能夠給系統(tǒng)管理帶來一定的方便,但是也存在不安全的因素,例如系統(tǒng)有10個(gè)普通用戶,每個(gè)用戶都需要執(zhí)行一些有超級(jí)權(quán)限的操作,就必須把超級(jí)用戶的密碼交給這10個(gè)普通用戶,如果這10個(gè)用戶都有超級(jí)權(quán)限,通過超級(jí)權(quán)限可以做任何事,那么會(huì)在一定程度上對(duì)系統(tǒng)的安全造成了威協(xié)。因此su命令在很多人都需要參與的系統(tǒng)管理中,并不是最好的選擇,超級(jí)用戶密碼應(yīng)該掌握在少數(shù)人手中,此時(shí)sudo命令就派上用場(chǎng)了。

sudo命令允許系統(tǒng)管理員分配給普通用戶一些合理的“權(quán)利”,并且不需要普通用戶知道超級(jí)用戶密碼,就能讓他們執(zhí)行一些只有超級(jí)用戶或其他特許用戶才能完成的任務(wù),比如系統(tǒng)服務(wù)重啟、編輯系統(tǒng)配置文件等,通過這種方式不但能減少超級(jí)用戶登錄次數(shù)和管理時(shí)間,也提高了系統(tǒng)安全性。因此,sudo命令相對(duì)于權(quán)限無限制性的su來說,還是比較安全的,所以sudo也被稱為受限制的su,另外sudo也是需要事先進(jìn)行授權(quán)認(rèn)證的,所以也被稱為授權(quán)認(rèn)證的su。

sudo執(zhí)行命令的流程是:將當(dāng)前用戶切換到超級(jí)用戶下,或切換到指定的用戶下,然后以超級(jí)用戶或其指定切換到的用戶身份執(zhí)行命令,執(zhí)行完成后,直接退回到當(dāng)前用戶,而這一切的完成要通過sudo的配置文件/etc/sudoers來進(jìn)行授權(quán)。

例如,/etc/shadow文件普通用戶是無法訪問的:

  1. [user01@unknown ~]$ more /etc/shadow  
  2. /etc/shadow: Permission denied 

如果要讓普通用戶user01可訪問這個(gè)文件,可以在/etc/sudoers添加如下內(nèi)容:

  1. user01     ALL = /bin/more /etc/shadow  
  2. 這樣,通過如下方式user01用戶就可訪問/etc/shadow文件:   
  3. [user01@unknown ~]$ sudo more /etc/shadow  
  4. [sudo] password for user01: 

執(zhí)行這個(gè)命令后,需要輸入user01用戶的密碼,然后就可訪問文件內(nèi)容了。在這里sudo使用時(shí)間戳文件來完成類似“檢票”的系統(tǒng),當(dāng)用戶輸入密碼后就獲得了一張默認(rèn)存活期為5分鐘的“入場(chǎng)券”(默認(rèn)值可以在編譯的時(shí)候改變)。超時(shí)以后,用戶必須重新輸入密碼才能查看文件內(nèi)容。

如果每次都需要輸入密碼,那么某些自動(dòng)調(diào)用超級(jí)權(quán)限的程序就會(huì)出現(xiàn)問題,此時(shí)可以通過下面的設(shè)置,讓普通用戶無需輸入密碼即可執(zhí)行具有超級(jí)權(quán)限的程序。例如,要讓普通用戶centreon具有/etc/init.d/nagios腳本重啟的權(quán)限,可以在/etc/sudoers添加如下設(shè)置:

  1. CENTREON   ALL = NOPASSWD: /etc/init.d/nagios restart 

這樣,普通用戶centreon就可以執(zhí)行nagios重啟的腳本而無需輸入密碼了。如果要讓一個(gè)普通用戶user02具有超級(jí)用戶的所有權(quán)限,而又不想輸入超級(jí)用戶的密碼,只需在/etc/sudoers添加如下內(nèi)容即可:

  1. user02 ALL=(ALL) NOPASSWD: ALL 

這樣user02用戶登錄系統(tǒng)后,就可以通過執(zhí)行如下命令切換到超級(jí)用戶下:

  1. [user02@unknown ~]$ sudo su -   
  2. [root@unknown ~]# pwd   
  3. /root 

sudo設(shè)計(jì)的宗旨是:賦予用戶盡可能少的權(quán)限但仍允許它們完成自己的工作,這種設(shè)計(jì)兼顧了安全性和易用性,因此,強(qiáng)烈推薦通過sudo來管理系統(tǒng)賬號(hào)的安全,只允許普通用戶登錄系統(tǒng),如果這些用戶需要特殊的權(quán)限,就通過配置/etc/sudoers來完成,這也是多用戶系統(tǒng)下賬號(hào)安全管理的基本方式。

 

三、刪減系統(tǒng)登錄歡迎信息

系統(tǒng)的一些歡迎信息或版本信息,雖然能給系統(tǒng)管理者帶來一定的方便,但是這些信息有時(shí)候可能被黑客利用,成為攻擊服務(wù)器的幫兇,為了保證系統(tǒng)的安全,可以修改或刪除某些系統(tǒng)文件,需要修改或刪除的文件有4個(gè),分別是/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。

 

/etc/issue和/etc/issue.net文件都記錄了操作系統(tǒng)的名稱和版本號(hào),當(dāng)用戶通過本地終端或本地虛擬控制臺(tái)等登錄系統(tǒng)時(shí),/etc/issue的文件內(nèi)容就會(huì)顯示,當(dāng)用戶通過ssh或telnet等遠(yuǎn)程登錄系統(tǒng)時(shí),/etc/issue.net文件內(nèi)容就會(huì)在登錄后顯示。在默認(rèn)情況下/etc/issue.net文件的內(nèi)容是不會(huì)在ssh登錄后顯示的,要顯示這個(gè)信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下內(nèi)容即可:

  1. Banner /etc/issue.net 

其實(shí)這些登錄提示很明顯泄漏了系統(tǒng)信息,為了安全起見,建議將此文件中的內(nèi)容刪除或修改。

/etc/redhat-release文件也記錄了操作系統(tǒng)的名稱和版本號(hào),為了安全起見,可以將此文件中的內(nèi)容刪除。

/etc/motd文件是系統(tǒng)的公告信息。每次用戶登錄后,/etc/motd文件的內(nèi)容就會(huì)顯示在用戶的終端。通過這個(gè)文件系統(tǒng)管理員可以發(fā)布一些軟件或硬件的升級(jí)、系統(tǒng)維護(hù)等通告信息,但是此文件的最大作用就、是可以發(fā)布一些警告信息,當(dāng)黑客登錄系統(tǒng)后,會(huì)發(fā)現(xiàn)這些警告信息,進(jìn)而產(chǎn)生一些震懾作用??催^國(guó)外的一個(gè)報(bào)道,黑客入侵了一個(gè)服務(wù)器,而這個(gè)服務(wù)器卻給出了歡迎登錄的信息,因此法院不做任何裁決。

 

博文地址:http://ixdba.blog.51cto.com/2895551/1552907

責(zé)任編輯:林師授 來源: 51CTO
相關(guān)推薦

2014-09-17 11:16:42

2018-09-26 05:33:49

2015-07-30 16:24:27

2016-06-22 15:54:01

2011-05-16 10:23:21

2020-10-28 10:40:35

運(yùn)維安全技術(shù)

2011-04-27 12:41:29

2013-08-29 09:19:08

2013-01-30 17:19:48

2012-02-15 14:49:45

2011-04-27 12:42:04

智恒SAS運(yùn)維安全審計(jì)IT資源堡壘

2010-03-05 09:58:45

2017-06-03 16:26:05

2018-07-23 09:24:08

Linux系統(tǒng)運(yùn)維運(yùn)維工程師

2018-08-29 09:23:30

2009-07-12 11:10:39

系統(tǒng)安全UNIX系統(tǒng)賬戶

2009-07-04 15:10:08

LinuxSxidSkey

2009-07-08 16:05:46

2011-05-16 10:13:51

Linux優(yōu)化

2018-10-10 11:18:39

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)