概述
保證系統安全的一項很重要的工作就是定期查看日志文件。系統管理員一般比較忙,沒有時間定期完成這項工作,這樣就可能帶來一些安全問題。
下面是Logcheck概括性的介紹:
審核和記錄系統的事件是非常重要的。特別是當你的計算機連接到Internet上之後,系統管理員如果對“異常”的事件保持警覺,就能防止系統被入侵。在Unix系統中如果僅僅把系統事件作為日志記錄下來,而不去查看,還是無濟於事。Logchek可以自動地檢查日志文件,先把正常的日志信息剔除掉,把一些有問題的日志保留下來,然後把這些信息email給系統管理員。Logcheck被設計成自動運行,定期檢查日志文件以發現違反安全規則以及異常的活動。Logcheck用logtail程序記住上次已經讀過的日志文件的位置,然後從這個位置開始處理新的日志信息。
注意事項
下面所有的命令都是Unix兼容的命令。
源路徑都為“/var/tmp”(當然在實際情況中也可以用其它路徑)。
安裝在RedHat Linux 6.1和6.2下測試通過。
要用“root”用戶進行安裝。
Logcheck的版本是1.1.1。
軟件包的來源
Logcheck的主頁:http://www.psionic.com/abacus/logcheck/。
下載:logcheck-1.1.1.tar.gz。
安裝軟件包需要注意的問題
最好在編譯前和編譯後都做一張系統中所有文件的列表,然後用“diff”命令去比較它們,找出其中的差別並知道到底把軟件安裝在哪裡。只要簡單地在編譯之前運行一下命令“find /* >Logcheck1”,在編譯和安裝完軟件之後運行命令“find /* > Logcheck2”,最後用命令“diff Logcheck1 Logcheck2 > Logcheck-Installed”找出變化。
解壓軟件包
把軟件包(tar.gz)解壓:
[root@deep /]# cp logcheck-version.tar.gz /var/tmp/
[root@deep /]# cd /var/tmp
[root@deep tmp]# tar xzpf logcheck-version.tar.gz
編譯和優化
必須修改“Makefile”文件,設置Logcheck的安裝路徑、編譯標記,還要根據你的系統進行優化。必須根據RedHat的文件系統結構來修改“Makefile”文件,並且在“PATH”環境變量的設定的路徑中安裝Logcheck的腳本文件。
第一步
轉到Logcheck所在的目錄。
編輯“Makefile”文件(vi Makefile)並改變下面這些行:
CC = cc
改為:
CC = egcs
CFLAGS = -O
改為:
CFLAGS = -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions
INSTALLDIR = /usr/local/etc
改為:
INSTALLDIR = /etc/logcheck
INSTALLDIR_BIN = /usr/local/bin
改為:
INSTALLDIR_BIN = /usr/bin
INSTALLDIR_SH = /usr/local/etc
改為:
INSTALLDIR_SH = /usr/bin
TMPDIR = /usr/local/etc/tmp
改為:
TMPDIR = /etc/logcheck/tmp
上面這些修改是為了把“Makefile”配置為使用“egcs”編譯器,使用適應於我們系統的編譯優化標記,並且把Logcheck的安裝目錄設置成遵循RedHat的文件系統結構。
第二步
編輯“Makefile”文件(vi +67 Makefile)改變下面這些行:
@if [ ! -d $(TMPDIR) ]; then /bin/mkdir $(TMPDIR); fi
改為:
@if [ ! -d $(TMPDIR) ]; then /bin/mkdir -p $(TMPDIR); fi
加上“-p”參數是讓安裝程序根據需要自動創建目錄。
第三步
安裝Logcheck:
[root@deep logcheck-1.1.1]# make linux
上面的命令為Linux操作系統配置Logcheck,然後把源文件編譯成二進制文件,最後把二進制文件和配置文件拷貝到相應的目錄。
清除不必要的文件
用下面的命令刪除不必要的文件:
[root@deep /]# cd /var/tmp
[root@deep tmp]# rm -rf logcheck-version/ logcheck-version_tar.gz
“rm”命令刪除所有編譯和安裝Logcheck所需要的源程序,並且把Logcheck軟件的壓縮包刪除掉。
配置“/usr/bin/logcheck.sh”文件
因為我們不使用“/usr/local/etc”這個路徑,所以必須改變“logcheck.hacking”、“logcheck.violations”、“logcheck.ignore”、“logcheck.violations.ignore”和“logtail”中所有的路徑到要改變。Logcheck的腳本文件“/usr/bin/logcheck.sh”允許設置一些選項,可以改變路徑和程序的運行。這些都有詳細的注釋,也很簡單。
第一步
編輯“logcheck.sh”文件(vi /usr/bin/logcheck.sh)並且改變:
LOGTAIL=/usr/local/bin/logtail
改為:
LOGTAIL=/usr/bin/logtail
TMPDIR=/usr/local/etc/tmp
改為:
TMPDIR=/etc/logcheck/tmp
HACKING_FILE=/usr/local/etc/logcheck.hacking
改為:
HACKING_FILE=/etc/logcheck/logcheck.hacking
VIOLATIONS_FILE=/usr/local/etc/logcheck.violations
改為:
VIOLATIONS_FILE=/etc/logcheck/logcheck.violations
VIOLATIONS_IGNORE_FILE=/usr/local/etc/logcheck.violations.ignore
改為:
VIOLATIONS_IGNORE_FILE=/etc/logcheck/logcheck.violations.ignore
IGNORE_FILE=/usr/local/etc/logcheck.ignore
改為:
IGNORE_FILE=/etc/logcheck/logcheck.ignore
第二步
把Logcheck放到crontab中,使之成為cronjob:
安裝完Logcheck之後,必須以“root”權限編輯本地的“crontab”文件,並把Logcheck設置成每小時運行一次(當然你也可以把時間設長一點或者設短一點)。
l 用下面的命令編輯crontab:
[root@deep /]# crontab -e
# Hourly check Log files for security violations and unusual activity.
00 * * * * /usr/bin/logcheck.sh
注意:如果沒有必要的話,Logcheck是不會用email報告任何東西的。
安裝到系統中的文件
> /etc/logcheck
> /usr/bin/logcheck.sh
> /etc/logcheck/tmp
> /etc/logcheck/logcheck.hacking
> /etc/logcheck/logcheck.violations
> /etc/logcheck/logcheck.violations.ignore
> /etc/logcheck/logcheck.ignore
> /usr/bin/logtail
> /var/log/messages.offset
> /var/log/secure.offset
> /var/log/maillog.offset
版權說明
這篇文章翻譯和改編自Gerhard Mourani的《Securing and Optimizing Linux: RedHat Edition》,原文及其版權協議請參考:www.openna.com。