CentOS日誌的簡單介紹

在CentOS7中,系統的日誌消息由兩個服務負責處理:system-journald和rsyslog。vim

(1).常見的日誌及做用api

  /var/log目錄裏存放了一些特定於系統和服務的日誌文件,由rsyslog維護。下面介紹一些改目錄下的經常使用日誌文件及其總用安全

日誌文件 做用
/var/log/message 大多數系統日誌消息記錄都在此處。但不包括與身份驗證,電子郵件處理相關的按期做業任務等
/var/log/secure 安全和身份驗證相關的信息以及登陸失敗的日誌文件。主要ssh遠程鏈接產生的日誌。
/var/log/maillog 與郵件相關的信息日誌文件
/var/log/cron 與按期執行任務相關的日誌文件
/var/log/boot.log 與系統啓動相關的信息記錄
/var/log/dmesg 與系統啓動相關的信息記錄
/var/log/wtmp 是一個二進制文件,記錄每一個用戶的登陸次數和持續時間等信息,能夠用last命令查看其中內容
/var/log/btmp 與/var/log/wtmp相似,但記錄的是錯誤登陸系統的日誌,使用lastb命令查看其中內容。若是此文件大於1M,就須要注意是否有人在暴力破解

1)實例1:查看哪一個IP地址常常暴力破解系統用戶密碼ssh

  首先,咱們先用遠程鏈接軟件SCRT鏈接並輸錯密碼,再使用ssh命令嘗試鏈接並輸錯三次密碼,模擬暴力破解。ide

1
2
3
4
5
6
7
8
9
10
11
12
[root@xuexi ~]# ssh root@192.168.1.6
The authenticity of host  '192.168.1.6 (192.168.1.6)'  can't be established.
ECDSA key fingerprint  is  SHA256:r8TKDXZGzdWkjGnXtfb/YGwCTYViIh9PvJxjrkA4hXU.
ECDSA key fingerprint  is  MD5:99:ea:1a:2c:c3:81:de:6c:95:b2:86:c1:d0:7e:60:96.
Are you sure you want to  continue  connecting (yes/no)? yes
Warning: Permanently added  '192.168.1.6'  (ECDSA) to the list of known hosts.
root@192.168.1.6's password:
Permission denied, please  try  again.
root@192.168.1.6's password:
Permission denied, please  try  again.
root@192.168.1.6's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

  以後,咱們就可使用vim查看/var/log/secure文件了,此處演示就直接使用tail查看最後幾行。ui

1
2
3
4
5
6
7
8
9
10
11
[root@xuexi ~]# tail  / var /log/secure
Apr 14 21:43:32 xuexi sshd[65782]: pam_succeed_if(sshd:auth): requirement  "uid >= 1000"  not met  by  user  "root"
Apr 14 21:43:35 xuexi sshd[65782]: Failed password  for  root  from  192.168.1.6 port 42396 ssh2
Apr 14 21:43:38 xuexi unix_chkpwd[65785]: password check failed  for  user (root)
Apr 14 21:43:38 xuexi sshd[65782]: pam_succeed_if(sshd:auth): requirement  "uid >= 1000"  not met  by  user  "root"
Apr 14 21:43:39 xuexi sshd[65782]: Failed password  for  root  from  192.168.1.6 port 42396 ssh2
Apr 14 21:43:43 xuexi unix_chkpwd[65786]: password check failed  for  user (root)
Apr 14 21:43:43 xuexi sshd[65782]: pam_succeed_if(sshd:auth): requirement  "uid >= 1000"  not met  by  user  "root"
Apr 14 21:43:45 xuexi sshd[65782]: Failed password  for  root  from  192.168.1.6 port 42396 ssh2
Apr 14 21:43:45 xuexi sshd[65782]: Connection closed  by  192.168.1.6 port 42396 [preauth]
Apr 14 21:43:45 xuexi sshd[65782]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=xuexi  user=root

  這裏能夠注意下第二行、第五行、第八行。這三行都是時間+主機名+服務+錯誤信息的格式。經過這個格式(或者說是規律)能夠過濾出咱們想要的信息。編碼

1
2
3
4
5
6
[root@xuexi ~]# grep Failed / var /log/secure | awk  '{print $11}'  | uniq
192.168.1.4
192.168.1.6
[root@xuexi ~]# grep Failed / var /log/secure | awk  '{print $11}'  | uniq -c
       2 192.168.1.4
       3 192.168.1.6

  說明:awk '{print $11}',以空格做爲分隔符,打印第11列的數據。uniq命令用於報告或忽略文件中的重複行,-c選項表示顯示該行重複出現的次數。spa

