日誌管理及日誌輪詢(切割)

日誌管理的意義

日誌對於安全來說,非常重要,他記錄了系統每天發生的各種各樣的事情,你可以通過他來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕跡。

日誌主要的功能有:審計和監測。他還可以實時的監測系統狀態,監測和追蹤侵入者等等

一般情況下我們的日誌主要放在哪裏?

[root@localhost ~]# ls /var/log/
anaconda.ifcfg.log    ConsoleKit  mysqld.log         sssd
anaconda.log          cron        ntpstats           tallylog
anaconda.program.log  cups        pm-powersave.log   tomcat6
anaconda.storage.log  dmesg       ppp                wpa_supplicant.log
anaconda.syslog       dracut.log  prelink            wtmp
anaconda.xlog         gdm         sa                 Xorg.0.log
anaconda.yum.log      httpd       samba              Xorg.9.log
audit                 lastlog     secure             yum.log
boot.log              maillog     spice-vdagent.log
btmp                  messages    spooler
[root@localhost ~]# 

常用的日誌文件:

btmp 記錄登錄失敗的信息
lastlog 記錄最近幾次登錄事件和最後一次不成功的登錄
messages 從syslog 記錄信息(有的鏈接到syslog文件)
utmp 記錄當前登錄的每一個用戶
whmp 系統登錄情況: 登入登出

登錄信息查看

last 查看登錄日誌內容

[root@localhost ~]# last
root     pts/1        192.168.148.1    Sat Sep 28 02:08   still logged in   
root     pts/0        :0.0             Sat Sep 28 02:07   still logged in   
root     pts/0        :0.0             Sat Sep 28 02:04 - 02:06  (00:02)    

清空日誌文件

[root@localhost ~]# > /var/log/wtmp 
[root@localhost ~]# last

wtmp begins Sat Sep 28 02:18:35 2019
[root@localhost ~]# 

/var/log/lastlog 查看最後登錄信息

記錄的是所有的用戶什麼時候登錄過系統

[root@localhost ~]# lastlog 
用戶名           端口     來自             最後登陸時間
root             pts/1    192.168.148.1    六 9月 28 02:08:16 +0800 2019
bin                                        **從未登錄過**
daemon                                     **從未登錄過**
adm                                        **從未登錄過**
lp                                         **從未登錄過**

/var/log/btmp 用戶登錄系統的錯誤信息

[root@localhost ~]# lastb //查看登錄失敗的信息
root     ssh:notty    192.168.148.1    Sat Sep 28 02:26 - 02:26  (00:00)    
root     ssh:notty    192.168.148.1    Sat Sep 28 02:26 - 02:26  (00:00)    
root     ssh:notty    192.168.148.1    Sat Sep 28 02:26 - 02:26  (00:00)    

btmp begins Sat Sep 28 02:26:24 2019
[root@localhost ~]# 

備註: 巡檢 , 發現/var/log/btmp 變得很大。說明有人在對你的服務器進行暴力破解

怎麼查看一個文件的大小

[root@localhost ~]# ll -h /var/log/btmp 
-rw-------. 1 root utmp 1.2K 9月  28 02:26 /var/log/btmp


又模擬一下輸錯命令之後,查看文件大小
[root@localhost ~]# ll -h /var/log/btmp 
-rw-------. 1 root utmp 2.3K 9月  28 02:30 /var/log/btmp

日誌的記錄方式

日誌的種類:

daemon     後臺進程相關  
kern  	     內核產生的信息
lpr   	          打印系統產生的
authpriv     安全認證
cron   	      定時相關
mail 	      郵件相關
syslog  	  日誌服務本身的
news 	      新聞系統
local0~7      自定義的日誌設備

local 0->local 7 8個系統保留的類, 供其它的程序使用 /或者是用戶自定義

日誌級別: 重–輕

0. emery 緊急, 內核崩潰等嚴重的信息
1. alert 警報: 需要立刻修改的信息
2. crit 關鍵的錯誤,已經影響到了整個的系統或者軟件不能正常工作的信息
3. err 錯誤,阻止某個模塊或者程序的功能不能正常使用
4. warning 警告
5. notice 注意,正常但是重要的信息
6. info 正常的信息,一般的信息,最常用的
7. debug 調試級的信息,日誌信息最多

日誌服務:

rhel5
服務名稱: syslog
配置文件: /etc/syslog.conf

RHEL6-RHEL7
服務名稱: rsyslog

配置文件: /etc/syslog.conf

打開文件 /etc/syslog.conf

配置文件:

MODULES 日誌的模塊

$ModLoad imuxsock 支持本地系統日誌的模塊
$ModLoad imklog 支持內核日誌的模塊
$ModLoad immark 支持日誌標記
$ModLoad imudp 支持upd協議
$UDPServerRun 514 允許514端口接收使用udp和tcp協議轉發過來的日誌
$ModLoad imtcp 支持tcp協議
[root@localhost ~]# vim /etc/rsyslog.conf 
#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console
//  內核類型的所有級別的日誌  存放到  ——> /dev/consloe

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
// 所有類型的級別是info以上,除了mail,authpiv, cron,

mail , authpiv ,cron放在哪裏

authpriv.* 認證的信息–>存放–> /var/log/secure
mail.* 郵件相關的信息->存放–> -/var/log/maillog
cron.* 計劃任務相關的信息–>存放–> /var/log/cron
local7.* 開機時顯示的信息–>存放–> /var/log/boot.log

日誌輸入的規則:

-info 高於info級別的信息全部都記錄到某個文件裏去
.= 級別 僅記錄等於某個級別的日誌
舉例: .=info 只記錄 info 級別的日誌
.! 級別 除了某個級別意外,記錄所有級別信息
舉例: .!err 除了err級別,別的級別都記錄
.none 指的是排除某個類別

實戰案例:

自定義ssh 服務的日誌

1) 編輯rsyslog的配置文件
# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

local0.*                                                /var/log/sshd.log

# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding


2) 定義ssh服務的日誌級別
[root@192 ~]# vim /etc/ssh/sshd_config 
添加
#       ForceCommand cvs server
SyslogFacility local0


3) 啓動rsyslog和sshd服務
[root@192 ~]# systemctl restart rsyslog
[root@192 ~]# systemctl restart sshd
[root@192 ~]# 

4)查看日誌
[root@192 log]# cd /var/log/
[root@192 log]# more sshd.log
[root@192 log]# more sshd.log 
Feb 28 15:29:08 centos7-xinsz08 sshd[22837]: Server listening on 0.0.0.0 port 2
2.
Feb 28 15:29:08 centos7-xinsz08 sshd[22837]: Server listening on :: port 22.
備註: 對應信息: 時間 - 主機-服務-進程ID -監聽的相關信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章