自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 系統(tǒng)日志—Secure,Btmp,Wtmp文件詳解

系統(tǒng) Linux
只要將我們的服務器在公網(wǎng)環(huán)境公開,提供服務。就避免不了來自全球互聯(lián)網(wǎng)上的各種攻擊。大部分的攻擊都是一些泛攻擊,利用程序自動掃描并發(fā)起攻擊而已。

1、介紹

Linux系統(tǒng)提供了全方位的日志記錄。我們登錄Linux系統(tǒng)之后做的事情Linux都有相應的日志記錄。整個日志系統(tǒng)比較多。這里只介紹和登錄比較密切相關的三個日志。

secure,btmp和wtmp這三個日志文件。

2、wtmp日志

首先,介紹wtmp日志文件,該文件記錄了所有的登錄過系統(tǒng)的用戶信息。(PS:只記錄了正確登錄的用戶。密碼錯誤等在btmp文件和secure文件中)

該文件的地址路徑為:var/log/wtmp 。wtmp文件是一個二進制文件,無法通過cat或者vim 進行閱讀。需要通過命令last進行閱讀。

示例如下:

[root@iZuf /]# last -F
root pts/0 我的IP地址 Wed Nov 23 08:43:28 2022 still logged in
...
root pts/0 我的IP地址 Wed Oct 19 16:00:28 2022 - Wed Oct 19 18:16:46 2022 (02:16)
root pts/0 我的IP地址 Wed Oct 19 09:51:51 2022 - Wed Oct 19 10:42:08 2022 (00:50)
...

last 命名會默認從wtmp文件中讀取數(shù)據(jù)。所以我們可以不用添加wtmp文件路徑,但是如果使用 last -f 就需要我們主動添加wtmp路徑了。

上面的數(shù)據(jù)分別是:

  • 登錄名:root。
  • 打開的終端:pts/0
  • 訪問者IP:我的ip地址(PS:實際ip 是顯示 111,111,111,111格式的)
  • 登錄時間:Tue Nov 15 11:17:40 2022
  • 退出時間:Tue Nov 15 13:14:02 2022
  • 耗時:(01:56) 如果顯示still logged in。表示當前仍然屬于登錄狀態(tài)。

如果我們覺得日期顯示閱讀不直觀,可以通過命令last --time-format 進行日期格式化。示例如下:

[root@iZuf /]# last --time-format iso
...
root pts/0 我的IP地址 2020-08-07T17:05:19+08:00 - 2020-08-07T17:06:39+08:00 (00:01)

時間將會變成我們能夠直接閱讀的格式。(PS:+08:00 只是說明當前日期進行了時區(qū)添加,并不代表我們還需要在顯示的時間中添加8小時哦)

--time-format 后面的可選參數(shù)為:

  • notime: 不顯示時間。示例:(13:34)。只顯示登錄時長。不顯示時間段
  • short:短時間顯示。示例:Fri Nov 4 17:53 - 18:03 (00:09)
  • full:按照默認格式顯示全部時間。示例:Tue Nov 22 13:48:22 2022 - Tue Nov 22 17:23:19 2022 (03:34)
  • iso:按照iso時間格式顯示全部時間。示例:2020-08-07T17:05:19+08:00 - 2020-08-07T17:06:39+08:00 (00:01)

這個文件將會記錄全部的登錄記錄。如果中間出現(xiàn)了不屬于我們熟悉的ip登錄。那么說明賬戶密碼有泄漏?;蛘咂渌欠ǖ卿洰a(chǎn)生。

PS:-F 命令不能和--time-format 一起使用,因為它們兩者都對輸出的時間格式有影響。

3、btmp 日志

如果說wtmp是記錄登錄成功的日志。那么btmp就是記錄所有嘗試登錄,但是登錄失敗的日志。它存儲的路徑和wtmp文件在同一目錄下:/var/log/btmp

同樣btmp也是屬于二進制文件。無法通過cat或者vim 進行閱讀。需要通過命令lastb進行閱讀。

last: 閱讀的wtmp文件

lastb:閱讀的btmp文件

這兩個指令是有一個字母的區(qū)別。千萬不要弄混了

這兩個命令的 參數(shù)可以說是完全一樣??梢杂糜趌ast的也可以用于lastb。