2)使用last命令查看/var/log/wtmp的文件內容debug

  能夠直接使用last命令查看unix

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@xuexi ~]# last
xf       pts/0        :0               Sun Apr 14 21:33   still logged  in  
xf       :0           :0               Sun Apr 14 13:56   still logged  in  
reboot   system boot  3.10.0-957.10.1. Sun Apr 14 13:55 - 23:11  (09:15)   
reboot   system boot  3.10.0-957.10.1. Sun Apr 14 13:53 - 23:11  (09:17)   
xf       :0           :0               Sun Apr 14 13:49 - crash  (00:03)   
reboot   system boot  3.10.0-957.10.1. Sun Apr 14 13:47 - 23:11  (09:23)   
xf       pts/0        :0               Tue Apr  9 21:47 - 22:33  (00:46)   
xf       pts/0        :0               Tue Apr  9 21:21 - 21:45  (00:23)   
xf       :0           :0               Tue Apr  9 21:21 - 22:33  (01:12)   
reboot   system boot  3.10.0-957.10.1. Tue Apr  9 21:19 - 22:33  (01:14)   
xf       :0           :0               Fri Apr  5 22:27 - 22:29  (00:01)   
reboot   system boot  3.10.0-957.10.1. Fri Apr  5 22:26 - 22:29  (00:02)   
root     pts/0        :0               Fri Apr  5 22:03 - 22:25  (00:22)   
root     :0           :0               Fri Apr  5 22:02 - down   (00:23)   
reboot   system boot  3.10.0-862.el7.x Fri Apr  5 22:01 - 22:26  (00:24)   
reboot   system boot  3.10.0-862.el7.x Fri Apr  5 22:00 - 22:26  (00:25)   
root     :0           :0               Fri Apr  5 21:56 - 22:00  (00:03)   
root     tty2                          Tue Dec 11 21:48 - 21:48  (00:00)   
xf       pts/0        :0               Tue Dec 11 21:42 - 21:55 (115+00:13)
xf       :0           :0               Tue Dec 11 21:41 - 21:56 (115+00:14)
reboot   system boot  3.10.0-862.el7.x Tue Dec 11 21:18 - 22:00 (115+00:41)
xf       pts/0        :0               Tue Dec 11 21:04 - 21:18  (00:14)   
xf       :0           :0               Tue Dec 11 21:00 - down   (00:18)   
reboot   system boot  3.10.0-862.el7.x Tue Dec 11 20:50 - 21:18  (00:27)   
xf       :0           :0               Mon Dec 10 22:06 - 22:07  (00:00)   
reboot   system boot  3.10.0-862.el7.x Mon Dec 10 22:05 - 21:18  (23:13)   
xf       pts/0        :0               Mon Dec 10 21:34 - 22:04  (00:29)   
xf       :0           :0               Mon Dec 10 21:34 - crash  (00:30)   
reboot   system boot  3.10.0-862.el7.x Mon Dec 10 21:33 - 21:18  (23:44)   
xf       pts/0        :0               Mon Dec 10 20:59 - 21:33  (00:34)   
xf       pts/0        :0               Mon Dec 10 20:55 - 20:59  (00:03)   
xf       :0           :0               Mon Dec 10 20:54 - 21:33  (00:38)   
reboot   system boot  3.10.0-862.el7.x Mon Dec 10 20:52 - 21:33  (00:40)   
xf       :0           :0               Sun Dec  9 15:54 - 16:09  (00:15)   
reboot   system boot  3.10.0-862.el7.x Sun Dec  9 15:49 - 16:09  (00:20)   
 
wtmp begins Sun Dec  9 15:49:03 2018

  也可以使用last -f /var/log/wtmp命令查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@xuexi ~]# last -f / var /log/wtmp
