服務器被黑?莫慌!先來排查這5個易錯點!

安全是 IT 行業一個老生常談的話題了,從以前的「棱鏡門」事件中折射出了不少安全問題,處理好信息安全問題已變得刻不容緩。不掉坑,不背鍋!史上最全的服務器安全管理規範開源了html

所以作爲程序員,就必須瞭解一些安全準則,同時,要保護本身所負責的業務,首先要站在攻擊者的角度思考問題,修補任何潛在的威脅和漏洞。這是一篇長文,建議你們細細品讀一下,一定有很多收穫,學習時須要靜心,放下內心的浮躁。node

本文主要分爲以下五部分展開:程序員

帳戶和登陸安全面試

帳戶安全是系統安全的第一道屏障,也是系統安全的核心,保障登陸帳戶的安全,在必定程度上能夠提升服務器的安全級別,下面重點介紹下 Linux 系統登陸帳戶的安全設置方法。redis

①刪除特殊的帳戶和帳戶組shell

Linux 提供了各類不一樣角色的系統帳號,在系統安裝完成後,默認會安裝不少沒必要要的用戶和用戶組。數據庫

若是不須要某些用戶或者組,就要當即刪除它,由於帳戶越多,系統就越不安全,極可能被黑客利用,進而威脅到服務器的安全。安全

Linux系統中能夠刪除的默認用戶和組大體有以下這些:bash

可刪除的用戶,如 adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher 等。服務器

可刪除的組,如 adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers 等。

②關閉系統不須要的服務

Linux 在安裝完成後,綁定了不少沒用的服務,這些服務默認都是自動啓動的。

對於服務器來講,運行的服務越多,系統就越不安全,越少服務在運行,安全性就越好,所以關閉一些不須要的服務,對系統安全有很大的幫助。

具體哪些服務能夠關閉,要根據服務器的用途而定,通常狀況下,只要系統自己用不到的服務都認爲是沒必要要的服務。

例如:某臺 Linux 服務器用於 www 應用,那麼除了 httpd 服務和系統運行是必須的服務外,其餘服務均可以關閉。

下面這些服務通常狀況下是不須要的,能夠選擇關閉:

anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv

③密碼安全策略

在 Linux 下,遠程登陸系統有兩種認證方式:

  • 密碼認證
  • 密鑰認證

密碼認證方式是傳統的安全策略,對於密碼的設置,比較廣泛的說法是:至少 6 個字符以上,密碼要包含數字、字母、下劃線、特殊符號等。

設置一個相對複雜的密碼,對系統安全能起到必定的防禦做用,可是也面臨一些其餘問題,例如密碼暴力破解、密碼泄露、密碼丟失等,同時過於複雜的密碼對運維工做也會形成必定的負擔。

密鑰認證是一種新型的認證方式,公用密鑰存儲在遠程服務器上,專用密鑰保存在本地,當須要登陸系統時,經過本地專用密鑰和遠程服務器的公用密鑰進行配對認證,若是認證成功,就成功登陸系統。

這種認證方式避免了被暴力破解的危險,同時只要保存在本地的專用密鑰不被黑客盜用,攻擊者通常沒法經過密鑰認證的方式進入系統。

所以,在 Linux 下推薦用密鑰認證方式登陸系統,這樣就能夠拋棄密碼認證登陸系統的弊端。

Linux 服務器通常經過 SecureCRT、Putty、Xshell 之類的工具進行遠程維護和管理,密鑰認證方式的實現就是藉助於 SecureCRT 軟件和 Linux 系統中的 SSH 服務實現的。

④合理使用 su、sudo 命令

su 命令:是一個切換用戶的工具,常常用於將普通用戶切換到超級用戶下,固然也能夠從超級用戶切換到普通用戶。

爲了保證服務器的安全,幾乎全部服務器都禁止了超級用戶直接登陸系統,而是經過普通用戶登陸系統,而後再經過 su 命令切換到超級用戶下,執行一些須要超級權限的工做。

