[精讚] [會員登入]
376

自行撰寫syslog server建立資訊安全控管中心#3 -- 程式下載和安裝

利用PERL將syslog收攏到資料庫的程式,程式下載和安裝

此文完整連結 http://n.sfs.tw/11443

複製連結 自行撰寫syslog server建立資訊安全控管中心#3 -- 程式下載和安裝@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-07-17 12:23:21 最後編修
2017-07-17 00:48:44 By 張○○
 

此文分為四個部分

自行撰寫syslog server建立資訊安全控管中心 #1 -- 前言及syslog介紹
自行撰寫syslog server建立資訊安全控管中心 #2 -- 架構和作法
自行撰寫syslog server建立資訊安全控管中心 #3 -- 程式下載和安裝
自行撰寫syslog server建立資訊安全控管中心 #4 -- 過濾條件設定

程式下載

https://github.com/AxerZ/note_syslog

安裝

下載下來直接可執行,但此程式需要一些PERL的模組,可用CPAN安裝,必要時可以參考 [PERL] 使用CPAN安裝模組@新精讚

use IO::Socket;
use threads;
use threads::shared;
use DBI;
use Text::Iconv;
use Time::Local;
use Time::Elapse;
use Mail::Sendmail;

建立資料庫

建立資料表,請先建立資料庫並給予適合的權限(略)

$ mysql -u 您的帳號 -p -B 您的資料庫名 < logdb.sql

設定

$ vi logsrvmain.pl

# 設定聆聽的 udp 埠,多個port
my @udp_listen_port = (514, 5140, 5144, 51444);
my $DB_IP="127.0.0.1";  # 要存入資料庫的 IP
my $DB_name="logdb";  # 資料庫的名稱
my $DB_account="offline";  # 資料庫帳號
my $DB_passwd="123456";  # 資料庫密碼
# 每隔幾秒將記錄寫入記錄檔,這裡可設定任意秒數>10秒,但如果要配合 MRTG 使用,以設定300秒的因數為宜,例如60、150等。
my $log_interval=300; #log count in every 60 seconds
my $outputfile = "~/log.tmp";   # 無法辯視格式的記錄則輸出到這個檔案
my $enable_mrtg = 1;    # set to 0 關掉MRTG
# 設定記錄檔目標的目錄,這裡的目錄將來要供 syslog2mrtg.pl 程式使用,路徑最後的'/'請保留
my $mrtg_workdir = '/usr/local/www/apache22/data/diagrams/';

設定要過濾掉的syslog條件

push @filter,"ldap; program; !slapd","ldap; level; info..emerg","ftp.tcc.edu.tw; priority; info..emerg";
push @filter,"syslogd; facility; syslogd";
push @filter, "dns; (level; !info..notice) and (program; !named)", "dns; (level; !warning) and (message; !RFC)", "netflow.tcc.edu.tw; program; !sendmail" ;
push @filter, "PIX; message; !Deny%20inbound%20icmp";   #%20 means a space ' '

寄發通知信給管理者,預設會存取資料庫manager表單中的email欄位

my $enable_email ="YES";    # Set to YES if you want the administrator to catch abnormal email notification.

設定寄信的週期秒數>=10秒。
my $email_interval=1200; # interval to send notification email in second.

使用資料庫的管理者名單寄發email (此功能預設啟動,但 $enable_email 需設定為YES)
my $use_database = "YES";

寄信的條件,這裡的設定也會另外說明

push @notification, "*; level; emerg..err", "*; (facility; auth, authpriv) and (level; notice..emerg)";
push @notification, "ftp.tcc.edu.tw; level; emerg..err", "ftp.tcc.edu.tw; (facility; auth, authpriv) and (level; notice..emerg)";
push @notification, "www.tcc.edu.tw; level; emerg..err", "www.tcc.edu.tw; (facility; auth, authpriv) and (level; notice..emerg)";
push @notification, "netflow.tcc.edu.tw; level; emerg..err", "netflow.tcc.edu.tw; (facility; auth, authpriv) and (level; notice..emerg)";
push @notification, "db3; level; emerg..err", "db3; (facility; auth, authpriv) and (level; notice..emerg)";
push @notification, "ldap; level; emerg..err", "ldap; (facility; auth, authpriv) and (level; notice..emerg)";
push @notification, "163.17.40.53; level; emerg..err", "163.17.40.53; (facility; auth, authpriv) and (level; notice..emerg)";

開啟防火牆

請開啟本機防火牆以收資料(過程略),可參考 [Centos7] 新的防火牆firewalld @新精讚

執行

啟動程式只需要下達以下指令即可:

# ./logsrvmain.pl &

要結束程式則要先下達 ps -aux,再將該 process kill掉,目前暫時是這樣,未來我會再改寫

# ps -aux

root  17928  0.0  2.3 29880 24172  p1- I    日12上午   0:43.17 /usr/bin/perl -w ./logsrvmain.pl (perl5.x)

# kill -9 17928

有關過濾條件的進階設定,請參看下一單元:

[自行撰寫syslog server建立資訊安全控管中心 #4 -- 過濾條件設定]

你可能感興趣的文章

[PERL] 簡易檢查網頁記錄檔ip來源統計 利用PERL來檢查網頁記錄檔ip來源統計的簡易程式

[PERL] 位元運算 Bitwise operation PERL的位元運算整理

[PERL] 20- 檔案目錄處理 PERL寫入和讀出檔案

[PERL] 09-迴圈 perl的迴圈

[PERL] 11- 雜湊的範例 Perl 的幾個雜湊範例

[PERL] 檢查IP是否在某個網段內:matchcidr 檢查IP是否在某個網段內 matchcidr in perl

[PERL] 08-陣列 #2 --操作 更多perl陣列的操作,如拆開、黏合、取出、加入等等

自行撰寫syslog server建立資訊安全控管中心#4 -- 過濾條件設定 利用PERL將syslog收攏到資料庫的程式,過濾條件設定

[PERL] 可用中文取名的中文名函式和package 原來perl 也可以用中文當函式、類別、方法的名稱啊

[PERL] Regex 字元集(群組) 幾個Perl在regular express會用到的特殊符號notation:字元集

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

Linux shell 的date表示法 linux下SHELL中的date表示法

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。

NETCRAFT發現你的網站及作業系統 NETCRAFT可以發現你的網站及作業系統