xf       pts/0        :0               Sun Apr 14 21:33   still logged  in  
xf       :0           :0               Sun Apr 14 13:56   still logged  in  
reboot   system boot  3.10.0-957.10.1. Sun Apr 14 13:55 - 23:11  (09:16)   
reboot   system boot  3.10.0-957.10.1. Sun Apr 14 13:53 - 23:11  (09:18)   
xf       :0           :0               Sun Apr 14 13:49 - crash  (00:03)   
reboot   system boot  3.10.0-957.10.1. Sun Apr 14 13:47 - 23:11  (09:24)   
xf       pts/0        :0               Tue Apr  9 21:47 - 22:33  (00:46)   
xf       pts/0        :0               Tue Apr  9 21:21 - 21:45  (00:23)   
xf       :0           :0               Tue Apr  9 21:21 - 22:33  (01:12)   
reboot   system boot  3.10.0-957.10.1. Tue Apr  9 21:19 - 22:33  (01:14)   
xf       :0           :0               Fri Apr  5 22:27 - 22:29  (00:01)   
reboot   system boot  3.10.0-957.10.1. Fri Apr  5 22:26 - 22:29  (00:02)   
root     pts/0        :0               Fri Apr  5 22:03 - 22:25  (00:22)   
root     :0           :0               Fri Apr  5 22:02 - down   (00:23)   
reboot   system boot  3.10.0-862.el7.x Fri Apr  5 22:01 - 22:26  (00:24)   
reboot   system boot  3.10.0-862.el7.x Fri Apr  5 22:00 - 22:26  (00:25)   
root     :0           :0               Fri Apr  5 21:56 - 22:00  (00:03)   
root     tty2                          Tue Dec 11 21:48 - 21:48  (00:00)   
xf       pts/0        :0               Tue Dec 11 21:42 - 21:55 (115+00:13)
xf       :0           :0               Tue Dec 11 21:41 - 21:56 (115+00:14)
reboot   system boot  3.10.0-862.el7.x Tue Dec 11 21:18 - 22:00 (115+00:41)
xf       pts/0        :0               Tue Dec 11 21:04 - 21:18  (00:14)   
xf       :0           :0               Tue Dec 11 21:00 - down   (00:18)   
reboot   system boot  3.10.0-862.el7.x Tue Dec 11 20:50 - 21:18  (00:27)   
xf       :0           :0               Mon Dec 10 22:06 - 22:07  (00:00)   
reboot   system boot  3.10.0-862.el7.x Mon Dec 10 22:05 - 21:18  (23:13)   
xf       pts/0        :0               Mon Dec 10 21:34 - 22:04  (00:29)   
xf       :0           :0               Mon Dec 10 21:34 - crash  (00:30)   
reboot   system boot  3.10.0-862.el7.x Mon Dec 10 21:33 - 21:18  (23:44)   
xf       pts/0        :0               Mon Dec 10 20:59 - 21:33  (00:34)   
xf       pts/0        :0               Mon Dec 10 20:55 - 20:59  (00:03)   
xf       :0           :0               Mon Dec 10 20:54 - 21:33  (00:38)   
reboot   system boot  3.10.0-862.el7.x Mon Dec 10 20:52 - 21:33  (00:40)   
xf       :0           :0               Sun Dec  9 15:54 - 16:09  (00:15)   
reboot   system boot  3.10.0-862.el7.x Sun Dec  9 15:49 - 16:09  (00:20)   
 
wtmp begins Sun Dec  9 15:49:03 2018

3)使用lastb查看/var/log/btmp文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@xuexi ~]# lastb
root     ssh:notty    xuexi            Sun Apr 14 21:43 - 21:43  (00:00)   
root     ssh:notty    xuexi            Sun Apr 14 21:43 - 21:43  (00:00)   
root     ssh:notty    xuexi            Sun Apr 14 21:43 - 21:43  (00:00)   
root     ssh:notty    pc                Sun Apr 14 21:41 - 21:41  (00:00)   
root     ssh:notty    pc                Sun Apr 14 21:41 - 21:41  (00:00)   
 
btmp begins Sun Apr 14 21:41:08 2019
[root@xuexi ~]# lastb | uniq -c
       3 root     ssh:notty    xuexi            Sun Apr 14 21:43 - 21:43  (00:00)   
       2 root     ssh:notty    pc            Sun Apr 14 21:41 - 21:41  (00:00)   
       1
       1 btmp begins Sun Apr 14 21:41:08 2019

  

  發現問題後,使用命令將其IP地址加入規則,阻止其繼續暴力破解。

  CentOS6使用以下命令,臨時添加到防火牆規則中。若是想永久添加,須要在以後追加一條命令service iptables save

1
iptables -A INPUT -i eth0 -s 192.168.128.137 -j DROP   //-A INPUT是追加到INPUT鏈中,-j DROP是拋棄全部包

  而CentOS7使用以下命令:

1
2
3
4
[root@xuexi ~]# firewall-cmd --permanent --add-rich-rule= 'rule family="ipv4" source address="192.168.128.137" drop'
success
[root@xuexi ~]# firewall-cmd --reload
success

4)清空/var/log/btmp文件

   方法一

