歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux系統中的日志管理

日志對於安全來說,非常重要,它記錄了系統每天發生的各種各樣的事情,你可以通過它來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕跡。
日志主要的功能有:審計和監測。它還可以實時的監測系統狀態,監測和追蹤侵入者等等
那麼日志存放的位置在哪裡呢?
我們的 /var/log 是存放日志的位置
這裡寫圖片描述

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

登錄信息的查看
我們也可以通過last 命令查看登錄日志內容
哪個用戶在哪個時間通過哪種方式登錄系統的情況

/var/log/lastlog  #最後登錄信息
lastlog  #記錄所有的用戶什麼時候登錄過系統
/var/log/btmp  # 用戶登錄系統的錯誤信息
lastb  查看
# 如果說你發現你的btmp文件變得很大,說明有很大的可能是有人在暴力破解你的主機

lastlog 和 last的區別:
last 查看IP
lastlog 查看後門的賬號

日志的記錄方式
日志的種類:
daemon 後台進程相關
kern 內核產生的信息
lpr 打印系統產生的
authpriv 安全認證
cron 定時相關
mail 郵件相關
syslog 日志服務本身的
news 新聞系統
local 0local 7 8個系統保留的類, 供其它的程序使用 /或者是用戶自定義
日志的級別: 輕重
debug 排錯的信息
info 正常的信息
notice 注意
warn 警告
err 錯誤
crit 關鍵的錯誤
alert 警報
energ 緊急

日志服務
舊版本 rhel5

服務名稱  syslog 
配置文件  /etc/syslog.conf
rhel6-7
服務名稱  rsyslog
配置文件  /etc/rsyslog.conf

#編輯配置文件  vim /etc/rsyslog.conf
#kern.*    #內核類型的所有級別日志 存放到        /dev/console
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
    所有的類別級別是info以上 除了mail,authpriv,cron (產生的日志太多,不易於查看) 
類別.級別 
authpriv.*      認證的信息存放                  /var/log/secure
mail.*         郵件相關的信息 存放             -/var/log/maillog
cron.*         計劃任相關的信息 存放            /var/log/cron
local7.*        開機時顯示的信息存放-->             /var/log/boot.log
注:
    “- ”號: 郵件的信息比較多,現將數據存儲到內存,達到一定大小,全部寫到硬盤.有利於減少I/O進程的開銷
數據存儲在內存,如果關機不當數據消失

日志輸入的規則
.info 高於info級別的信息全部記錄到某個文件
=級別 僅記錄等於某個級別的日志
例:.=info 只記錄info級別的日志
! 級別 除了某個級別意外,記錄所有的級別信息
例.!err 除了err外記錄所有
none 指的是排除某個類別

自定義ssh服務的日志

#編輯rsyslog配置文件
vi /etc/rsyslog.conf
輸入 local 0 .*     /var/log/sshd.log   #日志的保存路徑

#定義ssh服務的日志級別
#編輯sshd服務的主配置文件
vim /etc/ssh/sshd_config

這裡寫圖片描述

#先重啟rsyslog服務(生效配置)
 systemctl restart rsyslog
#再重啟sshd服務.生成日志
 systemctl restart sshd
#查看一下有沒有對應的日志產生

日志的回滾
在linux下的日志會定期進行回滾,
控制系統執行日志回滾操作的配置文件主要有:
/etc/logrotate.conf 以及 /etc/logrotate.d/ 這個目錄下的明細配置文件。
日志是很大的,如果讓日志無限制的記錄下去 是一件很可怕的事情,日積月累就有幾百兆占用磁盤的空間,
如果你要找出某一條可用信息海底撈針
日志回滾原理:
當日志達到某個特定的大小,我們將日志分類,之前的日志保留一個備份,再產生的日志創建一個同名的文件保存新的日志.

vim /etc/logrotate.conf 

# see "man logrotate" for details
# 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目錄下看看

# uncomment this if you want your log files compressed
#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日志的基礎上,實現日志回滾

vim /etc/logrotate.conf


/var/log/sshd.log{
    missingok  #  如果日志文件不存在,繼續處理下一個文件而不產生報錯信息。
    monthly
    create 0600 root utmp #root用戶,utmp組創建
    minsize 1M
    rotate 1
}

配置遠程日志服務器->實現日志集中的管理
准備兩台服務器
server端配置

# 編輯 /etc/rsyslog.conf

#Provides TCP syslog reception  

$ModLoad imtcp   #開啟支持tcp的模塊
$InputTCPServerRun 514 #允許接收tcp 514的端口傳來的日志

#UDP速度快不保證數據的完整
#   TCP可靠.完整
#   使用TCP的方式,去除#號注釋
#  重新啟動 rsyslog
systemctl  restart  rsyslog 

查看服務監聽的狀態

  netstat -anlput |grep 514
tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      4471/rsyslogd       
tcp        0      0 192.168.75.129:514      192.168.75.128:33801    ESTABLISHED 4471/rsyslogd       
tcp6       0      0 :::514                  :::*                    LISTEN      4471/rsyslogd       

client端配置:

vim /etc/rsyslog.conf

# Provides TCP syslog reception

#$ModLoad imtcp
#$InputTCPServerRun 514

# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514

*.* @@192.168.75.129:514   #添加此行 服務器 

. 所有類別和級別的日志
@@192.168.1.63:514 服務端的IP:端口
重啟rsyslog 服務

systemctl  restart  rsyslog 

服務端驗證:
關閉防火牆

tail -f /var/log/message  #動態查看增加內容
Copyright © Linux教程網 All Rights Reserved