Linux系統的LOG日誌檔案及入侵後日志的清除
UNIX網管員主要是靠系統的LOG,來獲得入侵的痕跡.當然也有第三方工具記錄入侵系統的 痕跡,UNIX系統存放LOG檔案,普通位置如下:
/usr/adm - 早期版本的UNIX
/var/adm - 新一點的版本使用這個位置
/var/log - 一些版本的Solaris,linux BSD,Free BSD使用這個位置
/etc - 多數UNIX版本把utmp放在這裡,有些也把wtmp放在這裡,syslog.conf在這裡
下面的一些檔案根據你所在的目錄不同而不同:
acct 或 pacct -- 記錄每個使用者使用的命令記錄
access_log -- 主要當伺服器執行NCSA HTTPD時, 記錄什麼站點連線過你的伺服器
aculog -- 儲存著你撥出去的MODEMS記錄
lastlog -- 記錄了使用者最近的LOGIN記錄和每個使用者的最初目的地,有時是最後不
成功LOGIN的記錄,當一個使用者登陸到unix系統,註冊程式在lastlog檔案中查詢該使用者的uid,如果該程式找到了
該使用者的uid,unix就會顯示最後一次登陸的時間和tty(終端號)
loginlog -- 記錄一些不正常的LOGIN記錄
messages -- 記錄輸出到系統控制檯的記錄,另外的資訊由syslog來生成
security -- 記錄一些使用UUCP系統企圖進入限制範圍的事例
sulog -- 記錄使用su命令的記錄.它通常在/var/adm/sulog.如果你在機器上使用了su命令,別忘了清除哦.
utmp -- 記錄當前登入到系統中的所有使用者, 這個檔案伴隨著使用者進入和離開系統而不斷變化.它還會為系統中的使用者保持很長的歷史記錄,utmp日誌通常存放在/var/adm/utmp目錄下.可以用w和who命令檢視,其他命令也可以訪問這個檔案.如:finger root就可以.現在的utmp一般都有utmpx檔案作為日誌記錄的補充.
utmpx -- UTMP的擴充套件
wtmp -- 記錄使用者登入和退出事件.它和utmp日誌檔案相似,但它隨著登陸次數的增加,它會變的越來越大,有些系統的ftp訪問也在這個檔案裡記錄,同時它也記錄正常的系統退出時間,可以用ac和last命令訪問.
syslog -- 最重要的日誌檔案,使用syslogd守護程式來獲得日誌資訊,通常情況下通過檢視/etc/syslog.conf.我們可以知道syslog記錄些什麼.預設時,它把大多的訊息傳給/var/adm/message.
/dev/log -- 一個UNIX域套接字,接受在本地機器上執行的程序所產生的訊息
/dev/klog -- 一個從UNIX核心接受訊息的裝置
514埠 -- 一個INTERNET套接字,接受其他機器通過UDP產生的syslog訊息。
uucp -- 記錄的UUCP的資訊,可以被本地UUCP活動更新, 也可有遠端站點發起
的動作修改,資訊包括髮出和接受的呼叫,發出的請求,傳送者, 發
送時間和傳送主機
lpd-errs -- 處理印表機故障資訊的日誌
ftp日誌 -- 執行帶-l選項的ftpd能夠獲得記錄功能
httpd日誌 -- HTTPD伺服器在日誌中記錄每一個WEB訪問記錄
history日誌 -- 這個檔案儲存了使用者最近輸入命令的記錄
vold.log -- 記錄使用外接媒介時遇到的錯誤記錄
======================
其他型別的日誌檔案-
======================
有些型別的LOG檔案沒有特定的標題,但開始於一個特定的標誌, 你可以在前面頭髮現如
下的標誌,這就一般表示此是個LOG日誌檔案,你就可以編輯它了:
xfer -- 表明試圖一個禁止的檔案傳輸.
rexe -- 表明試圖執行一個不允許的命令
還有許多其他其他型別的LOG檔案存在,主要是第三方軟體引起的, 或者甚至他媽的網管
自己有設定了一隻"眼睛"在他的系統上,所以你要對你認為可能是LOG檔案的檔案多一份心眼。
許多管理員喜歡把日誌檔案放在同一個目錄中以便管理, 所以你要檢查你發現的LOG檔案所在
的目錄中,是否有其他日誌檔案放在這裡,如果有,咯,你知道怎麼做。
另一個你要注意的是有關LOG使用者MAIL的檔案,此檔名可以多種多樣,或則有時是
syslog檔案的一部分。你要知道syslog記錄那些資訊, 你可以檢視syslog.conf中的資訊此文
件的目錄是在/etc中
一般我們都是檢視syslog.conf檔案來檢視日誌的配置情況.例如:cat /etc/syslog.conf
其中sunos作業系統的在/var/log和/var/adm下,還有/usr/adm為/var/adm的的連結.
redhat的在/var/log 和 /var/run下
下面的是sun os5.7中的日誌樣本. 此外,各種shell還會記錄使用者使用的命令歷史,它使用使用者主目錄下的檔案來記錄這些命令歷史,通常這個檔案的名字為.sh_history(ksh),.history(csh),或.bash_history(bash)等。
# ls /var/adm acct log messages.1 passwd sulog vold.log aculog messages messages.2 sa utmp wtmp lastlog messages.0 messages.3 spellhist utmpx wtmpx # ls /var/log authlog syslog syslog.1 syslog.3sysidconfig.log
ftp.pids-allinetd.pid news syslogd.pid
一般我們要清除的日誌有
lastlog utmp(utmpx) wtmp(wtmpx) messages syslog sulog 一般把以上說的日誌給擦一下,就可以了.:) 下面我來說說上面這些我們要清除的日誌的相關資料和清除方法.更詳細的資料和其他的日誌請你檢視相關資料. 上面已經對日誌的功能做了簡單陳述,那麼這些日誌檔案到底記錄的是什麼呢?follow me 下面是一個例子: SunOS 5.7 login: gao Password: No directory! Logging in with home=/ Last login: Sun Feb 4 22:18:25 from 219.31.36.7 Sun Microsystems Inc. SunOS 5.7 Generic October 1998 $ 然後註冊程式用新的登陸時間和TTY資訊更新lastlog檔案,而且該程式帶更新utmp wtmp.檔案. shell記錄: .sh_history(ksh),.history(csh),或.bash_history(bash)等,是shell執行時的歷史記錄.記錄使用者執行的命令.它一般存在於使用者的主目錄.別忘了去根目錄看看. 1.日誌都是一些文字形式的檔案.最笨的方法是用文字編輯器來編輯日誌檔案.刪除相關的記錄.來達到擦拭腳印和隱藏自己的效果. 比如用vi等 但這樣做是很笨的.太麻煩,工作量太大. 2.用rm -f 來刪掉日誌.比如rm -f /usr/adm/lastlog 這樣做是很蠢的. 更容易被管理員發現有人入侵.但是,相對來說自己還是保護好了.:) 可以用在一些不太重要的機器上. 3.用>定向符清除. 比如: cat > /usr/log/lastlog ->這裡輸入你要的寫的東西.最好偽裝得像一些,也可以不輸入哦.:) ^d ->這裡的^d是按鍵 ctrl + d. # . 4.當然最好的是用日誌清除工具. 輸入幾個命令讓程式幫你擦:) a.常見的日誌清除工具. 下面介紹一個比較好的日誌清除器.:) 他完全可以清除 lastlog utmp utmpx wtmp wtmpx 下面我們來看看.(示範工作平臺sunos 5.7) # gzip -d wipe-1.00.tgz # tar -xf wipe-1.00.tar # cd wipe-1.00 # ls -al 總數32 drwxr-xr-x 2 root root 512 2月 4 20:48 . drwxrwxrwx 6 root other 1024 2月 4 18:40 .. -rw-r--r-- 1 root root 130 1997 1月 9 INSTALL -rw-r--r-- 1 root staff 1389 1997 1月 9 Makefile -rw-r--r-- 1 root root 498 1997 1月 9 README -rw-r--r-- 1 root staff 10027 1997 1月 9 wipe.c # make Wipe v0.01 ! Usage: 'make ' where System types are: linux freebsd sunos4 solaris2 ultrix aix irix digital bsdi netbsd hpux # 我們可以看到它需要出示 系統的選項.這些選項是: linux freebsd sunos4 solaris2 ultrix aix irix digital bsdi netbsd hpux 我們要清除相關的系統日誌就必須在相同的系統下編譯. 比如我們要在redhat等linux下編譯,就應為: make linux 在freebsd下編譯就應為:make freebsd 在sunos 4下編譯,就應為: make sunos4 在sunos 5以上的系統裡編譯,就應為:make solaris2 # make solaris2 gcc -O3 -DHAVE_LASTLOG_H -DHAVE_UTMPX -o wipe wipe.c # ls -al 總數94 drwxr-xr-x 2 root root 512 2月 4 21:03 . drwxrwxrwx 6 root other 1024 2月 4 18:40 .. -rw-r--r-- 1 root root 130 1997 1月 9 INSTALL -rw-r--r-- 1 root staff 1389 1997 1月 9 Makefile -rw-r--r-- 1 root root 498 1997 1月 9 README -rwxr-xr-x 1 root other 30920 2月 4 21:03 wipe -rw-r--r-- 1 root staff 10027 1997 1月 9 wipe.c #./wipe USAGE: wipe [ uwla ] ...options... UTMP editing: Erase all usernames : wipe u [username] Erase one username on tty: wipe u [username] [tty] WTMP editing: Erase last entry for user : wipe w [username] Erase last entry on tty : wipe w [username] [tty] LASTLOG editing: Blank lastlog for user : wipe l [username] Alter lastlog entry : wipe l [username] [tty] [time] [host] Where [time] is in the format [YYMMddhhmm] ACCT editing: Erase acct entries on tty : wipe a [username] [tty] 大家可以看到編譯好的wipe的使用方法. 其中 u 選項為 utmp utmpx 日誌擦除.. w 選項為 wtmp wtmpx 日誌擦除. l 選項為 lastlog 日誌擦除. a 為/var/adm/pacct日誌擦除.(一般不用這個.:) 其中[tty]為終端號.為在有多個相同帳號同時登陸時,清除日誌的使用選項.當然是要你的終端號哦.:) 大家可以用 w 命令查終端號. 比如: # w 下午 9:15 1 user, 平均負荷: 0.00, 0.00, 0.01 使用者名稱 終端號 登入時間 閒置 JCPU PCPU 執行命令 root pts/1 下午 7:40 3 w 下面的是我在sunos 5.7上的具體的使用情況 # w 下午 9:15 1 user, 平均負荷: 0.00, 0.00, 0.01 使用者名稱 終端號 登入時間 閒置 JCPU PCPU 執行命令 root pts/1 下午 7:40 3 w # ./wipe u root Patching /var/adm/utmp .... Done. Patching /var/adm/utmpx .... Done. # w 下午 9:15 1 user, 平均負荷: 0.00, 0.00, 0.01 使用者名稱 終端號 登入時間 閒置 JCPU PCPU 執行命令 # ./wipe w gao Patching /var/adm/wtmp .... Done. Patching /var/adm/wtmpx .... Done. # ./wipe l root Patching /var/adm/lastlog .... Done. 好了. lastlog utmp utmpx wtmp wtmpx 擦完了. 當然我們不要忘了shell 記錄. # ls -al /.*history -rw------- 1 root other 456 2月 4 20:27 .sh_history # rm -f .*history # cd # pwd /home/gao # ls -al /.*history -rw------- 1 root other 456 2月 4 20:27 .sh_history # rm -f .*history ok, 算是大功告成吧