1. 程式人生 > >線上Linux伺服器運維安全策略經驗分享

線上Linux伺服器運維安全策略經驗分享


今天跟大家分享的主題是:線上Linux伺服器運維安全策略經驗。

安全是IT行業一個老生常談的話題了,從之前的“稜鏡門”事件中折射出了很多安全問題,處理好資訊保安問題已變得刻不容緩。因此做為運維人員,就必須瞭解一些安全運維準則,同時,要保護自己所負責的業務,首先要站在***者的角度思考問題,修補任何潛在的威脅和漏洞。

今天,我為大家講的,主要分五部分展開:

賬戶和登入安全

賬戶安全是系統安全的第一道屏障,也是系統安全的核心,保障登入賬戶的安全,在一定程度上可以提高伺服器的安全級別,下面重點介紹下Linux系統登入賬戶的安全設定方法。

1、刪除特殊的賬戶和賬戶組

Linux提供了各種不同角色的系統賬號,在系統安裝完成後,預設會安裝很多不必要的使用者和使用者組,如果不需要某些使用者或者組,就要立即刪除它,因為賬戶越多,系統就越不安全,很可能被***利用,進而威脅到伺服器的安全。

Linux系統中可以刪除的預設使用者和組大致有如下這些:

可刪除的使用者,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。

可刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。

2、關閉系統不需要的服務

Linux在安裝完成後,綁定了很多沒用的服務,這些服務預設都是自動啟動的。對於伺服器來說,執行的服務越多,系統就越不安全,越少服務在執行,安全性就越好,因此關閉一些不需要的服務,對系統安全有很大的幫助。

具體哪些服務可以關閉,要根據伺服器的用途而定,一般情況下,只要系統本身用不到的服務都認為是不必要的服務。

例如:某臺Linux伺服器用於www應用,那麼除了httpd服務和系統執行是必須的服務外,其他服務都可以關閉。下面這些服務一般情況下是不需要的,可以選擇關閉: anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv

3、密碼安全策略

在Linux下,遠端登入系統有兩種認證方式: 密碼認證金鑰認證

密碼認證方式是傳統的安全策略,對於密碼的設定,比較普遍的說法是:至少6個字元以上,密碼要包含數字、字母、下劃線、特殊符號等。設定一個相對複雜的密碼,對系統安全能起到一定的防護作用,但是也面臨一些其他問題,例如密碼暴力破解、密碼洩露、密碼丟失等,同時過於複雜的密碼對運維工作也會造成一定的負擔。

金鑰認證是一種新型的認證方式,公用金鑰儲存在遠端伺服器上,專用金鑰儲存在本地,當需要登入系統時,通過本地專用金鑰和遠端伺服器的公用金鑰進行配對認證,如果認證成功,就成功登入系統。這種認證方式避免了被暴力破解的危險,同時只要儲存在本地的專用金鑰不被***盜用,***者一般無法通過金鑰認證的方式進入系統。因此,在Linux下推薦用金鑰認證方式登入系統,這樣就可以拋棄密碼認證登入系統的弊端。

Linux伺服器一般通過SecureCRT、putty、Xshell之類的工具進行遠端維護和管理,金鑰認證方式的實現就是藉助於SecureCRT軟體和Linux系統中的SSH服務實現的。

4、合理使用su、sudo命令

su命令:是一個切換使用者的工具,經常用於將普通使用者切換到超級使用者下,當然也可以從超級使用者切換到普通使用者。為了保證伺服器的安全,幾乎所有伺服器都禁止了超級使用者直接登入系統,而是通過普通使用者登入系統,然後再通過su命令切換到超級使用者下,執行一些需要超級許可權的工作。通過su命令能夠給系統管理帶來一定的方便,但是也存在不安全的因素,

例如:系統有10個普通使用者,每個使用者都需要執行一些有超級許可權的操作,就必須把超級使用者的密碼交給這10個普通使用者,如果這10個使用者都有超級許可權,通過超級許可權可以做任何事,那麼會在一定程度上對系統的安全造成了威協。

因此su命令在很多人都需要參與的系統管理中,並不是最好的選擇,超級使用者密碼應該掌握在少數人手中,此時sudo命令就派上用場了。

sudo命令:允許系統管理員分配給普通使用者一些合理的“權利”,並且不需要普通使用者知道超級使用者密碼,就能讓他們執行一些只有超級使用者或其他特許使用者才能完成的任務。