1
[root@xuexi ~]# > / var /log/btmp

  方法二

1
2
3
[root@xuexi ~]# rm -rf / var /log/btmp
[root@xuexi ~]# touch / var /log/btmp
[root@xuexi ~]# systemctl restart rsyslog.service   //必須重啓

(2).rsyslog日誌服務

1)日誌的分類和級別

  分類:

分類 說明
daemon 後臺進程相關的信息
kern 內核產生的信息
lpr 打印系統產生的信息
authpriv 安全認證信息
cron 定時計劃任務相關的信息
mail 郵件相關的信息
syslog 日誌服務自己的信息
news 新聞系統(過期)
local0~local7 8個系統保留的類,供其餘程序使用或用戶自定義

  級別:(編碼越小,級別越高)

編碼 優先級 嚴重性
7 debug 信息對開發人員調試應用程序有用,在操做過程當中沒用
6 info 正常的操做信息,能夠收集報告,測量吞吐量等
5 notice 注意,正常但重要的事件
4 warning 警告,若是不採起措施,將會發生錯誤,例如文件系統已使用90%
3 err 錯誤,阻止某個模塊或程序的功能不能正常使用
2 crit 關鍵錯誤,已經影響到整個系統或軟件不能正常工做
1 alert 警報,須要當即修改
0 emerg 緊急,內核崩潰等嚴重信息

2)rsyslog日誌服務

  在rhel5服務名叫syslog,配置文件爲/etc/syslog.conf。到了rhel6/rhel7時,服務名叫rsyslog,配置文件是/etc/rsyslog.conf。

   咱們查看一下/etc/syslog.conf配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@xuexi ~]# grep -vE  "^$|^#"  /etc/rsyslog.conf
$ModLoad imuxsock # provides support  for  local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$WorkDirectory / var /lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging  on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none                / var /log/messages
authpriv.*                                              / var /log/secure
mail.*                                                  -/ var /log/maillog
cron.*                                                  / var /log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          / var /log/spooler
local7.*                                                / var /log/boot.log

  這裏涉及一個最重要的日誌輸入規則:分類.級別  存放的絕對路徑。其中級別還有單獨規則,若是.級別則是指記錄高於等於某個級別的日誌(嚴重性高於等於,編碼低於等於);若是.=級別則是指記錄等於某個級別的日誌;若是.!級別則是指除某個級別外所有記錄;若是.none則是指排除某個類別。

  如今咱們再回頭看上面的配置信息:

1
2
3
4
5
6
7
8
//全部高於等於info級別的信息,除了郵件,除了安全認證,除了定時計劃任務,都存放到/var/log/message
*.info;mail.none;authpriv.none;cron.none                / var /log/messages
authpriv.*                                              / var /log/secure
mail.*                                                  -/ var /log/maillog
cron.*                                                  / var /log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          / var /log/spooler
local7.*                                                / var /log/boot.log

  注意:-/var/log/maillog這裏的減號是因爲之前的郵件比較多,先將數據存儲到內存中,達到必定大小再所有寫入硬盤,減小I/O的消耗。若是關機不當,數據會消失。

  除了上面的配置信息外,還須要注意兩個配置信息,以下:

1
2
#$UDPServerRun 514  //去掉註釋就是容許514端口接收使用UDP協議轉發過來的日誌
#$InputTCPServerRun 514  //去掉註釋就只容許514端口接收使用TCP協議轉發過來的日誌

3)自定義日誌類型和存儲位置

  這裏須要用到local0~local7的自定義分類。咱們以sshd爲例。

  首先咱們須要使用vim打開sshd服務的配置文件,進行修改配置

1
[root@xuexi ~]# vim /etc/ssh/sshd_config

  而後找到以下位置,將其更改成咱們須要的分類local0

1
2
3
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

  修改後,以下所示

1
2
3
4
#SyslogFacility AUTH
SyslogFacility local0
#SyslogFacility AUTHPRIV
#LogLevel INFO

  保存並退出。

  接着咱們須要使用vim打開rsyslog服務的配置文件,進行修改配置

1
[root@xuexi ~]# vim /etc/rsyslog.conf

  在最後添加一行

1
local0.*        / var /log/sshd.log

  保存並退出。

  最後重啓sshd和rsyslog兩個服務

1
2
[root@xuexi ~]# systemctl restart sshd
[root@xuexi ~]# systemctl restart rsyslog.service

  注意:若是SELinux開着,請手動建立/var/log/sshd.log文件。

相關文章
相關標籤/搜索