在linux系統上面,系統可以記錄從開機到當前系統上面何時發生了那些事情,并將其分類,分級別寫到特定的日志文件當中,如系統自身產生的問題,用戶登錄信息,網絡數據信息等等。我們可以根據這些日志信息來解決系統方面的錯誤,網絡服務問題等等。日志對于安全來說,非常重要,它記錄了系統每天發生的各種各樣的事情,你可以通過它來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕跡。 日志主要的功能有:審計和監測。它還可以實時的監測系統狀態,監測和追蹤侵入者等等。
日志存在的位置/var/log即ls /var/log
常用的日志文件如下:
btmp 記錄denglu失敗的信息
lastlog 記錄最近幾次成功登錄的事件和最后一次不成功的登錄
messages 從syslog中記錄信息(有的鏈接到syslog文件)
utmp 記錄當前登錄的每個用戶
wtmp 系統登錄的情況:登入登出
登錄信息的查看
我們也可以通過last 命令查看登錄日志內容
哪個用戶在哪個時間通過哪種方式登錄系統的情況
1./var/log/lastlog #最后登錄信息
2.lastlog #記錄所有的用戶什么時候登錄過系統
3./var/log/btmp # 用戶登錄系統的錯誤信息
lastb 查看
4./var/log/wtmp # 用戶登錄系統的成功信息
5.# 如果說你發現你的btmp文件變得很大,說明有很大的可能是有人在暴力破解你的主機
日志的記錄方式:
消息類型:auth,authpriv,security;cron,daemon,kern,lpr,mail, mark,news,syslog,user,uucp,local0~local7.
錯誤級別:(8級)debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic
動作域:file,user,console,@remote_ip
舉如上的/etc/syslog.conf文件三個例子:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
表示info級別的任何消息都發送到/var/log/messages日志文件,但郵件系統、驗證系統
和計劃任務的錯誤級別信息就除外,不發送(none表示禁止)
cron.* /var/log/cron 表示所有級別的cron信息發到/var/log/cron文件
*.emerg * 表示emerg錯誤級別(危險狀態)的所有消息類型發給所有用戶
日志輸入的規則
.info 高于info級別的信息全部記錄到某個文件
=級別 僅記錄等于某個級別的日志
例:.=info 只記錄info級別的日志
! 級別 除了某個級別意外,記錄所有的級別信息
例.!err 除了err外記錄所有
none 指的是排除某個類別
自定義ssh服務的日志:
#編輯vim /etc/rsyslog.conf
定義sshd日志的級別 vim /etc/ssh/sshd_config,重啟服務,測試結果
systemctl restart rsyslog
systemctl restart sshd
linux日志的切割存儲(回滾原理)
隨著日志文件內容的日益增加,對于后期的處理帶來非常的不便,因此就需要一種機制能夠對日志進行處理,rsyslog就提供了一個這楊一個功能組件logrotate
vim /etc/logrotate.conf
# rotate log files weekly
weekly #? 每周執行回滾
# keep 4 weeks worth of backlogs
rotate 4 #保留4個副本
# create new (empty) log files after rotating old ones
create #創建新的文件存儲數據
# use date as a suffix of the rotated file
dateext #使用日期為后綴的回滾文件 #可以去/var/log目錄下看看
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp — we’ll rotate them here
/var/log/wtmp { #指定的日志文件
monthly #每月輪轉一次
create 0664 root utmp
minsize 1M #日志文件必須大于1M才會去輪換(回滾)
rotate 1 #保存一個輪換日志
}
/var/log/btmp {
missingok # 如果日志文件不存在,繼續處理下一個文件而不產生報錯信息。
monthly
create 0600 root utmp #設置utmp 這個日志文件的權限,屬主,屬組
rotate 1
}
我們跟著上面個例子繼續據ssh日志來完成日志的切割存儲
準備兩臺裝置server client
首先服務端
重啟及查看端口
m在客戶端client
重啟服務及測試
tail -f /var/log/message 動態查看增加內容:
原創文章,作者:gd1479,如若轉載,請注明出處:http://www.www58058.com/84718