經過 su 命令可以給系統管理帶來必定的方便,可是也存在不安全的因素,例如:系統有 10 個普通用戶,每一個用戶都須要執行一些有超級權限的操做,就必須把超級用戶的密碼交給這 10 個普通用戶。

若是這 10 個用戶都有超級權限,經過超級權限能夠作任何事,那麼會在必定程度上對系統的安全形成了威協。

所以 su 命令在不少人都須要參與的系統管理中,並非最好的選擇,超級用戶密碼應該掌握在少數人手中,此時 sudo 命令就派上用場了。

sudo 命令:容許系統管理員分配給普通用戶一些合理的「權利」,而且不須要普通用戶知道超級用戶密碼,就能讓他們執行一些只有超級用戶或其餘特許用戶才能完成的任務。

好比:系統服務重啓、編輯系統配置文件等,經過這種方式不但能減小超級用戶登陸次數和管理時間,也提升了系統安全性。

所以,sudo 命令相對於權限無限制性的 su 來講,仍是比較安全的,因此 sudo 也被稱爲受限制的 su,另外 sudo 也是須要事先進行受權認證的,因此也被稱爲受權認證的 su。

sudo 執行命令的流程是:將當前用戶切換到超級用戶下,或切換到指定的用戶下,而後以超級用戶或其指定切換到的用戶身份執行命令。

執行完成後,直接退回到當前用戶,而這一切的完成要經過 sudo 的配置文件 /etc/sudoers 來進行受權。

sudo 設計的宗旨是:賦予用戶儘量少的權限但仍容許它們完成本身的工做,這種設計兼顧了安全性和易用性。

所以,強烈推薦經過 sudo 來管理系統帳號的安全,只容許普通用戶登陸系統,若是這些用戶須要特殊的權限,就經過配置 /etc/sudoers 來完成,這也是多用戶系統下帳號安全管理的基本方式。

⑤刪減系統登陸歡迎信息

系統的一些歡迎信息或版本信息,雖然能給系統管理者帶來必定的方便,可是這些信息有時候可能被黑客利用,成爲攻擊服務器的幫兇。

爲了保證系統的安全,能夠修改或刪除某些系統文件,須要修改或刪除的文件有四個,分別是:

  • /etc/issue
  • /etc/issue.net
  • /etc/redhat-release
  • /etc/motd

/etc/issue 和 /etc/issue.net 文件都記錄了操做系統的名稱和版本號,當用戶經過本地終端或本地虛擬控制檯等登陸系統時,/etc/issue 的文件內容就會顯示。

當用戶經過 ssh 或 telnet 等遠程登陸系統時,/etc/issue.net 文件內容就會在登陸後顯示。

在默認狀況下 /etc/issue.net 文件的內容是不會在 ssh 登陸後顯示的,要顯示這個信息能夠修改 /etc/ssh/sshd_config 文件,在此文件中添加以下內容便可:Banner /etc/issue.net。

其實這些登陸提示很明顯泄漏了系統信息,爲了安全起見,建議將此文件中的內容刪除或修改。

/etc/redhat-release 文件也記錄了操做系統的名稱和版本號,爲了安全起見,能夠將此文件中的內容刪除。

/etc/motd 文件是系統的公告信息。每次用戶登陸後,/etc/motd 文件的內容就會顯示在用戶的終端。

經過這個文件系統,管理員能夠發佈一些軟件或硬件的升級、系統維護等通告信息,可是此文件的最大做用就是能夠發佈一些警告信息,當黑客登陸系統後,會發現這些警告信息,進而產生一些震懾做用。

看過國外的一個報道,黑客入侵了一個服務器,而這個服務器卻給出了歡迎登陸的信息,所以法院不作任何裁決。

遠程訪問和認證安全

①遠程登陸取消 telnet 而採用 SSH 方式

telnet 是一種古老的遠程登陸認證服務,它在網絡上用明文傳送口令和數據,所以別有用心的人就會很是容易截獲這些口令和數據。

並且,telnet 服務程序的安全驗證方式也極其脆弱,攻擊者能夠輕鬆將虛假信息傳送給服務器。

