Linuxeden.com---自由文檔- 用日誌系統保護Linux安全

用日誌系統保護Linux安全  尚觀Linux年薪50000就業協議保證

2005-06-27 otto 點擊: 4661
用日誌系統保護Linux安全

Linux系統中的日誌子系統對於系統安全來說非常重要,它記錄了系統每天發生的各種各樣的事情,包括那些用戶曾經或者正在使用系統,可以通過日誌來檢查錯誤發生的原因,更重要的是在系統受到黑客攻擊後,日誌可 以記錄下攻擊者留下的痕迹,通過查看這些痕迹,系統管理員可以發現黑客攻擊的某些手段以及特點,從而能夠進行處理工作,為抵禦下一次攻擊做好準備。

在Linux系統中,有三類主要的日誌子系統:

● 連接時間日誌: 由多個程序執行,把記錄寫入到/var/log/wtmp和/var/run/utmp,login等程序會更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。

● 進程統計: 由系統內核執行,當一個進程終止時,為每個進程往進程統計文件(pacct或acct)中寫一個記錄。進程統計的目的是為系統中的基本服務提供命令使用統計。

● 錯誤日誌: 由syslogd(8)守護程序執行,各種系統守護進程、用戶程序和內核通過syslogd(3)守護程序向文件/var/log/messages報告值得注意的事件。另外有許多Unix程序創建日誌。像HTTP和FTP這樣提供網路服務的伺服器也保持詳細的日誌。

Linux下日誌的使用

1.基本日誌命令的使用

utmp、wtmp日誌文件是多數Linux日誌子系統的關鍵,它保存了用戶登錄進入和退出的記錄。有關當前登錄用戶的信息記錄在文件utmp中; 登錄進入和退出記錄在文件wtmp中; 數據交換、關機以及重啟的機器信息也都記錄在wtmp文件中。所有的記錄都包含時間戳。時間戳對於日誌來說非常重要,因為很多攻擊行為分析都是與時間有極大關係的。這些文件在具有大量用戶的系統中增長十分迅速。例如wtmp文件可以無限增長,除非定期截取。許多系統以一天或者一周為單位把wtmp配置成循環使用。它通常由cron運行的腳本來修改,這些腳本重新命名並循環使用wtmp文件。

utmp文件被各種命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。 但它們都是二進位文件,不能被諸如tail命令剪貼或合併(使用cat命令)。用戶需要使用who、w、users、last和ac來使用這兩個文件包含的信息。具體用法如下:

who命令: who命令查詢utmp文件並報告當前登錄的每個用戶。Who的預設輸出包括用戶名、終端類型、登錄日期及遠程主機。使用該命令,系統管理員可以查看當前系統存在哪些不法用戶,從而對其進行審計和處理。例如: 運行who命令顯示如下:

[root@working]# who

root pts/0 May 9 21:11 (10.0.2.128)

root pts/1 May 9 21:16 (10.0.2.129)

lhwen pts/7 May 9 22:03 (10.0.2.27)

如果指明了wtmp文件名,則who命令查詢所有以前的記錄。例如命令who /var/log/wtmp將報告自從wtmp文件創建或刪改以來的每一次登錄。

日誌使用注意事項

系統管理人員應該提高警惕,隨時注意各種可疑狀況,並且按時和隨機地檢查各種系統日誌文件,包括一般信息日誌、網路連接日誌、文件傳輸日誌以及用戶登錄日誌等。在檢查這些日誌時,要注意是否有不合常理的時間記載。例如:

用戶在非常規的時間登錄;

不正常的日誌記錄,比如日誌的殘缺不全或者是諸如wtmp這樣的日誌文件無故地缺少了中間的記錄文件;

用戶登錄系統的IP地址和以往的不一樣;

用戶登錄失敗的日誌記錄,尤其是那些一再連續嘗試進入失敗的日誌記錄;

非法使用或不正當使用超級用戶許可權su的指令;

無故或者非法重新啟動各項網路服務的記錄。

另外, 尤其提醒管理人員注意的是: 日誌並不是完全可靠的。高明的黑客在入侵系統後,經常會打掃現場。所以需要綜合運用以上的系統命令,全面、綜合地進行審查和檢測,切忌斷章取義,否則很難發現入侵或者做出錯誤的判斷。

users命令: users用單獨的一行列印出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數。運行該命令將如下所示:

[root@working]# users

root root //只登錄了一個Root許可權的用戶

last命令: last命令往回搜索wtmp來顯示自從文件第一次創建以來登錄過的用戶。系統管理員可以周期性地對這些用戶的登錄情況進行審計和考核,從而發現其中存在的問題,確定不法用戶,並進行處理。運行該命令,如下所示:

[root@working]# last

devin pts/1 10.0.2.221 Mon Jul 21 15:08-down (8+17:46)

devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)

