中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

入侵檢測(cè)系統(tǒng)之日志檢測(cè)詳解

2017-11-30    來(lái)源:

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

  1.概述
    
  入侵檢測(cè)(Intrusion Detection),顧名思義,便是對(duì)入侵行為的發(fā)覺。它通過(guò)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)或計(jì)算機(jī)系統(tǒng)中的若干關(guān)鍵點(diǎn)收集信息并對(duì)其進(jìn)行分析,從中發(fā)現(xiàn)網(wǎng)絡(luò)或系統(tǒng)中是否有違反安全策略的行為和被攻擊的跡象。進(jìn)行入侵檢測(cè)的軟件與硬件的組合便是入侵檢測(cè)系統(tǒng)(Intrusion Detection System,簡(jiǎn)稱IDS)。與其他安全產(chǎn)品不同的是,入侵檢測(cè)系統(tǒng)需要更多的智能,它必須可以將得到的數(shù)據(jù)進(jìn)行分析,并得出有用的結(jié)果。一個(gè)合格的入侵檢測(cè)系統(tǒng)能大大的簡(jiǎn)化管理員的工作,保證網(wǎng)絡(luò)安全的運(yùn)行。

  日志是使系統(tǒng)順利運(yùn)行的重要保障。它會(huì)告訴我們系統(tǒng)發(fā)生了什么和什么沒有發(fā)生。然而,由于日志記錄增加得太快了,鋪天蓋地的日志使系統(tǒng)管理員茫然無(wú)措,最終使日志成為浪費(fèi)大量磁盤空間的垃圾。日志具有無(wú)可替代的價(jià)值,但不幸的是它們經(jīng)常被忽略,因?yàn)橄到y(tǒng)管理員在并不充裕的時(shí)間里難以查看大量的信息。標(biāo)準(zhǔn)的日志功能不能自動(dòng)過(guò)濾和檢查日志記錄,并提供系統(tǒng)管理員所需要的信息。

  對(duì)于入侵者來(lái)說(shuō),要做的第一件事就是清除入侵的痕跡。這需要入侵者獲得root權(quán)限,而一旦系統(tǒng)日志被修改,就無(wú)法追查到攻擊的情況。因此,好的系統(tǒng)管理員應(yīng)該建立日志文件檢測(cè)。有很多工具可以實(shí)現(xiàn)日志檢測(cè)的功能,其中就有Logcheck和Swatch。本文將對(duì)Logcheck和Swatch逐一進(jìn)行介紹。
  
  2.日志文件系統(tǒng)

  審計(jì)和日志功能對(duì)于系統(tǒng)來(lái)說(shuō)是非常重要的,可以把感興趣的操作都記錄下來(lái),供分析和檢查。UNIX采用了syslog工具來(lái)實(shí)現(xiàn)此功能,如果配置正確的話,所有在主機(jī)上發(fā)生的事情都會(huì)被記錄下來(lái),不管是好的還是壞的。

  Syslog已被許多日志系統(tǒng)采納,它用在許多保護(hù)措施中--任何程序都可以通過(guò)syslog記錄事件。Syslog可以記錄系統(tǒng)事件,可以寫到一個(gè)文件或設(shè)備中,或給用戶發(fā)送一個(gè)信息。它能記錄本地事件或通過(guò)網(wǎng)絡(luò)紀(jì)錄另一個(gè)主機(jī)上的事件。

  Syslog依據(jù)兩個(gè)重要的文件:/sbin/syslogd(守護(hù)進(jìn)程)和/etc/syslog.conf配置文件,習(xí)慣上,多數(shù)syslog信息被寫到/var/adm或/var/log目錄下的信息文件中(messages.*)。一個(gè)典型的syslog紀(jì)錄包括生成程序的名字和一個(gè)文本信息。它還包括一個(gè)設(shè)備和一個(gè)行為級(jí)別(但不在日志中出現(xiàn))。

  /etc/syslog.conf的一般格式如下

  設(shè)備.行為級(jí)別 [;設(shè)備.行為級(jí)別] 記錄行為    

  設(shè)備           描述

  auth         認(rèn)證系統(tǒng):login、su、getty等,即詢問(wèn)用戶名和口令

  authpriv      同LOG_AUTH,但只登錄到所選擇的單個(gè)用戶可讀的文件中

  cron         cron守護(hù)進(jìn)程

  daemon       其他系統(tǒng)守護(hù)進(jìn)程,如routed

  kern        內(nèi)核產(chǎn)生的消息

  lpr         打印機(jī)系統(tǒng):lpr、lpd

  mail        電子郵件系統(tǒng)

  news        網(wǎng)絡(luò)新聞系統(tǒng)

  syslog       由syslogd產(chǎn)生的內(nèi)部消息

  user        隨機(jī)用戶進(jìn)程產(chǎn)生的消息

  uucp        UUCP子系統(tǒng)

  local0~local7   為本地使用保留

  行為級(jí)別       描述

  debug       包含調(diào)試的信息,通常旨在調(diào)試一個(gè)程序時(shí)使用

  info        情報(bào)信息

  notice       不是錯(cuò)誤情況,但是可能需要處理

  warn(warning)   警告信息

  err(error)     錯(cuò)誤信息

  crit        重要情況,如硬盤錯(cuò)誤

  alert        應(yīng)該被立即改正的問(wèn)題,如系統(tǒng)數(shù)據(jù)庫(kù)破壞

  emerg(panic)    緊急情況

  記錄行為(舉例)    描述

  /dev/console     發(fā)送消息到控制臺(tái)

  /var/adm/messages  把消息寫到文件/var/adm/messages

  @loghost      把消息發(fā)到其它的日志記錄服務(wù)器

  fred,user1      傳送消息給用戶

  *         傳送消息給所有的在線用戶

  

  有個(gè)小命令logger為syslog系統(tǒng)日志文件提供一個(gè)shell命令接口,使用戶能創(chuàng)建日志文件中的條目。用法:logger 例如:logger This is a test!  

  它將產(chǎn)生一個(gè)如下的syslog紀(jì)錄:Apr 26 11:22:34 only_you: This is a test!

  3.Logcheck

  3.1 logcheck介紹

  Logcheck是一軟件包,用來(lái)實(shí)現(xiàn)自動(dòng)檢查日志文件,以發(fā)現(xiàn)安全入侵和不正常的活動(dòng)。Logcheck用logtail程序來(lái)記錄讀到的日志文件的位置,下一次運(yùn)行的時(shí)候從記錄下的位置開始處理新的信息。所有的源代碼都是公開的,實(shí)現(xiàn)方法也非常簡(jiǎn)單。

  Logcheck SHELL腳本和logtail.c程序用關(guān)鍵字查找的方法進(jìn)行日志檢測(cè)。在這兒提到的關(guān)鍵字就是指在日志文件中出現(xiàn)的關(guān)鍵字,會(huì)觸發(fā)向系統(tǒng)管理員發(fā)的報(bào)警信息。Logcheck的配置文件自帶了缺省的關(guān)鍵字,適用于大多數(shù)的*inx系統(tǒng)。但是最好還是自己檢查一下配置文件,看看自帶的關(guān)鍵字是否符合自己的需要。

  Logcheck腳本是簡(jiǎn)單的SHELL程序,logtail.c程序只調(diào)用了標(biāo)準(zhǔn)的ANSI C函數(shù)。Logcheck要在cron守護(hù)進(jìn)程中配置,至少要每小時(shí)運(yùn)行一次。腳本用簡(jiǎn)單的grep命令來(lái)從日志文件檢查不正常的活動(dòng),如果發(fā)現(xiàn)了就發(fā)MAIL給管理員。如果沒有發(fā)現(xiàn)異常活動(dòng),就不會(huì)收到MAIL。

  3.2 安裝和配置logcheck

  3.2.1 下載Logcheck

  下載網(wǎng)址 下載后放在/backup目錄

  3.2.2 安裝

  以root用戶身份登錄,

  [root@only_you /root]# tar zxvf /backup/logcheck-1.1.1.tar.gz

  [root@only_you /root]# cd logcheck-1.1.1

  [root@only_you logcheck-1.1.1] make linux file://在Linux平臺(tái)下使用

  make install SYSTYPE=linux file://缺省安裝目錄是/usr/local/etc

  make[1]: Entering directory `/root/logcheck-1.1.1'

  Making linux

  cc -O -o ./src/logtail ./src/logtail.c

  Creating temp directory /usr/local/etc/tmp file://在/usr/local/etc下創(chuàng)建目錄tmp

  Setting temp directory permissions

  chmod 700 /usr/local/etc/tmp

  Copying files

  cp ./systems/linux/logcheck.hacking /usr/local/etc file://拷貝文件到/usr/local/etc目錄

  cp ./systems/linux/logcheck.violations /usr/local/etc

  cp ./systems/linux/logcheck.violations.ignore /usr/local/etc

  cp ./systems/linux/logcheck.ignore /usr/local/etc

  cp ./systems/linux/logcheck.sh /usr/local/etc

  cp ./src/logtail /usr/local/bin file://把logtail程序拷貝到/usr/local/bin目錄

  Setting permissions

  chmod 700 /usr/local/etc/logcheck.sh file://logcheck的腳本

  chmod 700 /usr/local/bin/logtail file://修改文件訪問(wèn)權(quán)限,確認(rèn)只有root用戶才能操作

  chmod 600 /usr/local/etc/logcheck.violations.ignore file://不同的配置文件

  chmod 600 /usr/local/etc/logcheck.violations

  chmod 600 /usr/local/etc/logcheck.hacking

  3.2.3
  logcheck.sh 主腳本文件?刂扑械奶幚磉^(guò)程,用grep命令檢查日志文件,發(fā)現(xiàn)問(wèn)題報(bào)告系統(tǒng)管理員。由cron定時(shí)啟動(dòng)

  logtail 記錄日志文件上次處理到的位置。被logcheck程序調(diào)用,避免重復(fù)處理已處理過(guò)的日志文件。所有的日志文件都由此程序處理,在同一目錄下會(huì)產(chǎn)生文件######.offset,其中######是檢查的日志文件名。文件中記錄了logtail開始處理的偏移量,如果刪除掉,則從文件開始處進(jìn)行處理。Logcheck跟蹤日志文件的inode號(hào)和文件大小,如果inode號(hào)發(fā)生變化,或者是文件大小比上次運(yùn)行時(shí)的小, logtail會(huì)重置偏移量,處理整個(gè)文件

  Logcheck.hacking 文件中包含了系統(tǒng)受到攻擊時(shí)的關(guān)鍵字。這個(gè)文件的關(guān)鍵字比較稀少,除非能知道某種特定的攻擊方式的特征。缺省的關(guān)鍵字是ISS(Internet Security Scanner)攻擊產(chǎn)生的,或者是sendmail中的地址欄里的非法語(yǔ)法。在日志文件中找到了關(guān)鍵字就會(huì)給管理員發(fā)信。

  logcheck.violations 文件中包含了產(chǎn)生否定或拒絕信息的系統(tǒng)事件。如denied,refused等。
  logcheck.violations.ignore 文件中包含了要對(duì)logcheck.violations進(jìn)行反向查找的關(guān)鍵字。

  3.2.4 配置

  為了使logcheck運(yùn)行正常,先要對(duì)syslog.conf進(jìn)行配置,你應(yīng)該根據(jù)自己的需要進(jìn)行配置,下面給出的只是一個(gè)例子

  把下面的內(nèi)容加到/etc/syslog.conf中

  #記錄mail,news以外的消息

  *.*;mail.none;news.none -/var/log/messages

  #記錄認(rèn)證請(qǐng)求

  auth.*;authpriv.* /var/log/authlog

  #記錄所有的內(nèi)核消息

  kern.* /var/log/kernlog

  #記錄警告和錯(cuò)誤消息

  *.warn;*.err /var/log/syslog

  這四個(gè)文件/var/log/messages,/var/log/authlog,/var/log/kernlog,/var/log/syslog也就是logcheck要檢查的日志文件

  重起syslog,[root@only_you]#/etc/rc.d/init.d/syslog restart  

  用編輯器(vi等)打開文件/usr/local/etc/logcheck.sh,在其中會(huì)找到下面的內(nèi)容

  # Linux Red Hat Version 3.x, 4.x

  $LOGTAIL /var/log/messages > $TMPDIR/check.$

  $LOGTAIL /var/log/secure >> $TMPDIR/check.$

  $LOGTAIL /var/log/maillog >> $TMPDIR/check.$

  這是logcheck自帶的內(nèi)容,也就是logcheck要檢查的日志文件,把它該為下面的內(nèi)容,使之于syslog.conf的內(nèi)容相一致:(應(yīng)該根據(jù)你配置的syslog.conf進(jìn)行修改)

  $LOGTAIL /var/log/messages > $TMPDIR/check.$

  $LOGTAIL /var/log/authlog >> $TMPDIR/check.$

  $LOGTAIL /var/log/kernlog >> $TMPDIR/check.$

  $LOGTAIL /var/log/syslog >> $TMPDIR/check.$

  還可以找到一行為 SYSADMIN=root,指的是發(fā)郵件時(shí)的收信人,缺省為root@localhost,本機(jī)的root用戶,如果機(jī)器與Internet相連,也可以指定真實(shí)的帳號(hào),我就把它改為了only_you@linuxaid.com.cn,這樣就可以隨時(shí)收到郵件了,不須用root帳號(hào)登錄到linux機(jī)器上去。

  在/etc/crontab中增加一項(xiàng),讓cron定時(shí)啟動(dòng)logcheck。關(guān)于cron的用法請(qǐng)參考相應(yīng)文檔。

  00,10,20,30,40,50 * * * * root /usr/local/etc/logcheck.sh

  每10分鐘運(yùn)行一次

  3.2.5 測(cè)試

  都配置好了,試試效果如何吧。登錄一下,故意輸錯(cuò)口令,看看有什么事情發(fā)生。10分鐘以后,我的only_you@linuxaid.com.cn信箱真的收到了一封信,信的內(nèi)容大致如下

  Apr 26 13:51:13 only_you -- wap[1068]: LOGIN ON pts/1 BY wap FROM *.*.*.*

  Apr 26 13:51:24 only_you PAM_unix[1092]: authentication failure; wap(uid=500) -> root for system-auth service

  剛裝好不長(zhǎng)時(shí)間,logcheck就報(bào)告有人試圖登錄到我的機(jī)器上來(lái),不知道這位IP為211.69.197.1的朋友想干什么?

  Security Violations

  =-=-=-=-=-=-=-=-=-=

  Apr 26 15:30:53 only_you xinetd[528]: refused connect from 211.69.197.1

  Apr 26 15:30:53 only_you xinetd[528]: refused connect from 211.69.197.1

  Unusual System Events

  =-=-=-=-=-=-=-=-=-=-=

  Apr 26 15:30:53 only_you xinetd[528]: refused connect from 211.69.197.1

  Apr 26 15:30:53 only_you xinetd[528]: refused connect from 211.69.197.1

  Apr 26 15:30:53 only_you xinetd[528]: FAIL: ftp libwrap from=211.69.197.1

  Apr 26 15:40:00 only_you CROND[1388]: (root) CMD (/usr/local/etc/logcheck.sh)

  Apr 26 15:40:00 only_you CROND[1388]: (root) CMD (/usr/local/etc/logcheck.sh)

  Apr 26 15:40:00 only_you CROND[1390]: (root) CMD ( /sbin/rmmod -as)

  Apr 26 15:40:00 only_you CROND[1390]: (root) CMD ( /sbin/rmmod -as)

  Apr 26 15:30:53 only_you xinetd[528]: FAIL: ftp libwrap from=211.69.197.1

  4.swatch  

  SWATCH (The Simple WATCHer and filer) 是Todd Atkins開發(fā)的用于實(shí)時(shí)監(jiān)視日志的PERL程序。Swatch利用指定的觸發(fā)器監(jiān)視日志記錄,當(dāng)日志記錄符合觸發(fā)器條件時(shí),swatch會(huì)按預(yù)先定義好的方式通知系統(tǒng)管理員。

  Swatch非常容易安裝。它是一個(gè)PERL程序,無(wú)需編譯。Swatch有一個(gè)很有用的安裝腳本,將所有的庫(kù)文件、手冊(cè)頁(yè)和PERL文件復(fù)制到相應(yīng)目錄下。安裝完成后,只要?jiǎng)?chuàng)建一個(gè)配置文件,就可以運(yùn)行程序了。Swatch的下載網(wǎng)址,最新的版本為3.0.1 。下載后也放到了/backup目錄。

  4.1 安裝

  以root用戶身份登錄,

  [root@only_you /root]# tar zxvf /backup/swatch-3.0.1.tar.gz

  [root@only_you /root]# cd swatch-3.0.1

  現(xiàn)在的版本需要perl 5和Time::HiRes, Date::Calc,Date::Format, file::Tail.模塊,系統(tǒng)自帶的perl可能不包括,沒關(guān)系,它的安裝程序會(huì)自己到網(wǎng)上去找

  [root@only_you swatch-3.0.1]# perl Makefile.PL

  系統(tǒng)提示HiRes 1.12模塊沒有安裝,詢問(wèn)是否安裝,回答y,

  接著系統(tǒng)提示Are you ready for manual configuration? [yes]

  敲n就會(huì)自動(dòng)配置,然后它自己到網(wǎng)上去裝東西,具體在干什么我也不清楚了。裝完這個(gè)又說(shuō)缺別的東西,還是讓它自己去裝。試著執(zhí)行一下./swatch,如果沒有錯(cuò)誤信息就說(shuō)明安裝成功了。

  4.2 配置swatchrc

  swathrc文件的格式如下

  # Bad login attempts

  watchfor /INVALID REPEATED INCOMPLETE/

  echo

  bell 3

  mail=only_you@linuxaid.com.cn

  # Machine room temperature

  watchfor /WizMON/

  echo inverse

  bell

  watchfor后跟/pattern/, 其中的"pattern"代表一個(gè)swatch將要進(jìn)行搜索匹配的正則表達(dá)式,也就是我們的觸發(fā)器,下面緊跟的以“Tab”開頭的是當(dāng)表達(dá)式匹配時(shí)所要執(zhí)行的動(dòng)作,Swatch允許指定包括顯示、email、呼叫或任何指定的執(zhí)行文件。上面第一個(gè)watchfor的含義是找到/INVALID REPEATED INCOMPLETE/后把信息顯示到屏幕上,響鈴,同時(shí)向only_you@linuxaid.com.cn發(fā)MAIL。詳細(xì)的正則表達(dá)式的格式請(qǐng)參考相應(yīng)的文檔

  缺省情況下,swatch認(rèn)為swatchrc文件為~/.swatchrc,可以通過(guò)運(yùn)行時(shí)指定參數(shù)來(lái)改變,如果未找到swatchrc文件,則使用缺省的配置

  watchfor = /.*/

  echo = random

  4.3 測(cè)試

  Swatch啟動(dòng)時(shí)可以帶很多參數(shù),但使用通常如下格式啟動(dòng)它就可以了:

  /usr/local/bin/swatch -c /var/log/syslogrc -t /var/log/syslog &

  -c參數(shù)用于指定配置文件,-t參數(shù)指定實(shí)時(shí)監(jiān)視的日志文件,"&"使swatch在后臺(tái)運(yùn)行。啟動(dòng)后,swatch產(chǎn)生子進(jìn)程,因此swatch是以兩個(gè)進(jìn)程運(yùn)行的,在停止swatch時(shí)必須殺掉兩個(gè)進(jìn)程。

  -t參數(shù)是用tail Cf filename,從文件的末尾開始查找,如果想查找整個(gè)文件,則應(yīng)該使用-f filename。

  現(xiàn)在讓我們來(lái)實(shí)驗(yàn)一下,在swatch程序所在的目錄下建立swatchrc文件,內(nèi)容如下:

  watchfor = /FAILED/

  echo=random

  執(zhí)行./swatch Cc swatchrc Cf /var/log/authlog,所有登錄失敗的記錄就會(huì)顯示出來(lái),并且還用不同的顏色來(lái)顯示。

  Apr 26 17:43:34 only_you login[2344]: FAILED LOGIN 1 FROM cjm FOR dsf, Authentication failure

  Apr 27 09:55:50 only_you login[932]: FAILED LOGIN 1 FROM (null) FOR root, Authentication failure

  5.總結(jié)

  日志是很強(qiáng)大的工具,然而它的大量數(shù)據(jù)也很容易淹沒我們。如果我們沒有足夠的時(shí)間去檢查數(shù)以兆計(jì)的數(shù)據(jù)時(shí),很可能會(huì)忽略那些有用的資料。日志自動(dòng)檢測(cè)系統(tǒng)可以幫助我們解決這個(gè)問(wèn)題。這些自動(dòng)檢測(cè)系統(tǒng)將我們所需要的信息實(shí)時(shí)地通知我們。希望本文能對(duì)如何定制你自己的日志文件自動(dòng)檢測(cè)系統(tǒng)有一定的幫助。

標(biāo)簽: linux 安全 標(biāo)準(zhǔn) 代碼 電子郵件 服務(wù)器 腳本 權(quán)限 數(shù)據(jù)庫(kù) 搜索 網(wǎng)絡(luò) 網(wǎng)絡(luò)安全 問(wèn)題 選擇 用戶

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:卡巴斯基防火墻“反黑客”的設(shè)置技巧

下一篇:江民10.4病毒播報(bào):網(wǎng)游竊賊和SSDT殺手變種