如今遠程登陸基本拋棄了 telnet 這種方式,而取而代之的是經過 SSH 服務遠程登陸服務器。

②合理使用 Shell 歷史命令記錄功能

在 Linux 下可經過 history 命令查看用戶全部的歷史操做記錄,同時 shell 命令操做記錄默認保存在用戶目錄下的 .bash_history 文件中。

經過這個文件能夠查詢 shell 命令的執行歷史,有助於運維人員進行系統審計和問題排查。

同時,在服務器遭受黑客攻擊後,也能夠經過這個命令或文件查詢黑客登陸服務器所執行的歷史命令操做。

可是有時候黑客在入侵服務器後爲了毀滅痕跡,可能會刪除 .bash_history 文件,這就須要合理的保護或備份 .bash_history 文件。

③啓用 Tcp_Wrappers防火牆

Tcp_Wrappers 是一個用來分析 TCP/IP 封包的軟件,相似的 IP 封包軟件還有 iptables。

Linux 默認都安裝了 Tcp_Wrappers。做爲一個安全的系統,Linux 自己有兩層安全防火牆,經過 IP 過濾機制的 iptables 實現第一層防禦。

iptables 防火牆經過直觀地監視系統的運行情況,阻擋網絡中的一些惡意攻擊,保護整個系統正常運行,免遭攻擊和破壞。

若是經過了第一層防禦,那麼下一層防禦就是Tcp_Wrappers了。經過 Tcp_Wrappers 能夠實現對系統中提供的某些服務的開放與關閉、容許和禁止,從而更有效地保證系統安全運行。

文件系統安全

①鎖定系統重要文件

系統運維人員有時候可能會遇到經過 Root 用戶都不能修改或者刪除某個文件的狀況,產生這種狀況的大部分緣由多是這個文件被鎖定了。

在 Linux 下鎖定文件的命令是 Chattr,經過這個命令能夠修改 ext二、ext三、ext4 文件系統下文件屬性,可是這個命令必須有超級用戶 Root 來執行。和這個命令對應的命令是 lsattr,這個命令用來查詢文件屬性。

對重要的文件進行加鎖,雖然可以提升服務器的安全性,可是也會帶來一些不便。

例如:在軟件的安裝、升級時可能須要去掉有關目錄和文件的 immutable 屬性和 append-only 屬性,同時,對日誌文件設置了 append-only 屬性,可能會使日誌輪換(logrotate)沒法進行。

所以,在使用 Chattr 命令前,須要結合服務器的應用環境來權衡是否須要設置 immutable 屬性和 append-only 屬性。

另外,雖然經過 Chattr 命令修改文件屬性可以提升文件系統的安全性,可是它並不適合全部的目錄。Chattr 命令不能保護 /、/dev、/tmp、/var 等目錄。

根目錄不能有不可修改屬性,由於若是根目錄具備不可修改屬性,那麼系統根本沒法工做:

  • /dev 在啓動時,syslog 須要刪除並從新創建 /dev/log 套接字設備,若是設置了不可修改屬性,那麼可能出問題。
  • /tmp 目錄會有不少應用程序和系統程序須要在這個目錄下創建臨時文件,也不能設置不可修改屬性。
  • /var 是系統和程序的日誌目錄,若是設置爲不可修改屬性,那麼系統寫日誌將沒法進行,因此也不能經過 Chattr 命令保護。

②文件權限檢查和修改

不正確的權限設置直接威脅着系統的安全,所以運維人員應該能及時發現這些不正確的權限設置,並馬上修正,防患於未然。下面列舉幾種查找系統不安全權限的方法。

查找系統中任何用戶都有寫權限的文件或目錄:

查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al
查找目錄:find / -type d -perm -2 -o -perm -20 |xargs ls –ld

查找系統中全部含「s」位的程序:

find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al

含有「s」位權限的程序對系統安全威脅很大,經過查找系統中全部具備「s」位權限的程序,能夠把某些沒必要要的「s」位程序去掉,這樣能夠防止用戶濫用權限或提高權限的可能性。