lastb的命令參數(shù)如下:

  • -<number> :要顯示多少行
  • -a, --hostlast :在最后一列中顯示主機名
  • -d, --dns :將IP地址轉(zhuǎn)換回主機名
  • -f <file> :使用特定文件而不是/var/log/btmp
  • -F, --fulltimes :打印完整的登錄和注銷時間和日期
  • -i, --ip :以數(shù)字和點表示法顯示IP號碼
  • -n, --limit <number> :要顯示多少行
  • -R, --nohostname :不顯示主機名字段
  • -s, --since <time> :顯示指定時間之后的行 (查詢指定時間之后的記錄)
  • -t, --until <time> :顯示指定時間之前的行 (查詢指定時間之前的記錄)
  • -p, --present <time> :顯示在指定時間內(nèi)在場的賬戶
  • -w, --fullnames :顯示完整的用戶名和域名
  • -x, --system :顯示系統(tǒng)關閉條目和運行級別更改
  • --time-format <format> :顯示指定格式的時間戳 <format>: notime|short|full|iso

PS:-F 命令不能和--time-format 一起使用,因為它們兩者都對輸出的時間格式有影響。

具體使用示例:(PS:由于內(nèi)容比較多,就先顯示10條記錄了)

[root@iZuf /]# lastb -10
liu ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
sine ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
ftpUser ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
sine ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
liu ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
chenms ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
mingjian ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
liu ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
sine ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)
ftpUser ssh:notty 170.64.132.128 Wed Nov 23 07:40 - 07:40 (00:00)

格式表現(xiàn)為:

第一列顯示登錄名,第二列顯示登錄ssh方式很明顯 ssh:notty是在使用暴力破解ssh密碼。(這也是為什么Linux建議一段時間內(nèi)跟換密碼的原因,當然使用秘鑰的安全性要比密碼高不少。),第三列顯示的就是訪問者IP地址了。 之后的就是時間和耗費時長了。

示例,將時間戳進行序列化后顯示如下:

[root@iZuf /]# lastb -10 --time-format iso
liu ssh:notty 170.64.132.128 2022-11-23T07:40:24+08:00 - 2022-11-23T07:40:24+08:00 (00:00)
sine ssh:notty 170.64.132.128 2022-11-23T07:40:24+08:00 - 2022-11-23T07:40:24+08:00 (00:00)
ftpUser ssh:notty 170.64.132.128 2022-11-23T07:40:23+08:00 - 2022-11-23T07:40:23+08:00 (00:00)
sine ssh:notty 170.64.132.128 2022-11-23T07:40:23+08:00 - 2022-11-23T07:40:23+08:00 (00:00)
liu ssh:notty 170.64.132.128 2022-11-23T07:40:22+08:00 - 2022-11-23T07:40:22+08:00 (00:00)
chenms ssh:notty 170.64.132.128 2022-11-23T07:40:22+08:00 - 2022-11-23T07:40:22+08:00 (00:00)
mingjian ssh:notty 170.64.132.128 2022-11-23T07:40:22+08:00 - 2022-11-23T07:40:22+08:00 (00:00)
liu ssh:notty 170.64.132.128 2022-11-23T07:40:21+08:00 - 2022-11-23T07:40:21+08:00 (00:00)
sine ssh:notty 170.64.132.128 2022-11-23T07:40:21+08:00 - 2022-11-23T07:40:21+08:00 (00:00)
ftpUser ssh:notty 170.64.132.128 2022-11-23T07:40:21+08:00 - 2022-11-23T07:40:21+08:00 (00:00)

(1)日志時長

btmp日志由于內(nèi)容過多。它會按30天進行備份一次數(shù)據(jù)。只會備份一個月的數(shù)據(jù)。

備份文件和btmp文件存儲在同一目錄下,只是命名后面追加上備份創(chuàng)建日期而已。示例:

小技巧:在Linux系統(tǒng)中填寫路徑時按Tab將會補全,如果無法補全說明有多個候選項,我們雙擊Tab將會列出全部候選項。

[root@iZuf /]# ls var/log/btmp
btmp btmp-20221101

例如上面的結(jié)果,我們?nèi)绻碽tmp-20221101 里面的數(shù)據(jù),就需要使用:lastb -f /var/log/btmp-20221101

示例如下,查詢上個月的非法登錄的前10條記錄:

[root@iZuf /]# lastb -f /var/log/btmp-20221101 -10
sine ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
liu ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
sine ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
sine ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
wjquan ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
liu ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
zkkj ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
chenms ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
mingjian ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)
mingjian ssh:notty 143.244.141.68 Sat Oct 29 22:02 - 22:02 (00:00)

