歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

淺談Linux系統的安全保護

無論你是Linux的普通桌面用戶還是管理多個服務器的系統管理員,你都面臨著同樣的問題:日益增加的各種威脅。Linux是一個開放式系統,可以在網絡上找到許多現成的程序和工具,這既方便了用戶,也方便了黑客,因為他們也能很容易地找到程序和工具來潛入Linux系統,或者盜取Linux系統上的重要信息。

“知己知彼,百戰不殆”。作為一個好的系統管理者,要保障整個系統的安全運行.最好的方法是了解攻擊的工作原理和機制,了解攻擊中使用了哪些工具,如何操作入侵等等。並知道如何從部署linux來降低風險。

一、蛛絲馬跡:從日志著手

日志記錄了系統每天發生的事情,可以通過他來檢查錯誤發生的原因或者攻擊者留下的痕跡,還可以實時的監測系統狀態,監測和追蹤侵入者等等。所以對於Linux系統而言,日志非常重要,最好單獨建立一個日志服務器來存放日志。

TIPS:在Linux系統中,有三個主要的日志子系統:    (1)連接時間日志。由多個程序執行,把紀錄寫入到“/var/log/wtmp”和/“var/run/utmp”,Login等程序更新Wtmp和Utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。

(2)由系統內核執行的進程統計。當一個進程終止時,往統計文件中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。

(3)錯誤日志。由Syslogd(8)執行,各種系統守護進程、用戶程序和內核向文件“/var/log/messages”報告值得注意的事件。另外有許多UNIX程序創建日志。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日志。

從攻擊角度而言,服務器上的安全文件十分重要,若你關閉外部網絡對你的服務器的訪問,攻擊者總是試圖連接服務器上的若干個端口,但是由於服務器關閉了Inetd啟動的所有服務,所以LOG系統記錄下了這些訪問拒絕。常用的日志文件如下:    access-log 紀錄HTTP/web的傳輸    acct/pacct 紀錄用戶命令    aculog 紀錄MODEM的活動    btmp 紀錄失敗的紀錄    lastlog 最近幾次成功登錄和最後一次不成功的登錄    messages 從syslog中記錄信息    sudolog 紀錄使用sudo發出的命令    sulog 紀錄使用su命令的使用    syslog 從syslog中記錄信息    utmp 紀錄當前登錄的每個用戶    wtmp 用戶每次登錄進入和退出時間的永久紀錄    xferlog 紀錄FTP會話

二、亡羊補牢:加強防衛

一方面要積極尋找本操作系統的常見漏洞並及時升級廠商所公布的補丁。比如,可以修改Inetd.conf文件以關閉某些服務,重新啟動後再用NMAP掃描,在攻擊者發現其以前更早的發現自己的系統的漏洞,並加以彌補。    另一方面要加強密碼保護。攻擊密碼的手段主要有:字典攻擊(Dictionaryattack)、混合攻擊(Hybridattack)、蠻力攻擊(Bruteforceattack)。最好的防衛方法便是嚴格控制進入特權,即使用有效的密碼。主要包括密碼應當遵循字母、數字、大小寫(因為Linux對大小寫是有區分)混合使用的規則,如加入“#”或“%”或“$”這樣的特殊字符以添加復雜性。

1.保持最新的系統核心

由於Linux流通渠道很多,而且經常有更新的程序和系統補丁出現,因此,為了加強系統安全,一定要經常更新系統內核。

Kernel是Linux操作系統的核心,它常駐內存,用於加載操作系統的其他部分,並實現操作系統的基本功能。由於Kernel控制計算機和網絡的各種功能,因此,它的安全性對整個系統安全至關重要。

早期的Kernel版本存在許多眾所周知的安全漏洞,而且也不太穩定,只有2.0.x以上的版本才比較穩定和安全,新版本的運行效率也有很大改觀。在設定Kernel的功能時,只選擇必要的功能,千萬不要所有功能照單全收,否則會使Kernel變得很大,既占用系統資源,也給黑客留下可乘之機。

在Internet上常常有最新的安全修補程序,Linux系統管理員應該消息靈通,經常光顧安全新聞組,查閱新的修補程序。

2.增強安全防護工具

SSH是安全套接層的簡稱,它是可以安全地用來取代rlogin、rsh和rcp等公用程序的一套程序組。SSH采用公開密鑰技術對網絡上兩台主機之間的通信信息加密,並且用其密鑰充當身份驗證的工具。

