文章目錄
日誌管理的意義
日誌對於安全來說,非常重要,他記錄了系統每天發生的各種各樣的事情,你可以通過他來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕跡。
日誌主要的功能有:審計和監測。他還可以實時的監測系統狀態,監測和追蹤侵入者等等
一般情況下我們的日誌主要放在哪裏?
[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 -監聽的相關信息