比如:系統服務重啟、編輯系統配置檔案等,通過這種方式不但能減少超級使用者登入次數和管理時間,也提高了系統安全性。

因此,sudo命令相對於許可權無限制性的su來說,還是比較安全的,所以sudo也被稱為受限制的su,另外sudo也是需要事先進行授權認證的,所以也被稱為授權認證的su。

sudo執行命令的流程是:
將當前使用者切換到超級使用者下,或切換到指定的使用者下,然後以超級使用者或其指定切換到的使用者身份執行命令,執行完成後,直接退回到當前使用者,而這一切的完成要通過sudo的配置檔案/etc/sudoers來進行授權。

sudo設計的宗旨是:
賦予使用者儘可能少的許可權但仍允許它們完成自己的工作,這種設計兼顧了安全性和易用性,因此,強烈推薦通過sudo來管理系統賬號的安全,只允許普通使用者登入系統,如果這些使用者需要特殊的許可權,就通過配置/etc/sudoers來完成,這也是多使用者系統下賬號安全管理的基本方式。

5、刪減系統登入歡迎資訊

系統的一些歡迎資訊或版本資訊,雖然能給系統管理者帶來一定的方便,但是這些資訊有時候可能被***利用,成為***伺服器的幫凶,為了保證系統的安全,可以修改或刪除某些系統檔案, 需要修改或刪除的檔案有4個,分別是:
/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。

/etc/issue和/etc/issue.net檔案都記錄了作業系統的名稱和版本號,當用戶通過本地終端或本地虛擬控制檯等登入系統時,/etc/issue的檔案內容就會顯示,當用戶通過ssh或telnet等遠端登入系統時,/etc/issue.net檔案內容就會在登入後顯示。在預設情況下/etc/issue.net檔案的內容是不會在ssh登入後顯示的,要顯示這個資訊可以修改/etc/ssh/sshd_config檔案,在此檔案中新增如下內容即可:
Banner /etc/issue.net
其實這些登入提示很明顯洩漏了系統資訊,為了安全起見,建議將此檔案中的內容刪除或修改。

/etc/redhat-release檔案也記錄了作業系統的名稱和版本號,為了安全起見,可以將此檔案中的內容刪除。

/etc/motd檔案是系統的公告資訊。每次使用者登入後,/etc/motd檔案的內容就會顯示在使用者的終端。通過這個檔案系統管理員可以釋出一些軟體或硬體的升級、系統維護等通告資訊,但是此檔案的最大作用就、是可以釋出一些警告資訊,當***登入系統後,會發現這些警告資訊,進而產生一些震懾作用。看過國外的一個報道,******了一個伺服器,而這個伺服器卻給出了歡迎登入的資訊,因此法院不做任何裁決。


遠端訪問和認證安全

1、遠端登入取消telnet而採用SSH方式

telnet是一種古老的遠端登入認證服務,它在網路上用明文傳送口令和資料,因此別有用心的人就會非常容易截獲這些口令和資料。而且,telnet服務程式的安全驗證方式也極其脆弱,***者可以輕鬆將虛假資訊傳送給伺服器。現在遠端登入基本拋棄了telnet這種方式,而取而代之的是通過SSH服務遠端登入伺服器。

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

在Linux下可通過history命令檢視使用者所有的歷史操作記錄,同時shell命令操作記錄預設儲存在使用者目錄下的.bash_history檔案中,通過這個檔案可以查詢shell命令的執行歷史,有助於運維人員進行系統審計和問題排查,同時,在伺服器遭受******後,也可以通過這個命令或檔案查詢***登入伺服器所執行的歷史命令操作,但是有時候***在***伺服器後為了毀滅痕跡,可能會刪除.bash_history檔案,這就需要合理的保護或備份.bash_history檔案。

3、啟用tcp_wrappers防火牆

Tcp_Wrappers是一個用來分析TCP/IP封包的軟體,類似的IP封包軟體還有iptables。Linux預設都安裝了Tcp_Wrappers。作為一個安全的系統,Linux本身有兩層安全防火牆,通過IP過濾機制的iptables實現第一層防護。iptables防火牆通過直觀地監視系統的執行狀況,阻擋網路中的一些惡意***,保護整個系統正常執行,免遭***和破壞。如果通過了第一層防護,那麼下一層防護就是tcp_wrappers了。通過Tcp_Wrappers可以實現對系統中提供的某些服務的開放與關閉、允許和禁止,從而更有效地保證系統安全執行。

檔案系統安全