由於SSH將網絡上的信息加密,因此它可以用來安全地登錄到遠程主機上,並且在兩台主機之間安全地傳送信息。實際上,SSH不僅可以保障Linux主機之間的安全通信,Windows用戶也可以通過SSH安全地連接到Linux服務器上。

很多Linux發行版都包含一些非常使用的小工具,lsof就是其中一個。Lsof能列出當前系統打開的所有文件。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。通過lsof工具能夠查看哪些進程正在使用哪些端口,它的進程ID以及是誰在運行它。如果你從中發現了一些異常,那麼你肯定值得仔細檢查一番。

3.限制超級用戶的權力

我們在前面提到,root是Linux保護的重點,由於它權力無限,因此最好不要輕易將超級用戶授權出去。但是,有些程序的安裝和維護工作必須要求有超級用戶的權限,在這種情況下,可以利用其他工具讓這類用戶有部分超級用戶的權限。Sudo就是這樣的工具。

Sudo程序允許一般用戶經過組態設定後,以用戶自己的密碼再登錄一次,取得超級用戶的權限,但只能執行有限的幾個指令。

 

4.設定用戶賬號的安全等級

除密碼之外,用戶賬號也有安全等級,這是因為在Linux上每個賬號可以被賦予不同的權限,因此在建立一個新用戶ID時,系統管理員應該根據需要賦予該賬號不同的權限,並且歸並到不同的用戶組中。

在Linux系統上的tcpd中,可以設定允許上機和不允許上機人員的名單。其中,允許上機人員名單在/etc/hosts.allow中設置,不允許上機人員名單在/etc/hosts.deny中設置。設置完成之後,需要重新啟動inetd程序才會生效。此外,Linux將自動把允許進入或不允許進入的結果記錄到/rar/log/secure文件中,系統管理員可以據此查出可疑的進入記錄。

每個賬號ID應該有專人負責。在企業中,如果負責某個ID的職員離職,管理員應立即從系統中刪除該賬號。很多入侵事件都是借用了那些很久不用的賬號。

在用戶賬號之中,黑客最喜歡具有root權限的賬號,這種超級用戶有權修改或刪除各種系統設置,可以在系統中暢行無阻。因此,在給任何賬號賦予root權限之前,都必須仔細考慮。

Linux系統中的/etc/securetty文件包含了一組能夠以root賬號登錄的終端機名稱。例如,在RedHatLinux系統中,該文件的初始值僅允許本地虛擬控制台(rtys)以root權限登錄,而不允許遠程用戶以root權限登錄。最好不要修改該文件,如果一定要從遠程登錄為root權限,最好是先以普通賬號登錄,然後利用su命令升級為超級用戶。

使用口令老化。口令老化一種增強的系統口令生命期認證機制,雖然它會一定程序的削弱用戶使用的便利性,但是它能夠確保用戶的口令定期更換,這是一種非常好的安全措施。因此,如果一個帳戶受到了黑客的攻擊並且沒有被發現,但是在下一個密碼更改周期,他就不能再訪問該帳號了。

5.物理防護

雖然大多數的攻擊是依靠網絡實施的,而黑客取得物理訪問你的計算機的機會也非常渺茫,但這並不意味你無需設防。

給引導程序加上密碼保護,確保在你離開電腦時它總是處於鎖定狀態。並且你應該完全肯定沒有人可以從外部設備啟動你的服務器。

6.部署防火牆

這聽起來像一條最“明顯”的建議(就像使用健壯密碼一樣),但令人驚奇地是,很少有人真正去設置防火牆。即使你使用的路由器可能內置了防火牆,但是在Linux系統中部署一個軟件防火牆是一件非常輕松的事情,你能夠從中受益匪淺。

圖形防火牆,例如最近比較流行的Firestarter,非常適合定義口轉發和監測活動規則。

       三、反擊:從系統開始

       攻擊者具有對Linux服務器的全部控制權,可以在任何時刻都能夠完全關閉甚至毀滅此網絡。可以采取的反擊措施有:備份重要的關鍵數據;改變系統中所有口令,通知用戶更新口令;隔離該網段,使攻擊行為僅出現在一個小范圍內;允許行為繼續進行。如有可能,不要急於把攻擊者趕出系統,爭取收集證據;進行各種嘗試,識別出攻擊源

本文出自 “無痕” 博客,請務必保留此出處http://hucwuhen.blog.51cto.com/6253667/1283317

Copyright © Linux教程網 All Rights Reserved