概述
確保系統安全的一項很重要的工作就是定期查看日誌文檔。系統管理員一般比較忙,沒有時間定期完成這項工作,這樣就可能帶來一些安全問題。
審覈和記錄系統的事件是很重要的。特別是當您的電腦連接到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。
確保系統安全的一項很重要的工作就是定期查看日誌文檔。系統管理員一般比較忙,沒有時間定期完成這項工作,這樣就可能帶來一些安全問題。
審覈和記錄系統的事件是很重要的。特別是當您的電腦連接到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。