changyi pts/2 10.0.2.141 Mon Jul 21 14:12 - 14:12 (00:00)

devin pts/1 10.0.2.221 Mon Jul 21 12:51 - 14:40 (01:49)

reboot system boot 2.4.18 Fri Jul 18 15:42 (11+17:13)

reboot system boot 2.4.18 Fri Jul 18 15:34 (00:04)

reboot system boot 2.4.18 Fri Jul 18 15:02 (00:36)

讀者可以看到,使用上述命令顯示的信息太多,區分度很小。所以,可以通過指明用戶來顯示其登錄信息即可。例如: 使用last devin來顯示devin的歷史登錄信息,則如下所示:

[root@working]# last devin

devin pts/1 10.0.2.221 Mon Jul 21 15:08 - down (8+17:46)

devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)

ac命令:ac命令根據當前的/var/log/wtmp文件中的登錄進入和退出來報告用戶連接的時間(小時),如果不使用標誌,則報告總的時間。另外,可以加一些參數,例如,last -t 7表示顯示上一周的報告。

lastlog命令 lastlog文件在每次有用戶登錄時被查詢。可以使用lastlog命令檢查某特定用戶上次登錄的時間,並格式化輸出上次登錄日誌/var/log/lastlog的內容。它根據UID排序顯示登錄名、埠號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示「**Never logged**」。注意需要以root身份運行該命令。運行該命令如下所示:

[root@working]# lastlog

Username Port From Latest

root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

2.使用Syslog設備

Syslog已被許多日誌函數採納,被用在許多保護措施中,任何程序都可以通過syslog 記錄事件。Syslog可以記錄系統事件,可以寫到一個文件或設備中,或給用戶發送一個信息。它能記錄本地事件或通過網路記錄另一個主機上的事件。

Syslog設備核心包括一個守護進程(/etc/syslogd守護進程)和一個配置文件(/etc/syslog.conf配置文件)。通常情況下,多數syslog信息被寫到/var/adm或/var/log目錄下的信息文件中(messages.*)。一個典型的syslog記錄包括生成程序的名字和一個文本信息。它還包括一個設備和一個優先順序範圍。

系統管理員通過使用syslog.conf文件,可以對生成的日誌的位置及其相關信息進行靈活配置,滿足應用的需要。例如,如果想把所有郵件消息記錄到一個文件中,則做如下操作:

#Log all the mail messages in one place

mail.* /var/log/maillog

其他設備也有自己的日誌。UUCP和news設備能產生許多外部消息。它把這些消息存到自己的日誌(/var/log/spooler)中並把級別限為"err"或更高。例如:

# Save news errors of level crit and higher in a special file.

uucp,news.crit /var/log/spooler

當一個緊急消息到來時,可能想讓所有的用戶都得到。也可能想讓自己的日誌接收並保存。

#Everybody gets emergency messages, plus log them on anther machine

*.emerg *

*.emerg @linuxaid.com.cn

用戶可以在一行中指明所有的設備。下面的例子把info或更高級別的消息送到/var/log/messages,除了mail以外。級別"none"禁止一個設備:

#Log anything(except mail)of level info or higher

#Don『t log private authentication messages!

*.info:mail.none;autHPriv.none /var/log/messages

在有些情況下,可以把日誌送到印表機,這樣網路入侵者怎麼修改日誌都不能清除入侵的痕迹。因此,syslog設備是一個攻擊者的顯著目標,破壞了它將會使用戶很難發現入侵以及入侵的痕迹,因此要特別注意保護其守護進程以及配置文件。

3.程序日誌的使用

許多程序通過維護日誌來反映系統的安全狀態。su命令允許用戶獲得另一個用戶的許可權,所以它的安全很重要,它的文件為sulog,同樣的還有sudolog。另外,諸如Apache等Http的伺服器都有兩個日誌: access_log(客戶端訪問日誌)以及error_log(服務出錯日誌)。 FTP服務的日誌記錄在xferlog文件當中,Linux下郵件傳送服務(sendmail)的日誌一般存放在maillog文件當中。

程序日誌的創建和使用在很大程度上依賴於用戶的良好編程習慣。對於一個優秀的程序員來說,任何與系統安全或者網路安全相關的程序的編寫,都應該包含日誌功能,這樣不但便於程序的調試和糾錯,而且更重要的是能夠給程序的使用方提供日誌的分析功能,從而使系統管理員能夠較好地掌握程序乃至系統的運行狀況和用戶的行為,及時採取行動,排除和阻斷意外以及惡意的入侵行為。

來源:CCW

推薦閱讀:

森馬EKP系統打造信息化快車道
生殖系統為什麼與排泄系統這麼近?
汽車懸架系統,汽車根基所在
經絡系統的組成
中樞神經系統生殖細胞瘤(綜述)

TAG:安全 | Linux | 自由 | 文檔 | 系統 | 保護 | 日誌 |