|
使用日志子系統(tǒng)保護(hù)Linux安全
|
文章來(lái)源:名易軟件Linux系統(tǒng)中的日志子系統(tǒng)對(duì)于系統(tǒng)安全來(lái)說(shuō)非常重要,它記錄了系統(tǒng)每天發(fā)生的各種各樣的事情,包括哪些用戶(hù)曾經(jīng)或者正在使用系統(tǒng),可以通過(guò)日志來(lái)檢查錯(cuò)誤發(fā)生的原因,更重要的是在系統(tǒng)受到黑客攻擊后,日志可以記錄下攻擊者留下的痕跡,通過(guò)查看這些痕跡,系統(tǒng)管理員可以發(fā)現(xiàn)黑客攻擊的某些手段以及特點(diǎn),從而能夠進(jìn)行處理工作,為抵御下一次攻擊做好準(zhǔn)備。Linux日志簡(jiǎn)介日志主要的功能有:審計(jì)和監(jiān)測(cè)。它還可以實(shí)時(shí)的監(jiān)測(cè)系統(tǒng)狀態(tài),監(jiān)測(cè)和追蹤侵入者等等。在Linux系統(tǒng)中,有三類(lèi)主要的日志子系統(tǒng):·連接時(shí)間日志:由多個(gè)程序執(zhí)行,把記錄寫(xiě)入到varlogwtmp和varrunutmp,login等程序會(huì)更新wtmp和utmp文件,使系統(tǒng)管理員能夠跟蹤誰(shuí)在何時(shí)登錄到系統(tǒng)。·進(jìn)程統(tǒng)計(jì):由系統(tǒng)內(nèi)核執(zhí)行,當(dāng)一個(gè)進(jìn)程終止時(shí),為每個(gè)進(jìn)程往進(jìn)程統(tǒng)計(jì)文件(pacct或acct)中寫(xiě)一個(gè)記錄。進(jìn)程統(tǒng)計(jì)的目的是為系統(tǒng)中的基本服務(wù)提供命令使用統(tǒng)計(jì)?!ゅe(cuò)誤日志:由syslogd(8)守護(hù)程序執(zhí)行,各種系統(tǒng)守護(hù)進(jìn)程、用戶(hù)程序和內(nèi)核通過(guò)syslog(3)守護(hù)程序向文件varlogmessages報(bào)告值得注意的事件。另外有許多Unix程序創(chuàng)建日志。像HTTP和FTP這樣提供網(wǎng)絡(luò)服務(wù)的服務(wù)器也保持詳細(xì)的日志。表常用日志文件選項(xiàng)注釋 | |
access-log記錄HTTPweb的傳輸 | |
acctpacct記錄用戶(hù)命令 | |
boot.log記錄Linux系統(tǒng)開(kāi)機(jī)自檢過(guò)程顯示的信息 | |
lastlog記錄最近幾次成功登錄的事件和最后一次不成功的登錄 | |
messages從syslog中記錄信息(有的鏈接到syslog文件) | |
sudolog記錄使用sudo發(fā)出的命令 | |
sulog記錄使用su命令的使用 | |
syslog從syslog中記錄信息 | |
utmp記錄當(dāng)前登錄的每個(gè)用戶(hù)信息 | |
wtmp一個(gè)用戶(hù)每次登錄進(jìn)入和退出時(shí)間的記錄 | |
xferlog記錄FTP會(huì)話(huà)信息 | |
maillog記錄每一個(gè)發(fā)送到系統(tǒng)或從系統(tǒng)發(fā)出的電子郵件的活動(dòng)。它可以用來(lái)查看用戶(hù)使用哪個(gè)系統(tǒng)發(fā)送工具或把數(shù)據(jù)發(fā)送到哪個(gè)系統(tǒng) | Linux下日志的使用1.基本日志命令的使用utmp、wtmp日志文件是多數(shù)Linux日志子系統(tǒng)的關(guān)鍵,它保存了用戶(hù)登錄進(jìn)入和退出的記錄。有關(guān)當(dāng)前登錄用戶(hù)的信息記錄在文件utmp中;登錄進(jìn)入和退出記錄在文件wtmp中;數(shù)據(jù)交換、關(guān)機(jī)以及重啟的機(jī)器信息也都記錄在wtmp文件中。所有的記錄都包含時(shí)間戳。時(shí)間戳對(duì)于日志來(lái)說(shuō)非常重要,因?yàn)楹芏喙粜袨榉治龆寂c時(shí)間有極大的關(guān)系。這些文件在具有大量用戶(hù)的系統(tǒng)中增長(zhǎng)十分迅速。例如wtmp文件可以無(wú)限增長(zhǎng),除非定期截取。許多系統(tǒng)以一天或者一周為單位把wtmp配置成循環(huán)使用。它通常由cron運(yùn)行的腳本來(lái)修改。這些腳本重新命名并循環(huán)使用wtmp文件。通常,wtmp在第一天結(jié)束后命名為wtmp.1;第二天后wtmp.1變?yōu)閣tmp.2等等,用戶(hù)可以根據(jù)實(shí)際情況來(lái)對(duì)這些文件進(jìn)行命名和配置使用。utmp文件被各種命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。wtmp和utmp文件都是二進(jìn)制文件,他們不能被諸如tail命令剪貼或合并(使用cat命令)。用戶(hù)需要使用who、w、users、last和ac來(lái)使用這兩個(gè)文件包含的信息。具體用法如下:who命令:who命令查詢(xún)utmp文件并報(bào)告當(dāng)前登錄的每個(gè)用戶(hù)。Who的缺省輸出包括用戶(hù)名、終端類(lèi)型、登錄日期及遠(yuǎn)程主機(jī)。使用該命令,系統(tǒng)管理員可以查看當(dāng)前系統(tǒng)存在哪些不法用戶(hù),從而對(duì)其進(jìn)行審計(jì)和處理。例如:運(yùn)行who命令顯示如下:[root@working]#whorootpts0May921:11(10.0.2.128)rootpts1May921:16(10.0.2.129)lhwenpts7May922:03(10.0.2.27)如果指明了wtmp文件名,則who命令查詢(xún)所有以前的記錄。命令whovarlogwtmp將報(bào)告自從wtmp文件創(chuàng)建或刪改以來(lái)的每一次登錄。例如:運(yùn)行該命令如下所示:[root@working]#whovarlogwtmpliujunpts4Sep1621:22(10.0.2.231)rootpts1Sep1623:13(10.0.2.246)yzhpts0Sep1712:03(eagle)ltbpts0Sep1717:06(10.0.2.148)ltbpts0Sep1809:10(10.0.2.148)ltbpts1Sep1810:24(10.0.2.148)ltbpts0Sep1811:22(10.0.2.148)devinpts2Sep1816:23(10.0.2.211)users命令:users用單獨(dú)的一行打印出當(dāng)前登錄的用戶(hù),每個(gè)顯示的用戶(hù)名對(duì)應(yīng)一個(gè)登錄會(huì)話(huà)。如果一個(gè)用戶(hù)有不止一個(gè)登錄會(huì)話(huà),那他的用戶(hù)名將顯示相同的次數(shù)。運(yùn)行該命令將如下所示:[root@working]#usersrootroot只登錄了一個(gè)Root權(quán)限的用戶(hù)last命令:last命令往回搜索wtmp來(lái)顯示自從文件第一次創(chuàng)建以來(lái)登錄過(guò)的用戶(hù)。系統(tǒng)管理員可以周期性地對(duì)這些用戶(hù)的登錄情況進(jìn)行審計(jì)和考核,從而發(fā)現(xiàn)起中存在的問(wèn)題,確定不法用戶(hù),并進(jìn)行處理。運(yùn)行該命令,如下所示:[root@working]#lastdevinpts110.0.2.221MonJul2115:08-down(8+17:46)devinpts110.0.2.221MonJul2114:42-14:53(00:11)changyipts210.0.2.141MonJul2114:12-14:12(00:00)devinpts110.0.2.221MonJul2112:51-14:40(01:49)rebootsystemboot2.4.18FriJul1815:42(11+17:13)rebootsystemboot2.4.18FriJul1815:34(00:04)rebootsystemboot2.4.18FriJul1815:02(00:36)讀者可以看到,使用上述命令顯示的信息太多,區(qū)分度很小。所以,可以通過(guò)指明用戶(hù)來(lái)顯示其登錄信息即可。例如:使用lastdevin來(lái)顯示devin的歷史登錄信息,則如下所示:[root@working]#lastdevindevinpts110.0.2.221MonJul2115:08-down(8+17:46)devinpts110.0.2.221MonJul2114:42-14:53(00:11)ac命令:ac命令根據(jù)當(dāng)前的varlogwtmp文件中的登錄進(jìn)入和退出來(lái)報(bào)告用戶(hù)連結(jié)的時(shí)間(小時(shí)),如果不使用標(biāo)志,則報(bào)告總的時(shí)間。另外,可一加一些參數(shù),例如,last-t7表示限制上一周的報(bào)告。lastlog命令:lastlog文件在每次有用戶(hù)登錄時(shí)被查詢(xún)。可以使用lastlog命令檢查某特定用戶(hù)上次登錄的時(shí)間,并格式化輸出上次登錄日志varloglastlog的內(nèi)容。它根據(jù)UID排序顯示登錄名、端口號(hào)(tty)和上次登錄時(shí)間。如果一個(gè)用戶(hù)從未登錄過(guò),lastlog顯示**Neverlogged**。注意需要以root身份運(yùn)行該命令。運(yùn)行該命令如下所示: [root@working]#lastlogUsernamePortFromLatestrootpts110.0.2.129二5月1010:13:26+08002005opa·pts110.0.2.129二5月1010:13:26+080020052.使用Syslog設(shè)備Syslog已被許多日志函數(shù)采納,它用在許多保護(hù)措施中,任何程序都可以通過(guò)syslog記錄事件。Syslog可以記錄系統(tǒng)事件,可以寫(xiě)到一個(gè)文件或設(shè)備中,或給用戶(hù)發(fā)送一個(gè)信息。它能記錄本地事件或通過(guò)網(wǎng)絡(luò)記錄另一個(gè)主機(jī)上的事件。Syslog設(shè)備核心包括一個(gè)守護(hù)進(jìn)程(etcyslogd守護(hù)進(jìn)程)和一個(gè)配置文件(etcyslog.conf配置文件)。通常情況下,多數(shù)syslog信息被寫(xiě)到varadm或varlog目錄下的信息文件中(messages.*)。一個(gè)典型的syslog記錄包括生成程序的名字和一個(gè)文本信息。它還包括一個(gè)設(shè)備和一個(gè)優(yōu)先級(jí)范圍。系統(tǒng)管理員通過(guò)使用syslog.conf文件,可以對(duì)生成的日志的位置及其相關(guān)信息進(jìn)行靈活的配置,滿(mǎn)足應(yīng)用的需要。例如,如果想把所有郵件消息記錄到一個(gè)文件中,則做如下操作:#Logallthemailmessagesinoneplacemail.*varlogmaillog其他設(shè)備也有自己的日志。UUCP和news設(shè)備能產(chǎn)生許多外部消息。它把這些消息存到自己的日志(varlogpooler)中并把級(jí)別限為"err"或更高。例如:#Savenewserrorsoflevelcritandhigherinaspecialfile.uucp,news.critvarlogpooler當(dāng)一個(gè)緊急消息到來(lái)時(shí),可能想讓所有的用戶(hù)都得到。也可能想讓自己的日志接收并保存。#Everybodygetsemergencymessages,pluslogthemonanthermachine*.emerg**[email protected]用戶(hù)可以在一行中指明所有的設(shè)備。下面的例子把info或更高級(jí)別的消息送到varlogmessages,除了mail以外。級(jí)別"none"禁止一個(gè)設(shè)備:#Loganything(exceptmail)oflevelinfoorhigher#Don"tlogprivateauthenticationmessages!*.info:mail.none;autHPriv.nonevarlogmessages在有些情況下,可以把日志送到打印機(jī),這樣網(wǎng)絡(luò)入侵者怎么修改日志都不能清除入侵的痕跡。因此,syslog設(shè)備是一個(gè)攻擊者的顯著目標(biāo),破壞了它將會(huì)使用戶(hù)很難發(fā)現(xiàn)入侵以及入侵的痕跡,因此要特別注意保護(hù)其守護(hù)進(jìn)程以及配置文件。3.程序日志的使用許多程序通過(guò)維護(hù)日志來(lái)反映系統(tǒng)的安全狀態(tài)。su命令允許用戶(hù)獲得另一個(gè)用戶(hù)的權(quán)限,所以它的安全很重要,它的文件為sulog。同樣的還有sudolog。另外,諸如Apache等Http的服務(wù)器都有兩個(gè)日志:access_log(客戶(hù)端訪(fǎng)問(wèn)日志)以及error_log(服務(wù)出錯(cuò)日志)。FTP服務(wù)的日志記錄在xferlog文件當(dāng)中,Linux下郵件傳送服務(wù)(sendmail)的日志一般存放在maillog文件當(dāng)中。程序日志的創(chuàng)建和使用在很大程度上依賴(lài)于用戶(hù)的良好編程習(xí)慣。對(duì)于一個(gè)優(yōu)秀的程序員來(lái)說(shuō),任何與系統(tǒng)安全或者網(wǎng)絡(luò)安全相關(guān)的程序的編寫(xiě),都應(yīng)該包含日志功能,這樣不但便于程序的調(diào)試和糾錯(cuò),而且更重要的是能夠給程序的使用方提供日志的分析功能,從而使系統(tǒng)管理員能夠較好地掌握程序乃至系統(tǒng)的運(yùn)行狀況和用戶(hù)的行為,及時(shí)地采取行動(dòng),排除和阻斷意外以及惡意的入侵行為。Linux日志使用注意事項(xiàng)系統(tǒng)管理人員要應(yīng)該提高警惕,隨時(shí)注意各種可疑狀況,并且按時(shí)和隨機(jī)地檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡(luò)連接日志、文件傳輸日志以及用戶(hù)登錄日志等。在檢查這些日志時(shí),要注意是否有不合常理的時(shí)間記載。例如:·用戶(hù)在非常規(guī)的時(shí)間登錄;·不正常的日志記錄,比如日志的殘缺不全或者是諸如wtmp這樣的日志文件無(wú)故地缺少了中間的記錄文件;·用戶(hù)登錄系統(tǒng)的IP地址和以往的不一樣;·用戶(hù)登錄失敗的日志記錄,尤其是那些一再連續(xù)嘗試進(jìn)入失敗的日志記錄;·非法使用或不正當(dāng)使用超級(jí)用戶(hù)權(quán)限su的指令;·無(wú)故或者非法重新啟動(dòng)各項(xiàng)網(wǎng)絡(luò)服務(wù)的記錄。另外尤其提醒管理人員注意的是:日志并不是完全可靠的。高明的黑客在入侵系統(tǒng)后,經(jīng)常會(huì)打掃現(xiàn)場(chǎng)。所以需要綜合運(yùn)用以上的系統(tǒng)命令,全面、綜合的進(jìn)行審查和檢測(cè),切忌斷章取義,否則很難發(fā)現(xiàn)入侵或者做出錯(cuò)誤的判斷。
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
|
|
| | | | | | | | | | | | | |
|