1、鎖定系統重要檔案

系統運維人員有時候可能會遇到通過root使用者都不能修改或者刪除某個檔案的情況,產生這種情況的大部分原因可能是這個檔案被鎖定了。在Linux下鎖定檔案的命令是chattr,通過這個命令可以修改ext2、ext3、ext4檔案系統下檔案屬性,但是這個命令必須有超級使用者root來執行。和這個命令對應的命令是lsattr,這個命令用來查詢檔案屬性。

對重要的檔案進行加鎖,雖然能夠提高伺服器的安全性,但是也會帶來一些不便。

例如:在軟體的安裝、升級時可能需要去掉有關目錄和檔案的immutable屬性和append-only屬性,同時,對日誌檔案設定了append-only屬性,可能會使日誌輪換(logrotate)無法進行。因此,在使用chattr命令前,需要結合伺服器的應用環境來權衡是否需要設定immutable屬性和append-only屬性。

另外,雖然通過chattr命令修改檔案屬效能夠提高檔案系統的安全性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var等目錄。

根目錄不能有不可修改屬性,因為如果根目錄具有不可修改屬性,那麼系統根本無法工作:

/dev在啟動時,syslog需要刪除並重新建立/dev/log套接字裝置,如果設定了不可修改屬性,那麼可能出問題;

/tmp目錄會有很多應用程式和系統程式需要在這個目錄下建立臨時檔案,也不能設定不可修改屬性;

/var是系統和程式的日誌目錄,如果設定為不可修改屬性,那麼系統寫日誌將無法進行,所以也不能通過chattr命令保護。

2、檔案許可權檢查和修改

不正確的許可權設定直接威脅著系統的安全,因此運維人員應該能及時發現這些不正確的許可權設定,並立刻修正,防患於未然。下面列舉幾種查詢系統不安全許可權的方法。

(1)查詢系統中任何使用者都有寫許可權的檔案或目錄

查詢檔案:find / -type f -perm -2 -o -perm -20 |xargs ls -al
查詢目錄:find / -type d -perm -2 -o -perm -20 |xargs ls –ld

(2)查詢系統中所有含“s”位的程式
find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al

含有“s”位許可權的程式對系統安全威脅很大,通過查詢系統中所有具有“s”位許可權的程式,可以把某些不必要的“s”位程式去掉,這樣可以防止使用者濫用許可權或提升許可權的可能性。

(3)檢查系統中所有suid及sgid檔案
find / -user root -perm -2000 -print -exec md5sum {} ;
find / -user root -perm -4000 -print -exec md5sum {} ;

將檢查的結果儲存到檔案中,可在以後的系統檢查中作為參考。

(4)檢查系統中沒有屬主的檔案
find / -nouser -o –nogroup
沒有屬主的孤兒檔案比較危險,往往成為***利用的工具,因此找到這些檔案後,要麼刪除掉,要麼修改檔案的屬主,使其處於安全狀態。

3、/tmp、/var/tmp、/dev/shm安全設定

在Linux系統中,主要有兩個目錄或分割槽用來存放臨時檔案,分別是/tmp和/var/tmp。

儲存臨時檔案的目錄或分割槽有個共同點就是所有使用者可讀寫、可執行,這就為系統留下了安全隱患。***者可以將病毒或者***指令碼放到臨時檔案的目錄下進行資訊收集或偽裝,嚴重影響伺服器的安全,此時,如果修改臨時目錄的讀寫執行許可權,還有可能影響系統上應用程式的正常執行,因此,如果要兼顧兩者,就需要對這兩個目錄或分割槽就行特殊的設定。

/dev/shm是Linux下的一個共享記憶體裝置,在Linux啟動的時候系統預設會載入/dev/shm,被載入的/dev/shm使用的是tmpfs檔案系統,而tmpfs是一個記憶體檔案系統,儲存到tmpfs檔案系統的資料會完全駐留在RAM中,這樣通過/dev/shm就可以直接操控系統記憶體,這將非常危險,因此如何保證/dev/shm安全也至關重要。

對於/tmp的安全設定,需要看/tmp是一個獨立磁碟分割槽,還是一個根分割槽下的資料夾,如果/tmp是一個獨立的磁碟分割槽,那麼設定非常簡單,修改/etc/fstab檔案中/tmp分割槽對應的掛載屬性,加上nosuid、noexec、nodev三個選項即可,修改後的/tmp分割槽掛載屬性類似如下:
LABEL=/tmp  /tmp ext3 rw,nosuid,noexec,nodev 0 0