如果非法登錄的數(shù)據(jù)文件比較大,我們怎么進行查詢呢?Linux可以針對數(shù)據(jù)進行篩選

(2)統(tǒng)計ip登錄次數(shù)

惡意訪問數(shù)據(jù)過多的時候,我們通過lastb直接閱讀比較困難因為數(shù)據(jù)較大。這個時候我們就可以通過對查詢結(jié)果進行篩選。

例如:

[root@iZuf /]# lastb | awk '{ print $3}' | sort | uniq -c | sort -n
5 98.143.158.42
5368 143.244.137.83
5402 170.64.132.120
5522 170.64.132.128
6212 193.47.61.21

上述顯示結(jié)果,第一列ip地址的登錄次數(shù),第二列為ip地址。我們可以對登錄過大的ip進行封禁操作。

下面進行命令拆分介紹。在Linux中通過|符號對命令進行拆分。

上述的命令其實就是:

  • lastb : 通過lastb命令會拉取全部的非法登錄日志。
  • awk '{print $3}' :截取lastb輸出的數(shù)據(jù)中的第三列也就是ip地址。
  • sort :將ip地址進行分類。
  • uniq -c :將分類好的ip數(shù)據(jù)進行去重并計數(shù)。
  • sort -n : 將分類去重并計數(shù)的數(shù)據(jù),進行分類并且按照數(shù)值進行從小到大排序。

例如我們?nèi)绻樯弦粋€月的非法登錄次數(shù)統(tǒng)計:

[root@iZuf /]# lastb -f /var/log/btmp-20221101 | awk '{ print $3}' | sort | uniq -c | sort -n
51 157.230.21.85
4861 167.71.234.209
5038 143.244.141.68
5202 143.244.129.121
5262 167.71.226.83

PS: 如果想高效控制和防范,那么使用防火墻可以說是最佳選擇了??梢允褂冒⒗镌铺峁┑脑品阑饓ΓńY(jié)合情報的實時入侵防護、全流量可視化分析、智能化訪問控制、日志溯源分析等能力。

https://www.aliyun.com/product/cfw?source=5176.11533457&userCode=w5jkvc5z?。

4、secure 日志

相較于wtmp文件和btmp文件,secure日志就是一個文本??梢酝ㄟ^vim或者cat閱讀。也可以導出到windows環(huán)境下使用VSCode或者文本文檔等閱讀。

secure日志和wtmp和btmp文件一樣,存儲在var/log目錄下。示例如下:

[root@iZuf /]# ls /var/log/secure
secure secure-20221030 secure-20221106 secure-20221113 secure-20221120

secure文件是按照每7天備份一次的頻率,進行備份的。文檔打開后的內(nèi)容如下所示:

Nov 20 09:25:19 iZuf sshd[2322424]: error: kex_exchange_identification: banner line contains invalid characters
Nov 20 12:55:16 iZuf sshd[2323018]: error: kex_exchange_identification: Connection closed by remote host
Nov 20 12:58:27 iZuf sshd[2323024]: Invalid user amax from 170.64.132.120 port 47146
Nov 20 12:58:28 iZuf sshd[2323026]: Invalid user amax from 170.64.132.120 port 47158
Nov 20 12:58:28 iZuf sshd[2323024]: pam_unix(sshd:auth): check pass; user unknown
Nov 20 12:58:28 iZuf sshd[2323024]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=170.64.132.120
Nov 20 12:58:28 iZuf sshd[2323026]: pam_unix(sshd:auth): check pass; user unknown
Nov 20 12:58:28 iZuf sshd[2323026]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=170.64.132.120
Nov 20 12:58:28 iZuf sshd[2323028]: Invalid user amax from 170.64.132.120 port 47164
Nov 20 12:58:28 iZuf sshd[2323030]: Invalid user amax from 170.64.132.120 port 47178
Nov 20 12:58:28 iZuf sshd[2323028]: pam_unix(sshd:auth): check pass; user unknown
Nov 20 12:58:28 iZuf sshd[2323028]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=170.64.132.120
Nov 20 12:58:28 iZuf sshd[2323032]: Invalid user amax from 170.64.132.120 port 47188
Nov 20 12:58:29 iZuf sshd[2323030]: pam_unix(sshd:auth): check pass; user unknown
Nov 20 12:58:29 iZuf sshd[2323030]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=170.64.132.120
Nov 20 12:58:29 iZuf sshd[2323032]: pam_unix(sshd:auth): check pass; user unknown

