用日誌系統保護Linux安全
來源:CCW
在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檔案當中。
程式日誌的建立和使用在很大程度上依賴於使用者的良好程式設計習慣。對於一個優秀的程式設計師來說,任何與系統安全或者網路安全相關的程式的編寫,都應該包含日誌功能,這樣不但便於程式的除錯和糾錯,而且更重要的是能夠給程式的使用方提供日誌的分析功能,從而使系統管理員能夠較好地掌握程式乃至系統的執行狀況和使用者的行為,及時採取行動,排除和阻斷意外以及惡意的入侵行為。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/181629/viewspace-835882/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux系統安全保護Linux
- 保護資料和日誌檔案的安全
- Linux的系統的安全如何保障?保護Linux系統安全的九個常用方法Linux
- 19-作業系統安全保護作業系統
- 用系統日誌瞭解你的 Linux 系統Linux
- Linux作業系統安全必要保護措施例項(轉)Linux作業系統
- Linux系統級日誌系統Linux
- DG保護模式與備用聯機日誌檔案模式
- 保護Solaris系統安全小竅門(轉)
- Linux日誌系統(一)Linux
- 保護系統 用資料庫加密實現資料的安全資料庫加密
- 保護企業系統中的程式碼安全
- LINUX檢視系統日誌Linux
- 日誌分析兩部曲:充分利用日誌保護網路
- 用 Tails 1.4 Linux 系統來保護隱私和保持匿名AILinux
- 小心設定啟動項保護Windows系統安全Windows
- 淺談資料庫系統安全保護機制資料庫
- Linux 系統日誌的組成Linux
- 千兆應用入侵防護系統保護解決方案(轉)
- 視訊通訊保障系統為‘救護車安全保駕護航’
- ELK日誌系統之通用應用程式日誌接入方案
- 日誌系統
- LINUX的系統核心空間的保護(轉)Linux
- 自我保護 菜鳥系統安全自檢手冊(轉)
- Linux 日誌檔案系統如何工作Linux
- linux檔案系統和日誌分析Linux
- Linux作業系統常用log日誌Linux作業系統
- Linux檔案系統與日誌分析Linux
- Fortinet運用前沿IT思維,保護OT系統
- Linux系統:保證資料安全落盤Linux
- 用 Logwatch 工具監控 Linux 系統 Log 日誌(zt)Linux
- 保護工控系統網路安全的關鍵三步
- lnmp關閉mysql日誌保護硬碟空間的方法LNMPMySql硬碟
- lnmp下如何關閉Mysql日誌保護磁碟空間LNMPMySql
- AIX系統日誌AI
- AIX 系統日誌AI
- 保護網站安全網站
- grafana/loki:用於日誌聚合的系統GrafanaLoki