linux 怎么查看谁登过这台服务器,如何查看linux服务器是否被入侵
對(duì)于linux服務(wù)器來(lái)說(shuō),安全性是非常重要的問題。而服務(wù)器被入侵最常見的表現(xiàn)有:由內(nèi)向外發(fā)送大量數(shù)據(jù)包(被DDOS肉雞)、服務(wù)器資源被耗盡(被挖礦)、不正常的端口連接(反向shell)、服務(wù)器日志被惡意刪除等。這里就跟大家講解一下如何查看linux服務(wù)器是否被入侵。
如何查看linux服務(wù)器是否被入侵
1、賬號(hào)安全
基本使用:
1 )用 戶 信 息 文 件 /etc/passwd root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用戶名:密碼:用戶ID:組ID:用戶說(shuō)明:家目錄:登陸之后shell 注:無(wú)密碼只允許本機(jī)登陸,遠(yuǎn)程不允許登陸
2)影子文件/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時(shí)間間隔:密碼有效期:密碼修改到期到的警告天數(shù):密碼過期之
后的寬限天數(shù):賬號(hào)失效時(shí)間:保留
who//查看當(dāng)前登錄用戶(tty本地登陸pts遠(yuǎn)程登錄)
w //查看系統(tǒng)信息,想知道某一時(shí)刻用戶的行為
uptime //查看登陸多久、多少用戶,負(fù)載
入侵排查:
1)查詢特權(quán)用戶特權(quán)用戶(uid 為0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2)查詢可以遠(yuǎn)程登錄的帳號(hào)信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
3)除root帳號(hào)外,其他帳號(hào)是否存在sudo權(quán)限。如非管理需要,普通帳號(hào)應(yīng)刪除sudo權(quán)限[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" 4、禁用或刪除多余及可疑的帳號(hào)
usermod -L user禁用帳號(hào),帳號(hào)無(wú)法登錄,/etc/shadow第二欄為!開頭
userdel user刪除user用戶
userdel -r user將刪除user用戶,并且將/home目錄下的user目錄一并刪除
2、文件排查
1)敏感目錄的文件分析[類/tmp 目錄,命令目錄/usr/bin /usr/sbin 等]
ls用來(lái)顯示目標(biāo)列表
2)查看 tmp 目錄下的文件:ls –alt /tmp/
Linux服務(wù)器入侵檢測(cè)排查方法
3)查看開機(jī)啟動(dòng)項(xiàng)內(nèi)容:ls -alt /etc/init.d/,/etc/init.d 是 /etc/rc.d/init.d的軟鏈接
入侵排查:
啟動(dòng)項(xiàng)文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d
4)按時(shí)間排序查看指定目錄下文件:ls -alt | head -n 10
針對(duì)可疑文件可以使用 stat 進(jìn)行創(chuàng)建修改時(shí)間、訪問時(shí)間的詳細(xì)查看,若修改時(shí)間距離事件日期接近,有線性關(guān)聯(lián),說(shuō)明可能被篡改或者其他。
(1) Access Time:簡(jiǎn)寫為 atime,表示文件的訪問時(shí)間。當(dāng)文件內(nèi)容被訪問時(shí),更新這個(gè)時(shí)間。
(2) Modify Time:簡(jiǎn)寫為 mtime,表示文件內(nèi)容的修改時(shí)間,當(dāng)文件的數(shù)據(jù)內(nèi)容被修改時(shí),更新這個(gè)時(shí)間。
(3) Change Time:簡(jiǎn)寫為 ctime,表示文件的狀態(tài)時(shí)間,當(dāng)文件的狀態(tài)被修改時(shí),更新這個(gè)時(shí)間,例如文件的鏈接數(shù),大小,權(quán)限,Blocks 數(shù)。
5)查看歷史命令記錄文件~/.bash_history
查找~/.bash_history 命令執(zhí)行記錄,主要分析是否有賬戶執(zhí)行過惡意操作系統(tǒng);命令在 linux 系統(tǒng)里,只要執(zhí)行過命令的用戶,那么在這個(gè)用戶的 HOME 目錄下,都會(huì)有一個(gè).bash_history 的文件記錄著這個(gè)用戶都執(zhí)行過什么命令;
那么當(dāng)安全事件發(fā)生的時(shí)候,我們就可以通過查看每個(gè)用戶所執(zhí)行過的命令,來(lái)分析一下這個(gè)用戶是否有執(zhí)行惡意命令,如果發(fā)現(xiàn)哪個(gè)用戶執(zhí)行過惡意命令, 那么我們就可以鎖定這個(gè)線索,去做下一步的排查。
基本使用:
通過.bash_history查看帳號(hào)執(zhí)行過的系統(tǒng)命令
①root的歷史命令
histroy
②打開/home各帳號(hào)目錄下的.bash_history,查看普通帳號(hào)的歷史命令
為歷史的命令增加登錄的IP地址、執(zhí)行命令時(shí)間等信息:
a)保存1萬(wàn)條命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
b)在/etc/profile的文件尾部添加如下行數(shù)配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` " shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########
c)source /etc/profile讓配置生效
生成效果: 12018-07-10 19:45:39 192.168.204.1 root source /etc/profile
③歷史操作命令的清除:history -c
注:此命令并不會(huì)清除保存在文件中的記錄,因此需要手動(dòng)刪除.bash_profile文件中的記錄。
入侵排查:
進(jìn)入用戶目錄下
cat .bash_history >> history.txt
6)查看操作系統(tǒng)用戶信息文件/etc/passwd
查找/etc/passwd 文件, /etc/passwd 這個(gè)文件是保存著這個(gè) linux 系統(tǒng)所有用戶的信息,通過查看這個(gè)文件,我們就可以嘗試查找有沒有攻擊者所創(chuàng)建的用戶,或者存在異常的用戶。我們主要關(guān)注的是第 3、4 列的用戶標(biāo)識(shí)號(hào)和組標(biāo)識(shí)號(hào),和倒數(shù)一二列的用戶主目錄和命令解析程序。一般來(lái)說(shuō)最后一列命令解析程序如果是設(shè)置為 nologin 的話,那么表示這個(gè)用戶是不能登錄的,所以可以結(jié)合我們上面所說(shuō)的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令解釋程序不是 nologin 的用戶, 然后再到這些用戶的用戶主目錄里, 找到bash_history,去查看這個(gè)用戶有沒執(zhí)行過惡意命令。
/etc/passwd 中一行記錄對(duì)應(yīng)著一個(gè)用戶,每行記錄又被冒號(hào)(:)分隔為 7 個(gè)字段, 其格式和具體含義如下:
用戶名:口令:用戶標(biāo)識(shí)號(hào):組標(biāo)識(shí)號(hào):注釋性描述:主目錄:登錄 Shell
7)查看新增文件
find:在指定目錄下查找文件
例:find ./ -mtime 0 -name "*.php"(查找 24 小時(shí)內(nèi)被修改的 php 文件)
find / -ctime 2(查找 72 小時(shí)內(nèi)新增的文件)
8)特殊權(quán)限的文件查看
查找 777 的權(quán)限的文件:find / *.jsp -perm 4777
9)隱藏的文件(以 "."開頭的具有隱藏屬性的文件)
注:在文件分析過程中,手工排查頻率較高的命令是 find grep ls 核心目的是為了關(guān)聯(lián)推理出可疑文件;
3、端口、進(jìn)程排查
1)使用netstat 網(wǎng)絡(luò)連接命令,分析可疑端口、IP、PID
netstat -antlp|more
查看下pid所對(duì)應(yīng)的進(jìn)程文件路徑:運(yùn)行l(wèi)s -l /proc/$PID/exe或file /proc/$PID/exe($PID 為對(duì)應(yīng)的pid 號(hào))
netstat 用于顯示與 IP、TCP、UDP 和 ICMP 協(xié)議相關(guān)的統(tǒng)計(jì)數(shù)據(jù),一般用于檢驗(yàn)本機(jī)各端口的網(wǎng)絡(luò)連接情況。
選項(xiàng)參數(shù):
-a 顯示所有連線中的 Socket。
-n 直接使用 IP 地址,而不通過域名服務(wù)器。
-t 顯示 TCP 傳輸協(xié)議的連線狀況。
-u 顯示 UDP 傳輸協(xié)議的連線狀況。
-v 顯示指令執(zhí)行過程。
-p 顯示正在使用 Socket 的程序識(shí)別碼和程序名稱。
-s 顯示網(wǎng)絡(luò)工作信息統(tǒng)計(jì)表。
2)根據(jù) netstat 定位出的 pid,使用 ps 命令,分析進(jìn)程
-a 代表 all。同時(shí)加上 x 參數(shù)會(huì)顯示沒有控制終端的進(jìn)程
-aux 顯示所有包含其他使用者的行程(ps -aux --sort -pcpu | less 根據(jù) cpt 使用率進(jìn)行排序)
-C 顯示某的進(jìn)程的信息
-axjf 以樹形結(jié)構(gòu)顯示進(jìn)程
ps aux | grep pid | grep –v grep
4、日志排查
1)查看系統(tǒng)用戶登錄信息
a)使用 lastlog 命令,系統(tǒng)中所有用戶最近一次登錄信息。
b)使用 lastb 命令,用于顯示用戶錯(cuò)誤的登錄列表;
c)使用 last 命令,用于顯示用戶最近登錄信息(數(shù)據(jù)源為/var/log/wtmp,var/log/btmp);
utmp 文件中保存的是當(dāng)前正在本系統(tǒng)中的用戶的信息。
wtmp 文件中保存的是登錄過本系統(tǒng)的用戶的信息。
/var/log/wtmp 文 件 結(jié) 構(gòu) 和 /var/run/utmp 文 件 結(jié) 構(gòu) 一 樣 , 都 是 引 用
/usr/include/bits/utmp.h 中 的 struct utmp;
關(guān)于如何查看linux服務(wù)器是否被入侵就為大家介紹到這里,如果您的linux服務(wù)器出現(xiàn)了一些異常的現(xiàn)象,應(yīng)該第一時(shí)間就根據(jù)上面介紹的檢查方法逐一排查,盡早解決入侵問題才能避免遭受更大的損失。如果您對(duì)于服務(wù)器被入侵的問題無(wú)法自己解決,也可以向安全狗尋求技術(shù)支持,我們會(huì)安排專業(yè)的安全技術(shù)團(tuán)隊(duì)為您解決。
總結(jié)
以上是生活随笔為你收集整理的linux 怎么查看谁登过这台服务器,如何查看linux服务器是否被入侵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux怎样使用小米线刷工具,小米线刷
- 下一篇: 作为IT男必须会Linux服务器被攻击后