相較于wtmp和btmp一個記錄成功的,一個記錄失敗的。secure日志記錄整個登錄過程的所有數(shù)據(jù),不管成功還是失敗都會進行記錄。

PS:由于secure日志屬于文檔類型的,那么登錄成功后的非法登錄它是可以比較方便的對secure文件進行篡改的。

下面簡單列一些出現(xiàn)的各種錯誤和成功日志:

  1. 訪問成功后的日志:Accepted password for root from 我的真實IP port 端口號 ssh2
  2. 指令與端口不匹配: 修改了默認的SSH端口(22) 改為其他端口了。攻擊者訪問該端口時,命令和端口服務不匹配就會出現(xiàn)下面的錯誤日志記錄。
  3. error: kex_exchange_identification: banner line contains invalid characters。
  4. ip地址為170.64.132.120 的主機嘗試破解sshd登錄:它使用了新的賬戶和密碼進行驗證。
  5. pam_unix(sshd:auth): check pass; user unknown
    pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=170.64.132.120。
  6. 提示來自于170.64.132.120 主機的端口 47146的請求,用戶名無效。不允許操作:Invalid user amax from 170.64.132.120 port 47146。
  7. 為正確用戶開啟root會話,也就是遠程登錄的命令輸入界面:pam_unix(sshd:session): session opened for user root by (uid=0)。
  8. 為用戶關閉root會話 也就是命令行輸入界面:pam_unix(sshd:session): session closed for user root。
  9. 來自用戶名jason的登錄,密碼和用戶驗證失敗:Failed password for invalid user jason from 170.64.132.128 port 59676 ssh2。

等等還有很多的命令日志。

只要我們的服務器開啟了SSH,那么這種攻擊就會再所難免。我們需要

  1. 修改默認的ssh的端口22改為其他的端口,可以提高安全性。
  2. root密碼設置比較復雜的密碼,并且保持更新。
  3. 使用秘鑰驗證比密碼驗證安全性更高。
  4. 使用防火墻屏蔽大量訪問的ip。
  5. 使用腳本,對攻擊訪問進行自動拉黑添加到屏蔽訪問的文件中。

5、總結(jié)

只要將我們的服務器在公網(wǎng)環(huán)境公開,提供服務。就避免不了來自全球互聯(lián)網(wǎng)上的各種攻擊。大部分的攻擊都是一些泛攻擊,利用程序自動掃描并發(fā)起攻擊而已。

更多的針對的都是一些弱密碼例如123456,admin等的自動攻擊腳本。

我們只需要給自己的服務器創(chuàng)建復雜程度高的密碼,并保持一段時間的密碼跟換。同時如果必須使用SSH登錄就將默認端口22更換為其他端口。????

然后一段時間后,針對大量重復的ip地址進行封禁就可以了。

責任編輯:姜華 來源: 今日頭條
相關推薦

2011-01-18 11:15:19

LinuxLOG

2009-12-10 14:27:07

Linux操作系統(tǒng)

2014-12-22 09:51:06

Linuxlogwatch

2010-11-19 13:01:31

Oracle日志文件

2009-11-23 09:54:52

2013-04-25 10:30:03

Linux系統(tǒng)文件權(quán)限

2009-12-22 10:46:35

2009-12-02 15:46:36

Linux系統(tǒng)掛接

2010-08-05 11:03:55

創(chuàng)建分區(qū)文件系統(tǒng)

2010-03-09 17:57:46

2017-08-24 11:54:43

Linux日志定時輪循機制

2019-05-22 09:00:16

Linux虛擬文件系統(tǒng)

2019-05-29 16:33:32

Linux虛擬系統(tǒng)

2020-08-21 10:05:22

Linux系統(tǒng)結(jié)構(gòu)內(nèi)核

2011-08-25 11:44:36

wtmp中文man

2010-03-18 15:07:13

Linux操作系統(tǒng)

2010-03-18 14:52:05

Linux操作系統(tǒng)

2010-03-18 15:16:37

Linux操作系統(tǒng)

2009-12-23 14:21:23

Linux文件

2020-02-11 12:54:34

Linux日志文件消息
點贊
收藏

51CTO技術棧公眾號