檢查系統中全部 suid 及 sgid 文件:

find / -user root -perm -2000 -print -exec md5sum {} ;
find / -user root -perm -4000 -print -exec md5sum {} ;

將檢查的結果保存到文件中,可在之後的系統檢查中做爲參考。

檢查系統中沒有屬主的文件:

find / -nouser -o –nogroup

沒有屬主的孤兒文件比較危險,每每成爲黑客利用的工具,所以找到這些文件後,要麼刪除掉,要麼修改文件的屬主,使其處於安全狀態。

③/tmp、/var/tmp、/dev/shm 安全設定

在 Linux 系統中,主要有兩個目錄或分區用來存放臨時文件,分別是 /tmp 和 /var/tmp。

存儲臨時文件的目錄或分區有個共同點就是全部用戶可讀寫、可執行,這就爲系統留下了安全隱患。

攻擊者能夠將病毒或者木馬腳本放到臨時文件的目錄下進行信息收集或假裝,嚴重影響服務器的安全。

此時,若是修改臨時目錄的讀寫執行權限,還有可能影響系統上應用程序的正常運行,所以,若是要兼顧二者,就須要對這兩個目錄或分區進行特殊的設置。

/dev/shm 是 Linux 下的一個共享內存設備,在 Linux 啓動的時候系統默認會加載 /dev/shm,被加載的 /dev/shm 使用的是 tmpfs 文件系統,而 tmpfs 是一個內存文件系統,存儲到 tmpfs 文件系統的數據會徹底駐留在 RAM 中。

這樣經過 /dev/shm 就能夠直接操控系統內存,這將很是危險,所以如何保證 /dev/shm 安全也相當重要。

對於 /tmp 的安全設置,須要看 /tmp 是一個獨立磁盤分區,仍是一個根分區下的文件夾。

若是 /tmp 是一個獨立的磁盤分區,那麼設置很是簡單,修改 /etc/fstab 文件中 /tmp 分區對應的掛載屬性,加上 nosuid、noexec、nodev 三個選項便可。

修改後的 /tmp 分區掛載屬性相似以下:

LABEL=/tmp  /tmp ext3 rw,nosuid,noexec,nodev 0 0

其中,nosuid、noexec、nodev 選項,表示不容許任何 suid 程序,而且在這個分區不能執行任何腳本等程序,而且不存在設備文件。

在掛載屬性設置完成後,從新掛載 /tmp 分區,保證設置生效。

對於 /var/tmp,若是是獨立分區,安裝 /tmp 的設置方法是修改 /etc/fstab 文件便可。

若是是 /var 分區下的一個目錄,那麼能夠將 /var/tmp 目錄下全部數據移動到 /tmp 分區下,而後在 /var 下作一個指向 /tmp 的軟鏈接便可。

也就是執行以下操做:

[root@server ~]# mv /var/tmp/* /tmp
[root@server ~]# ln -s  /tmp /var/tmp

若是 /tmp 是根目錄下的一個目錄,那麼設置稍微複雜,能夠經過建立一個 loopback 文件系統來利用 Linux 內核的 loopback 特性將文件系統掛載到 /tmp 下,而後在掛載時指定限制加載選項便可。

一個簡單的操做示例以下:

[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000
[root@server ~]# mke2fs -j /dev/tmpfs
[root@server ~]# cp -av /tmp /tmp.old
[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp
[root@server ~]# chmod 1777 /tmp
[root@server ~]# mv -f /tmp.old/* /tmp/
[root@server ~]# rm -rf /tmp.old

最後,編輯 /etc/fstab,添加以下內容,以便系統在啓動時自動加載 loopback 文件系統:

/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0

Linux 後門入侵檢測工具

Rootkit 是 Linux 平臺下最多見的一種木馬後門工具,它主要經過替換系統文件來達到入侵和和隱蔽的目的,這種木馬比普通木馬後門更加危險和隱蔽,普通的檢測工具和檢查手段很難發現這種木馬。

Rootkit 攻擊能力極強,對系統的危害很大,它經過一套工具來創建後門和隱藏行跡,從而讓攻擊者保住權限,以使它在任什麼時候候均可以使用 Root 權限登陸到系統。

Rootkit 主要有兩種類型:文件級別和內核級別,下面分別進行簡單介紹。

文件級別的 Rootkit 通常是經過程序漏洞或者系統漏洞進入系統後,經過修改系統的重要文件來達到隱藏本身的目的。

在系統遭受 Rootkit 攻擊後,合法的文件被木馬程序替代,變成了外殼程序,而其內部是隱藏着的後門程序。

一般容易被 Rootkit 替換的系統程序有 login、ls、ps、ifconfig、du、find、netstat 等,其中 login 程序是最常常被替換的。

由於當訪問 Linux 時,不管是經過本地登陸仍是遠程登陸,/bin/login 程序都會運行,系統將經過 /bin/login 來收集並覈對用戶的帳號和密碼。

而 Rootkit 就是利用這個程序的特色,使用一個帶有根權限後門密碼的 /bin/login 來替換系統的 /bin/login,這樣攻擊者經過輸入設定好的密碼就能輕鬆進入系統。

此時,即便系統管理員修改 Root 密碼或者清除 Root 密碼,攻擊者仍是同樣能經過 Root 用戶登陸系統。

攻擊者一般在進入 Linux 系統後,會進行一系列的攻擊動做,最多見的是安裝嗅探器收集本機或者網絡中其餘服務器的重要數據。

在默認狀況下,Linux 中也有一些系統文件會監控這些工具動做,例如 ifconfig 命令。

因此,攻擊者爲了不被發現,會千方百計替換其餘系統文件,常見的就是 ls、ps、ifconfig、du、find、netstat 等。

若是這些文件都被替換,那麼在系統層面就很難發現 Rootkit 已經在系統中運行了。

這就是文件級別的 Rootkit,對系統維護很大,目前最有效的防護方法是按期對系統重要文件的完整性進行檢查。

若是發現文件被修改或者被替換,那麼極可能系統已經遭受了 Rootkit 入侵。

檢查文件完整性的工具不少,常見的有 Tripwire、 aide 等,能夠經過這些工具按期檢查文件系統的完整性,以檢測系統是否被 Rootkit 入侵。

內核級 Rootkit 是比文件級 Rootkit 更高級的一種入侵方式,它可使攻擊者得到對系統底層的徹底控制權。

此時攻擊者能夠修改系統內核,進而截獲運行程序向內核提交的命令,並將其重定向到入侵者所選擇的程序並運行此程序。

也就是說,當用戶要運行程序 A 時,被入侵者修改過的內核會僞裝執行 A 程序,而實際上卻執行了程序 B。

內核級 Rootkit 主要依附在內核上,它並不對系統文件作任何修改,所以通常的檢測工具很難檢測到它的存在,這樣一旦系統內核被植入 Rootkit,攻擊者就能夠對系統隨心所欲而不被發現。

目前對於內核級的 Rootkit 尚未很好的防護工具,所以,作好系統安全防範就很是重要,將系統維持在最小權限內工做,只要攻擊者不能獲取 Root 權限,就沒法在內核中植入 Rootkit。

①Rootkit 後門檢測工具 Chkrootkit

Chkrootkit 是一個 Linux 系統下查找並檢測 Rootkit 後門的工具,它的官方地址:

http://www.chkrootkit.org/

Chkrootkit 沒有包含在官方的 CentOS 源中,所以要採起手動編譯的方法來安裝,不過這種安裝方法也更加安全。

Chkrootkit 的使用比較簡單,直接執行 Chkrootkit 命令便可自動開始檢測系統。

下面是某個系統的檢測結果:

[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit
Checking `ifconfig'... INFECTED
Checking `ls'... INFECTED
Checking `login'... INFECTED
Checking `netstat'... INFECTED
Checking `ps'... INFECTED
Checking `top'... INFECTED
Checking `sshd'... not infected
Checking `syslogd'... not tested

從輸出能夠看出,此係統的 ifconfig、ls、login、netstat、ps 和 top 命令已經被感染。

針對被感染 Rootkit 的系統,最安全而有效的方法就是備份數據從新安裝系統。

Chkrootkit 在檢查 Rootkit 的過程當中使用了部分系統命令,所以,若是服務器被黑客入侵,那麼依賴的系統命令可能也已經被入侵者替換,此時 Chkrootkit 的檢測結果將變得徹底不可信。

爲了不 Chkrootkit 的這個問題,能夠在服務器對外開放前,事先將 Chkrootkit 使用的系統命令進行備份,在須要的時候使用備份的原始系統命令讓 Chkrootkit 對 Rootkit 進行檢測。

②Rootkit 後門檢測工具 RKHunter

RKHunter 是一款專業的檢測系統是否感染 Rootkit 的工具,它經過執行一系列的腳原本確認服務器是否已經感染 Rootkit。

在官方的資料中,RKHunter 能夠作的事情有:

MD5校驗測試,檢測文件是否有改動,比較系統命令的md5,從而判斷系統命令是否被篡改
檢測rootkit使用的二進制和系統工具文件
檢測特洛伊木馬程序的特徵碼
檢測經常使用程序的文件屬性是否異常
檢測系統相關的測試
檢測隱藏文件
檢測可疑的核心模塊LKM
檢測系統已啓動的監聽端口

在 Linux 終端使用 RKHunter 來檢測,最大的好處在於每項的檢測結果都有不一樣的顏色顯示,若是是綠色的表示沒有問題,若是是紅色的,那就要引發關注了。

另外,在執行檢測的過程當中,在每一個部分檢測完成後,須要以 Enter 鍵來繼續。

若是要讓程序自動運行,能夠執行以下命令:

[root@server ~]# /usr/local/bin/rkhunter --check --skip-keypress

同時,若是想讓檢測程序天天定時運行,那麼能夠在 /etc/crontab 中加入以下內容:

30 09 * * * root /usr/local/bin/rkhunter --check --cronjob 

這樣,RKHunter 檢測程序就會在天天的 9:30 分運行一次。

服務器遭受攻擊後的處理過程

安全老是相對的,再安全的服務器也有可能遭受到攻擊。

做爲一個安全運維人員,要把握的原則是:儘可能作好系統安全防禦,修復全部已知的危險行爲,同時,在系統遭受攻擊後可以迅速有效地處理攻擊行爲,最大限度地下降攻擊對系統產生的影響。

①處理服務器遭受攻擊的通常思路

系統遭受攻擊並不可怕,可怕的是面對攻擊一籌莫展,下面就詳細介紹下在服務器遭受攻擊後的通常處理思路。

切斷網絡:全部的攻擊都來自於網絡,所以,在得知系統正遭受黑客的攻擊後,首先要作的就是斷開服務器的網絡鏈接,這樣除了能切斷攻擊源以外,也能保護服務器所在網絡的其餘主機。

查找攻擊源:能夠經過分析系統日誌或登陸日誌文件,查看可疑信息,同時也要查看系統都打開了哪些端口,運行哪些進程,並經過這些進程分析哪些是可疑的程序。

這個過程要根據經驗和綜合判斷能力進行追查和分析。下面會詳細介紹這個過程的處理思路。

分析入侵緣由和途徑:既然系統遭到入侵,那麼緣由是多方面的,多是系統漏洞,也多是程序漏洞。

必定要查清楚是哪一個緣由致使的,而且還要查清楚遭到攻擊的途徑,找到攻擊源,由於只有知道了遭受攻擊的緣由和途徑,才能刪除攻擊源同時進行漏洞的修復。

備份用戶數據:在服務器遭受攻擊後,須要馬上備份服務器上的用戶數據,同時也要查看這些數據中是否隱藏着攻擊源。

若是攻擊源在用戶數據中,必定要完全刪除,而後將用戶數據備份到一個安全的地方。

從新安裝系統:永遠不要認爲本身能完全清除攻擊源,由於沒有人能比黑客更瞭解攻擊程序。

在服務器遭到攻擊後,最安全也最簡單的方法就是從新安裝系統,由於大部分攻擊程序都會依附在系統文件或者內核中,因此從新安裝系統才能完全清除攻擊源。

修復程序或系統漏洞:在發現系統漏洞或者應用程序漏洞後,首先要作的就是修復系統漏洞或者更改程序 Bug,由於只有將程序的漏洞修復完畢才能正式在服務器上運行。

恢復數據和鏈接網絡:將備份的數據從新複製到新安裝的服務器上,而後開啓服務,最後將服務器開啓網絡鏈接,對外提供服務。

②檢查並鎖定可疑用戶

當發現服務器遭受攻擊後,首先要切斷網絡鏈接,可是在有些狀況下,好比沒法立刻切斷網絡鏈接時,就必須登陸系統查看是否有可疑用戶。

若是有可疑用戶登陸了系統,那麼須要立刻將這個用戶鎖定,而後中斷此用戶的遠程鏈接。

③查看系統日誌

查看系統日誌是查找攻擊源最好的方法,可查的系統日誌有 /var/log/messages、/var/log/secure 等。

這兩個日誌文件能夠記錄軟件的運行狀態以及遠程用戶的登陸狀態,還能夠查看每一個用戶目錄下的 .bash_history 文件。

特別是 /root 目錄下的 .bash_history 文件,這個文件中記錄着用戶執行的全部歷史命令。

④檢查並關閉系統可疑進程

檢查可疑進程的命令不少,例如 ps、top 等,可是有時候只知道進程的名稱沒法得知路徑,此時能夠經過以下命令查看。

首先經過 pidof 命令能夠查找正在運行的進程 PID,例如要查找 sshd 進程的 PID。

執行以下命令:

[root@server ~]# pidof sshd13276 12942 4284

而後進入內存目錄,查看對應 PID 目錄下 exe 文件的信息:

[root@server ~]# ls -al /proc/13276/exe 
lrwxrwxrwx 1 root root 0 Oct  4 22:09 /proc/13276/exe -> /usr/sbin/sshd

這樣就找到了進程對應的完整執行路徑。若是還要查看文件的句柄,能夠查看以下目錄:

[root@server ~]# ls -al /proc/13276/fd

經過這種方式基本能夠找到任何進程的完整執行信息。

⑤檢查文件系統的無缺性

檢查文件屬性是否發生變化是驗證文件系統無缺性最簡單、最直接的方法,例如能夠檢查被入侵服務器上 /bin/ls 文件的大小是否與正常系統上此文件的大小相同,以驗證文件是否被替換,可是這種方法比較低級。

此時能夠藉助於 Linux 下 rpm 這個工具來完成驗證,操做以下:

[root@server ~]# rpm -Va
....L...  c /etc/pam.d/system-auth
S.5.....  c /etc/security/limits.conf
S.5....T  c /etc/sysctl.conf
S.5....T    /etc/sgml/docbook-simple.cat
S.5....T  c /etc/login.defs
S.5.....  c /etc/openldap/ldap.conf
S.5....T  c /etc/sudoers

⑥從新安裝系統恢復數據

不少狀況下,被攻擊過的系統已經再也不可信任,所以,最好的方法是將服務器上面數據進行備份,而後從新安裝系統,最後再恢復數據便可。

數據恢復完成,立刻對系統作上面介紹的安全加固策略,保證系統安全。

做者:高俊峯
原文連接以下:
https://www.cnblogs.com/MYSQL...

最新整理的 2TB 技術乾貨:包括系統運維、數據庫、redis、MogoDB、電子書、Java基礎課程、Java實戰項目、架構師綜合教程、架構師實戰項目、大數據、Docker容器、ELK Stack、機器學習、BAT面試精講視頻等。在「 民工哥技術之路」微信公衆號對話框回覆關鍵字:1024便可獲取所有資料。

相關文章
相關標籤/搜索