Linux入侵类问题排查思路
深入分析,查找入侵原因
一、檢查隱藏帳戶及弱口令
檢查服務器系統及應用帳戶是否存在 弱口令:
檢查說明:檢查管理員帳戶、數據庫帳戶、MySQL 帳戶、tomcat 帳戶、網站后臺管理員帳戶等密碼設置是否較為簡單,簡單的密碼很容易被黑客破解。
解決方法:以管理員權限登錄系統或應用程序后臺,修改為復雜的密碼。
風險性:高。
使用?last?命令查看下服務器近期登錄的帳戶記錄,確認是否有可疑 IP 登錄過機器:
檢查說明:攻擊者或者惡意軟件往往會往系統中注入隱藏的系統帳戶實施提權或其他破壞性的攻擊。
解決方法:檢查發現有可疑用戶時,可使用命令?usermod -L 用戶名禁用用戶或者使用命令?userdel -r 用戶名刪除用戶。
風險性:高。
通過?less /var/log/secure|grep 'Accepted'?命令,查看是否有可疑 IP 成功登錄機器:
檢查說明:攻擊者或者惡意軟件往往會往系統中注入隱藏的系統帳戶實施提權或其他破壞性的攻擊。
解決方法: 使用命令?usermod -L 用戶名禁用用戶或者使用命令?userdel -r 用戶名刪除用戶。
風險性:高。
檢查系統是否采用 默認管理端口:
檢查系統所用的管理端口(SSH、FTP、MySQL、Redis 等)是否為默認端口,這些默認端口往往被容易自動化的工具進行爆破成功。
解決方法:
在服務器內編輯?/etc/ssh/sshd_config?文件中的 Port 22,將22修改為非默認端口,修改之后需要重啟 ssh 服務。
運行?/etc/init.d/sshd restart(CentOS)或 /etc/init.d/ssh restart(Debian / Ubuntu)命令重啟是配置生效。
修改 FTP、MySQL、Redis 等的程序配置文件的默認監聽端口21、3306、6379為其他端口。
限制遠程登錄的 IP,編輯?/etc/hosts.deny 、/etc/hosts.allow?兩個文件來限制 IP。
風險性:高。
檢查?/etc/passwd?文件,看是否有非授權帳戶登錄:
檢查說明:攻擊者或者惡意軟件往往會往系統中注入隱藏的系統帳戶實施提權或其他破壞性的攻擊。
解決方法: 使用命令?usermod -L 用戶名禁用用戶或者使用命令?userdel -r 用戶名刪除用戶。
風險性:中。
二、檢查惡意進程及非法端口
運行?netstat –antlp?查看下服務器是否有未被授權的端口被監聽,查看下對應的 pid。
檢查服務器是否存在惡意進程,惡意進程往往會開啟監聽端口,與外部控制機器進行連接。
解決方法:
若發現有非授權進程,運行 ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 為對應的 pid 號),查看下 pid 所對應的進程文件路徑。
如果為惡意進程,刪除下對應的文件即可。
風險性:高。
使用?ps -ef?和?top?命令查看是否有異常進程
檢查說明:運行以上命令,當發現有名稱不斷變化的非授權進程占用大量系統 CPU 或內存資源時,則可能為惡意程序。
解決方法:確認該進程為惡意進程后,可以使用?kill -9 進程名?命令結束進程,或使用防火墻限制進程外聯。
風險性:高。
三、檢查惡意程序和可疑啟動項
使用 chkconfig --list 和 cat /etc/rc.local 命令查看下開機啟動項中是否有異常的啟動服務。
檢查說明:惡意程序往往會添加在系統的啟動項,在用戶關機重啟后再次運行。
解決方法:如發現有惡意進程,可使用 chkconfig 服務名 off 命令關閉,同時檢查 /etc/rc.local 中是否有異常項目,如有請注釋掉。
風險性:高。
進入 cron 文件目錄,查看是否存在非法定時任務腳本。
檢查說明:查看?/etc/crontab,/etc/cron.d,/etc/cron.daily,/etc/cron.hourly/,/etc/cron.monthly,/etc/cron.weekly/?是否存在可疑腳本或程序。
解決方法:如發現有不認識的計劃任務,可定位腳本確認是否正常業務腳本,如果非正常業務腳本,可直接注釋掉任務內容或刪除腳本。
風險性:高。
四、檢查第三方軟件漏洞
如果您服務器內有運行 Web、數據庫等應用服務,請您限制應用程序帳戶對文件系統的寫權限,同時盡量使用非 root 帳戶運行。
檢查說明:使用非 root 帳戶運行可以保障在應用程序被攻陷后攻擊者無法立即遠程控制服務器,減少攻擊損失
解決方法:
進入 web 服務根目錄或數據庫配置目錄;
運行 chown -R apache:apache /var/www/xxxx、chmod -R 750 file1.txt 命令配置網站訪問權限。
風險性:中。
參考示例
升級修復應用程序漏洞
檢查說明:機器被入侵,部分原因是系統使用的應用程序軟件版本較老,存在較多的漏洞而沒有修復,導致可以被入侵利用。
解決方法:比較典型的漏洞例如 ImageMagick、openssl、glibc 等,用戶可以根據騰訊云已發布安全通告指導通過 apt-get/yum 等方式進行直接升級修復。
風險性:高。
?
網站目錄文件權限的參考示例如下:
場景:
我們假設 HTTP 服務器運行的用戶和用戶組是 www,網站用戶為 centos,網站根目錄是 /home/centos/web。
方法/步驟:
1、我們首先設定網站目錄和文件的所有者和所有組為 centos,www,如下命令:
?chown -R centos:www /home/centos/web
2、設置網站目錄權限為750,750是 centos 用戶對目錄擁有讀寫執行的權限,設置后,centos 用戶可以在任何目錄下創建文件,用戶組有有讀執行權限,這樣才能進入目錄,其它用戶沒有任何權限。
?find -type d -exec chmod 750 {} \;
3、設置網站文件權限為640,640指只有 centos 用戶對網站文件有更改的權限,HTTP 服務器只有讀取文件的權限,無法更改文件,其它用戶無任何權限。
?find -not -type d -exec chmod 640 {} \;
4、針對個別目錄設置可寫權限。例如,網站的一些緩存目錄就需要給 HTTP 服務有寫入權限、discuz x2 的/data/目錄就必須要寫入權限。
?find data -type d -exec chmod 770 {} \;
被入侵后的安全優化建議
1、盡量使用 SSH 密鑰進行登錄,減少暴力破解的風險。
2、在服務器內編輯 /etc/ssh/sshd_config 文件中的 Port 22,將 22 修改為其他非默認端口,修改之后重啟 SSH 服務。可使用命令重啟
?/etc/init.d/sshd restart(CentOS)或 /etc/init.d/ssh restart(Debian/Ubuntu)
3、如果必須使用 SSH 密碼進行管理,選擇一個好密碼。
無論應用程序管理后臺(網站、中間件、tomcat 等)、遠程 SSH、遠程桌面、數據庫,都建議設置復雜且不一樣的密碼。
下面是一些好密碼的實例(可以使用空格):
1qtwo-threeMiles3c45jia
caser, lanqiu streets
下面是一些弱口令的示例,可能是您在公開的工作中常用的詞或者是您生活中常用的詞:
公司名+日期(coca-cola2016xxxx)
常用口語(Iamagoodboy)
4、使用以下命令檢查主機有哪些端口開放,關閉非業務端口。
?netstat -anltp
5、通過騰訊云-安全組防火墻限制僅允許制定 IP 訪問管理或通過編輯 /etc/hosts.deny、/etc/hosts.allow 兩個文件來限制 IP。
6、應用程序盡量不使用 root 權限。
例如 Apache、Redis、MySQL、Nginx 等程序,盡量不要以 root 權限的方式運行。
7、修復系統提權漏洞與運行在 root 權限下的程序漏洞,以免惡意軟件通過漏洞提權獲得 root 權限傳播后門。
及時更新系統或所用應用程序的版本,如 Struts2、Nginx,ImageMagick、Java 等。
關閉應用程序的遠程管理功能,如 Redis、NTP 等,如果無遠程管理需要,可關閉對外監聽端口或配置。
8、定期備份云服務器業務數據。
對重要的業務數據進行異地備份或云備份,避免主機被入侵后無法恢復。
除了您的 home,root 目錄外,您還應當備份 /etc 和可用于取證的 /var/log 目錄。
9、安裝騰訊云主機安全(云鏡) Agent,在發生攻擊后,可以了解自身風險情況。
?
本文來自騰訊云,文檔中心>主機安全>故障排除>Linux入侵類問題排查思路:https://cloud.tencent.com/document/product/296/9604
轉載于:https://www.cnblogs.com/opsprobe/p/11519287.html
總結
以上是生活随笔為你收集整理的Linux入侵类问题排查思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 心得体悟帖---12、志向还是太短浅,目
- 下一篇: ubuntu16.04上安装gstrea