其中,nosuid、noexec、nodev選項,表示不允許任何suid程式,並且在這個分割槽不能執行任何指令碼等程式,並且不存在裝置檔案。

在掛載屬性設定完成後,重新掛載/tmp分割槽,保證設定生效。

對於/var/tmp,如果是獨立分割槽,安裝/tmp的設定方法是修改/etc/fstab檔案即可;如果是/var分割槽下的一個目錄,那麼可以將/var/tmp目錄下所有資料移動到/tmp分割槽下,然後在/var下做一個指向/tmp的軟連線即可。也就是執行如下操作:
[[email protected] ~]# mv /var/tmp/* /tmp
[[email protected] ~]# ln -s  /tmp /var/tmp

如果/tmp是根目錄下的一個目錄,那麼設定稍微複雜,可以通過建立一個loopback檔案系統來利用Linux核心的loopback特性將檔案系統掛載到/tmp下,然後在掛載時指定限制載入選項即可。一個簡單的操作示例如下:

[[email protected] ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000
[[email protected] ~]# mke2fs -j /dev/tmpfs
[[email protected] ~]# cp -av /tmp /tmp.old
[[email protected] ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp
[[email protected] ~]# chmod 1777 /tmp
[[email protected] ~]# mv -f /tmp.old/* /tmp/
[[email protected] ~]# rm -rf /tmp.old


最後,編輯/etc/fstab,新增如下內容,以便系統在啟動時自動載入loopback檔案系統:

/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0

Linux後門***檢測工具

rootkit是Linux平臺下最常見的一種***後門工具,它主要通過替換系統檔案來達到***和和隱蔽的目的,這種***比普通***後門更加危險和隱蔽,普通的檢測工具和檢查手段很難發現這種***。rootkit***能力極強,對系統的危害很大,它通過一套工具來建立後門和隱藏行跡,從而讓***者保住許可權,以使它在任何時候都可以使用root許可權登入到系統。

rootkit主要有兩種型別: 檔案級別核心級別,下面分別進行簡單介紹。

檔案級別的rootkit一般是通過程式漏洞或者系統漏洞進入系統後,通過修改系統的重要檔案來達到隱藏自己的目的。在系統遭受rootkit***後,合法的檔案被***程式替代,變成了外殼程式,而其內部是隱藏著的後門程式。

通常容易被rootkit替換的系統程式有login、ls、ps、ifconfig、du、find、netstat等,其中login程式是最經常被替換的,因為當訪問Linux時,無論是通過本地登入還是遠端登入,/bin/login程式都會執行,系統將通過/bin/login來收集並核對使用者的賬號和密碼,而rootkit就是利用這個程式的特點,使用一個帶有根許可權後門密碼的/bin/login來替換系統的/bin/login,這樣***者通過輸入設定好的密碼就能輕鬆進入系統。此時,即使系統管理員修改root密碼或者清除root密碼,***者還是一樣能通過root使用者登入系統。***者通常在進入Linux系統後,會進行一系列的***動作,最常見的是安裝嗅探器收集本機或者網路中其他伺服器的重要資料。在預設情況下,Linux中也有一些系統檔案會監控這些工具動作,例如ifconfig命令,所以,***者為了避免被發現,會想方設法替換其他系統檔案,常見的就是ls、ps、ifconfig、du、find、netstat等。如果這些檔案都被替換,那麼在系統層面就很難發現rootkit已經在系統中運行了。

這就是檔案級別的rootkit,對系統維護很大,目前最有效的防禦方法是定期對系統重要檔案的完整性進行檢查,如果發現檔案被修改或者被替換,那麼很可能系統已經遭受了rootkit***。檢查件完整性的工具很多,常見的有Tripwire、 aide等,可以通過這些工具定期檢查檔案系統的完整性,以檢測系統是否被rootkit***。

核心級rootkit是比檔案級rootkit更高階的一種***方式,它可以使***者獲得對系統底層的完全控制權,此時***者可以修改系統核心,進而截獲執行程式向核心提交的命令,並將其重定向到***者所選擇的程式並執行此程式,也就是說,當用戶要執行程式A時,被***者修改過的核心會假裝執行A程式,而實際上卻執行了程式B。

核心級rootkit主要依附在核心上,它並不對系統檔案做任何修改,因此一般的檢測工具很難檢測到它的存在,這樣一旦系統核心被植入rootkit,***者就可以對系統為所欲為而不被發現。目前對於核心級的rootkit還沒有很好的防禦工具,因此,做好系統安全防範就非常重要,將系統維持在最小許可權內工作,只要***者不能獲取root許可權,就無法在核心中植入rootkit。

1、rootkit後門檢測工具chkrootkit

 chkrootkit是一個Linux系統下查詢並檢測rootkit後門的工具,它的官方址: http://www.chkrootkit.org/

 chkrootkit沒有包含在官方的CentOS源中,因此要採取手動編譯的方法來安裝,不過這種安裝方法也更加安全。

chkrootkit的使用比較簡單,直接執行chkrootkit命令即可自動開始檢測系統。下面是某個系統的檢測結果:

[[email protected] chkrootkit]# /usr/local/chkrootkit/chkrootkit
Checking `ifconfig'... INFECTED
Checking `ls'... INFECTED
Checking `login'... INFECTED
Checking `netstat'... INFECTED
Checking `ps'... INFECTED
Checking `top'... INFECTED
Checking `sshd'... not infected
Checking `syslogd'... not tested

從輸出可以看出,此係統的ifconfig、ls、login、netstat、ps和top命令已經被感染。針對被感染rootkit的系統,最安全而有效的方法就是備份資料重新安裝系統。

chkrootkit在檢查rootkit的過程中使用了部分系統命令,因此,如果伺服器被******,那麼依賴的系統命令可能也已經被***者替換,此時chkrootkit的檢測結果將變得完全不可信。為了避免chkrootkit的這個問題,可以在伺服器對外開放前,事先將chkrootkit使用的系統命令進行備份,在需要的時候使用備份的原始系統命令讓chkrootkit對rootkit進行檢測。

2、rootkit後門檢測工具RKHunter

 RKHunter是一款專業的檢測系統是否感染rootkit的工具,它通過執行一系列的指令碼來確認伺服器是否已經感染rootkit。在官方的資料中,RKHunter可以作的事情有:
MD5校驗測試,檢測檔案是否有改動

 檢測rootkit使用的二進位制和系統工具檔案
 檢測特洛伊***程式的特徵碼
 檢測常用程式的檔案屬性是否異常
 檢測系統相關的測試
 檢測隱藏檔案
 檢測可疑的核心模組LKM
 檢測系統已啟動的監聽埠

在Linux終端使用rkhunter來檢測,最大的好處在於每項的檢測結果都有不同的顏色顯示,如果是綠色的表示沒有問題,如果是紅色的,那就要引起關注了。另外,在執行檢測的過程中,在每個部分檢測完成後,需要以Enter鍵來繼續。如果要讓程式自動執行,可以執行如下命令:

[[email protected] ~]# /usr/local/bin/rkhunter --check --skip-keypress 

同時,如果想讓檢測程式每天定時執行,那麼可以在/etc/crontab中加入如下內容:

30 09 * * * root /usr/local/bin/rkhunter --check --cronjob 

這樣,rkhunter檢測程式就會在每天的9:30分執行一次。

伺服器遭受***後的處理過程

安全總是相對的,再安全的伺服器也有可能遭受到***。作為一個安全運維人員,要把握的原則是:儘量做好系統安全防護,修復所有已知的危險行為,同時,在系統遭受***後能夠迅速有效地處理***行為,最大限度地降低***對系統產生的影響。

1、處理伺服器遭受***的一般思路

系統遭受***並不可怕,可怕的是面對***束手無策,下面就詳細介紹下在伺服器遭受***後的一般處理思路。

(1)切斷網路
所有的***都來自於網路,因此,在得知系統正遭受***的***後,首先要做的就是斷開伺服器的網路連線,這樣除了能切斷***源之外,也能保護伺服器所在網路的其他主機。

(2)查詢***源
可以通過分析系統日誌或登入日誌檔案,檢視可疑資訊,同時也要檢視系統都打開了哪些埠,執行哪些程序,並通過這些程序分析哪些是可疑的程式。這個過程要根據經驗和綜合判斷能力進行追查和分析。下面會詳細介紹這個過程的處理思路。

(3)分析***原因和途徑
既然系統遭到***,那麼原因是多方面的,可能是系統漏洞,也可能是程式漏洞,一定要查清楚是哪個原因導致的,並且還要查清楚遭到***的途徑,找到***源,因為只有知道了遭受***的原因和途徑,才能刪除***源同時進行漏洞的修復。

(4)備份使用者資料
在伺服器遭受***後,需要立刻備份伺服器上的使用者資料,同時也要檢視這些資料中是否隱藏著***源。如果***源在使用者資料中,一定要徹底刪除,然後將使用者資料備份到一個安全的地方。

(5)重新安裝系統
永遠不要認為自己能徹底清除***源,因為沒有人能比***更瞭解***程式,在伺服器遭到***後,最安全也最簡單的方法就是重新安裝系統,因為大部分***程式都會依附在系統檔案或者核心中,所以重新安裝系統才能徹底清除***源。

(6)修復程式或系統漏洞
在發現系統漏洞或者應用程式漏洞後,首先要做的就是修復系統漏洞或者更改程式bug,因為只有將程式的漏洞修復完畢才能正式在伺服器上執行。

(7)恢復資料和連線網路
將備份的資料重新複製到新安裝的伺服器上,然後開啟服務,最後將伺服器開啟網路連線,對外提供服務。

2、檢查並鎖定可疑使用者

當發現伺服器遭受***後,首先要切斷網路連線,但是在有些情況下,比如無法馬上切斷網路連線時,就必須登入系統檢視是否有可疑使用者,如果有可疑使用者登入了系統,那麼需要馬上將這個使用者鎖定,然後中斷此使用者的遠端連線。

3、檢視系統日誌

檢視系統日誌是查詢***源最好的方法,可查的系統日誌有/var/log/messages、/var/log/secure等,這兩個日誌檔案可以記錄軟體的執行狀態以及遠端使用者的登入狀態,還可以檢視每個使用者目錄下的.bash_history檔案,特別是/root目錄下的.bash_history檔案,這個檔案中記錄著使用者執行的所有歷史命令。

4、檢查並關閉系統可疑程序

檢查可疑程序的命令很多,例如ps、top等,但是有時候只知道程序的名稱無法得知路徑,此時可以通過如下命令檢視:
首先通過pidof命令可以查詢正在執行的程序PID,例如要查詢sshd程序的PID,執行如下命令:

[[email protected] ~]# pidof sshd
13276 12942 4284

然後進入記憶體目錄,檢視對應PID目錄下exe檔案的資訊:

[[email protected] ~]# ls -al /proc/13276/exe 
lrwxrwxrwx 1 root root 0 Oct  4 22:09 /proc/13276/exe -> /usr/sbin/sshd

這樣就找到了程序對應的完整執行路徑。如果還有檢視檔案的控制代碼,可以檢視如下目錄:

[[email protected] ~]# ls -al /proc/13276/fd

通過這種方式基本可以找到任何程序的完整執行資訊.

5、檢查檔案系統的完好性

檢查檔案屬性是否發生變化是驗證檔案系統完好性最簡單、最直接的方法,例如可以檢查被***伺服器上/bin/ls檔案的大小是否與正常系統上此檔案的大小相同,以驗證檔案是否被替換,但是這種方法比較低階。此時可以藉助於Linux下rpm這個工具來完成驗證,操作如下:

[[email protected] ~]# rpm -Va
....L...  c /etc/pam.d/system-auth
S.5.....  c /etc/security/limits.conf
S.5....T  c /etc/sysctl.conf
S.5....T    /etc/sgml/docbook-simple.cat
S.5....T  c /etc/login.defs
S.5.....  c /etc/openldap/ldap.conf
S.5....T  c /etc/sudoers

6、重新安裝系統恢復資料

很多情況下,被***過的系統已經不再可信任,因此,最好的方法是將伺服器上面資料進行備份,然後重新安裝系統,最後再恢復資料即可。


資料恢復完成,馬上對系統做上面介紹的安全加固策略,保證系統安全。


Q1:關於linux使用者密碼強度的事情,是否有配置手段強制要求?
A1:有啊,通過pam進行限制。但是監控遠端登入通過金鑰方式,拋棄密碼登入

Q2:請問有什麼好的辦法將使用者的history實時傳送到日誌中心?
A2:兩種方法:1、通過rsyslog方式配置實現;2、通過flume日誌傳送流方式實時傳到日誌中心,兩種方式,第一種實現簡單,第二種實現更專業

Q3:但history記錄命令並不是實時的  去過通過讀取history檔案讀取併發送日誌的話  得到的肯定不是實時的日誌?
A3:通過tail等類似方式,實時監控history的輸出即可,不用匯入到檔案中在看,這裡有個問題,就是不同終端的命令無法實時獲取,所以實時也是相對的