最近更新日期:2006/09/06
1. 網路封包連線進入主機的流程
1.1 封包進入主機的流程 1.2 主機能作的保護:權限設定、套件更新、SELinux 2. 主機的細部權限規劃:ACL 的使用 2.1 什麼是 ACL ? 2.2 如何啟動 ACL? 2.3 ACL 的設定技巧: getfacl , setfacl 3. 一些常見的攻擊手法與主機的保護方式 4. 被入侵後的修復工作 4.1 網管人員的額外技巧與任務 4.2 入侵恢復工作 5. 重點回顧 6. 課後練習 7. 參考資料 8. 針對本文的建議:http://phorum.vbird.org/viewtopic.php?p=114062 網路封包連線進入主機的流程
在這一章當中,我們要討論的是,當來自一個網路上的連線要求想進入我們的主機時,
這個網路封包在進入主機實際取得資料的整個流程是如何?瞭解了整個流程之後,
你才會發現:原來系統操作的基本概念是如此的重要!
而你也才會瞭解要如何保護你的主機安全吶!閒話少說,咱們趕緊來瞧一瞧先。
封包進入主機的流程
在網路基礎章節當中我們談到過目前的網路架構主要是 TCP/IP 為主,
而絕大部分的網路連線是雙向的,其中又以 TCP 封包為代表。
另外,根據 Server/Client 的連線方向與 TCP/IP 的概念,我們會知道建立一條可靠的網路連線需要一組
Socket Pair 的輔助,
亦即成對的來源與目標之 IP 與 port 囉,以使連線的兩端可以順利的連接到相對的應用軟體上。
上面談到的這些都是屬於網路的基礎概念,在這裡我們要談的是,那麼要讓這個 TCP 封包順利的進入到 Linux 主機上, 然後使用 port 所對應的軟體來存取系統的檔案系統資源時,還得要經過哪些關卡呢? 舉例來說,如果你的 Linux 主機有開啟 WWW 的 port 80 網路服務,而 port 80 是由一個名稱為 httpd 的程式所啟動的,這個程式的設定檔為 httpd.conf ,那麼 Client 的連線要進入到你 Linux 主機的 WWW 時, 會經過什麼階段呢?基本上,會經過如下圖的幾個階段: 圖一、網路封包進入本機的流程順序
好了,那麼根據這些流程,你覺得我們可以如何保護自己的主機呢? 主機能作的保護: 權限設定、套件更新、SELinux
在基礎篇裡面的前面幾章我們談到很多關於檔案權限方面的注意事項,
關於目錄最重要的是那個 w (可寫入)的權限,至於對檔案來說,那個
r (可讀取) 也是非常重要的!而由前一小節的圖一我們也知道網路服務其實就是提供主機的檔案資源給 client 端來查閱就是了。
根據這樣的說法,你可以知道,如果你有某些不想要被讀取的資料在主機上面的話, 那麼將該資料的權限設定為不能被某些網路服務讀取的情況, 就能達到最基礎的保護了。所以您說檔案權限重不重要啊!很重要的!不是嗎?
鳥哥常常在上課的時候會開玩笑,說如果你只要下達一個指令,那你的系統就得要重新安裝了!
那就是:『chmod -R 777 /』,這個指令可是『極度危險』的喔!為何呢?因為系統上面本來就有很多需要被保護的資料,
例如 /etc/shadow 以及 /etc/passwd 等,尤其是 shadow 密碼檔案。雖然裡頭是加密過的資料,
不過別忘了,現在的 PC 速度實在太快了,而網路上又有太多暴力破解密碼的軟體,
如果你的 /etc/shadow 被取得後,嘿嘿!你的密碼其實就算『公開了』。那萬一你有開放某些網路服務的話,
例如可連線登入的 ssh 服務或 mail 服務,那任何人都可以使用你的主機來登入,
或者是利用你的主機來收你主機上的其他使用者的信,唉!糗大了!
再者,很多朋友在主機上面常常喜歡建立權限為 drwxrwxrwx 的目錄來提供使用者上傳資料, 這實在是很危險ㄟ!如果使用者的功力夠高的話,他可以在網路軟體如 httpd 的使用上, 來建立一些危險的 script 在你的 drwxrwxrwx 的目錄中,那如果你不小心進入到該目錄, 又不小心執行了該惡意使用者所建立的 script ,恭喜您∼中標! 另外,如果你是學校老師,為了公平與同學本身的權益起見,你會希望同學們所上傳的資料不會被其他同學所竊取。 那麼你該如何進行權限的規範?如果單純的讓學生通通上傳到單一目錄,並且沒有指定特殊的權限時, 不但某些同學的資料可能會被竊取與複製,更慘的是,可能資料會被某些惡意同學所刪除! 那可就麻煩了!所以,權限的設定真的很重要啦! 而除了傳統的權限之外,事實上目前 Linux 支援一種稱為 ACL 的額外權限控制方式, 也支援更強化安全的 SELinux ,這兩個小東西我們會在本章的後面部分繼續介紹。
很多使用者為了方便記憶,老是跟系統管理員說:『喂!我的密碼可不可以簡單一點啊?
太麻煩的我都記不住!』如果您是那個可憐的系統管理員,你該如何回應?
如果你大開方便之門,未來可是後患無窮的!舉例來說,如果你的 mail server 上面某個使用者帳號為
alex 好了,那麼他的 email address 將會是:『 alex@your.host.name 』,
那這個使用者由於使用習慣不良,他將他的 mail address 留在 Internet 上,所以很多人都知道這個 address。
知道就知道,會有什麼了不起嗎?呵呵!了不起的很!如果有個壞傢伙,他想要偷偷的收取 alex 的信, 那他就在他的收信軟體上面偷偷填上你的主機,然後偷偷輸入帳號 alex 並且輸入密碼為 alex , 如果你真的幫 alex 這個使用者建立同名的密碼,哈哈!系啊(請台語發音,謝謝)!這個 alex 永遠都收不到他的信了! 這算還好吶!如果你有開放遠端連線登入的服務,那麼壞傢伙就可以利用 alex 這個帳號與密碼來登入你的主機, 如果你沒有做好權限規劃的話,哇!整部主機的資料被偷光光!那可有的瞧的了! 所以,您說密碼不重要嗎?我可不認為!
很多朋友由於網路文章的關係,可能會拿比較舊的 Linux distribution 來作為架站的平台,
舉例來說,使用 Red Hat 9 來架站的朋友想必還是不少的。如果你真的利用舊的版本來進行網站的架設,
而且還對 Internet 開放服務的話,那麼你的主機將會在不到一天的時間內被『綁架』的!
為什麼呢?因為套件軟體都是可能有漏洞的,如果你沒有補洞的話.....
有些朋友認為:『我的密碼設定的嚴格一點,應該就好了吧?』真的嗎?讓我們瞧一瞧圖一的流程, 第三個步驟是否使用到 httpd 這個程式的功能了,萬一這個程式有問題怎麼辦? 舉例來說,酷學園的朋友曾經在他舉辦的研討會當中露一手如何綁架沒有修補漏洞的 Linux 系統, 利用的就是 httpd 這個軟體的漏洞,整個入侵的過程沒有花費一分鐘以上! 而且他取到的可是 root 的權限吶!不是什麼阿貓阿狗的喔! 而且他完全沒有輸入任何密碼,使用的入侵程式則是由 Internet 上面取得的。 在上頭這個例子鳥哥不是要說該朋友的功力,而是要提醒大家,套件修補的重要性! 要取得破解程式的管道實在太多了,但如果你都有在最短的時間內取得套件的更新的話, 那麼至少該破解程式對你的系統就不會生效!你的主機自然就會比較安全些。 而這個問題在所有的作業系統上面都是存在的! Windows 系統也是每個月必須要推出他們的套件程式修補, 否則一樣會被攻擊或入侵啊!不過 Linux 的套件漏洞修補要快多了!
在最新的 Linux 2.6 版核心上所發展的 distributions 目前預設都會啟動一個名為 SELinux 的核心模組,
這個 SELinux 必須要在開機載入核心時就得要載入,那這個玩意兒是啥咚咚?
SELinux 是 Security Enhanced Linux (安全加強的 Linux) 的縮寫,
他並不是一個防火牆的軟體,而是一個『針對檔案系統權限作更細部規劃的一個模組』。
傳統的 Linux 權限是分為三種身份 (owner, group, others) 以及三種權限 (r, w, x), 但事實上,這三種身份的三種權限組合並無法有效的管理所有系統上的 daemon 存取資料時所需要的行為。 因此美國國家安全局便發展出這個可以更細部規劃檔案權限功能的 SELinux 了。 由於 SELinux 主要是進行檔案系統的細部權限設定,所以想要使用 SELinux 的配置時, 需要對 Linux 的檔案系統以及基礎的作業系統概念要很清楚,否則將會使得很多的網路服務無法正確的啟用系統資源, 導致你的主機很多服務無法存取系統資料!因此,對於我們剛接觸到 Linux 架站的朋友來說, 建議你先關閉 SELinux ,等到兩三年後對於 Linux 有很深的概念後, 再來嘗試配置 SELinux 這個有趣的咚咚! 也就是說,如果你沒有關閉 SELinux 的話,那麼你就得要針對 SELinux 進行檔案權限的額外配置, 否則你的網路服務就不可能會正常的啟動!那麼如何關閉 SELinux 呢?你可以這樣做:
主機的細部權限規劃:ACL 的使用
在前一小節當中我們提到 Linux 系統的權限是很重要的,偏偏傳統的權限僅有三種身份、三種權限而已,
配合 chmod,
umask,
chown,
chgrp
等指令來進行使用者與群組相關權限的設定。如果要進行比較複雜的權限設定時,
例如某個目錄要開放給某個特定的使用者來使用時,傳統的 owner,group,others 的權限方法可能就無法滿足了。
不過還好,我們有 ACL 這個玩意兒可以使用!這玩意挺有趣的,底下我們就來談一談:
什麼是 ACL?
ACL 是 Access Control List 的縮寫,主要的目的是在提供傳統的
owner,group,others 的 read,write,execute 權限之外的細部權限設定。ACL 可以針對單一使用者,
單一檔案或目錄來進行 r,w,x 的權限規範,對於需要特殊權限的使用狀況非常有幫助。
由於 ACL 是傳統的 Unix-like 作業系統權限的額外支援項目,因此要使用 ACL 必須要有檔案系統的支援才行。 目前絕大部分的檔案系統都有支援 ACL 的功能,包括 ReiserFS, EXT2/EXT3, JFS, XFS 等等。 在 SuSE 這個版本當中,預設是有啟動 ACL 控制的,不過在 CentOS 則預設沒有啟動 ACL。 所以等一下要使用 ACL 的功能時,你必須要先啟動你系統 filesystem 的支援才行喔! 那 ACL 主要可以針對哪些方面來控制權限呢?他主要可以針對幾個項目:
如何啟動 ACL
要讓你的檔案系統支援 ACL 非常的簡單!假如要讓你的 /home 支援 ACL 的話,可以直接這樣做:
ACL 的設定技巧: getfacl, setfacl
好了,讓你的 filesystem 啟動 ACL 支援後,接下來該如何設定與觀察 ACL 呢?
很簡單,利用這兩個指令就可以了:
先讓我們來瞧一瞧 setfacl 如何使用吧!
雖然這樣就能夠設定好一個 ACL 控制項目,不過你還需要瞭解到在 ACL 內的 mask 所代表的意義喔!
在上面的那個小案例當中,我們並沒有去設定這個 mask,mask 需要與使用者的權限進行邏輯運算 (AND) 後,
才是有效的權限吶(effective permission)!
舉例來說,如果你覺得你的目錄要讓所有的人都暫時僅能讀取不能寫入時,可以將 ACL 內的 mask 設定為 rx 即可, 那其他人就不需要再額外的設定了!看看底下這個例子:
一些常見的攻擊手法與主機的保護方式
我們由圖一瞭解到資料傳送到本機時所需要經過的幾道防線後,
現在您應該比較清楚為何我們常常在基礎篇裡面一直談到設定正確的權限可以保護您的主機了吧?
那麼除了前面的談到的主機基本保護之外,
通常人家是如何攻擊你的 Linux 主機呢?底下我們就來談一談吧!
先瞭解一下人家是如何攻擊你的,我們才有辦法想到如何防禦,您說是吧?!
由於很多人喜歡用自己的名字來作為帳號資訊,因此帳號的取得是很容易的!
舉例來說,如果你的朋友將你的 email address 不小心洩漏出去,例如: dmtsai@your.host.name 之類的樣式,
那麼人家就會知道你有一部主機,名稱為 your.host.name,且在這部主機上面會有一個使用者帳號,
帳號名稱為 dmtsai ,之後這個壞傢伙再利用某些特殊軟體例如 nmap
來進行你主機的 port scan 之後,嘿嘿!他就可以開始透過你主機有啟動的軟體功能來猜你這個帳號的密碼了!
另外,如果你常常觀察你的主機登錄檔,那你也會發現如果你的主機有啟動 Mail server 的服務時, 你的登錄檔就會常常出現有些怪傢伙嘗試以一些奇怪的常見帳號在試圖猜測你的密碼, 舉例來說像:admin, administrator, webmaster .... 之類的帳號,嘗試來竊取你的私人信件。 如果你的主機真的有這類的帳號,而且這類的帳號還沒有良好的密碼規劃,那就容易『中標』! 唉!真是麻煩!所以我們常講,系統帳號千萬不能給予密碼,容易被猜密碼啊! 這種猜密碼的攻擊方式算是最早期的入侵模式之一了,攻擊者知道你的帳號,或者是可以猜出來你的系統有哪些帳號, 欠缺的就只是密碼而已, 因此他會『很努力的』去猜你的密碼,此時,你的密碼規劃如果不好的話,很容易就被攻擊了! 主機也很容易被綁架啊!所以,良好的密碼設置習慣是很重要的。 不過這種攻擊方式比較費時,因為目前很多軟體都有密碼輸入次數的限制, 如果連續輸入三次密碼還不能成功的登入,那該次連線就會被斷線! 所以,這種攻擊方式日益減少,目前偶而還會看到就是了!這也是初級 cracker 會使用的方式之一。 那我們要如何保護呢?基本方式是這樣的:
由圖一裡面的第三個步驟中,我們知道如果你的主機有開放網路服務時,
就必須有啟動某個網路軟體嘛!我們也知道由於軟體可能撰寫方式的問題,可能產生一些會被 cracker
亂用的臭蟲程式碼,而這些臭蟲程式碼由於產生問題的大小,有分為 bug (臭蟲,可能會造成系統的不穩定或當機) 與
Security (安全問題,程式碼撰寫方式會導致系統的使用權限被惡意者所掌握) 等問題。
當程式的問題被公布後,某些較高階的 cracker 會嘗試撰寫一些針對這個漏洞的攻擊程式碼, 並且將這個程式碼放置到 cracker 常去的網站上面,藉以推銷自己的『功力』..... 鳥哥要提醒的是,這種程式碼『是很容易被取得的』。 當更多『盈盈美黛子(台語,閒閒沒事幹之意)』取得這些程式碼後,他可能會想要『試一試這個攻擊程式的威力』, 所以就拿來『掃射』一番,如果你八字比較輕,或者當天星座學家說你比較倒楣時, 可能就會被不小心的攻擊到...... 這種攻擊模式是目前最常見的,因為攻擊者只要拿到攻擊程式就可以進行攻擊了, 『而且由攻擊開始到取得你系統的 root 權限不需要猜密碼, 不需要兩分鐘,就能夠立刻入侵成功』,所以『盈盈美黛子』們最愛的就是這個咚咚了。 但這個玩意兒本身是靠『你主機的程式漏洞』來攻擊的,所以,如果你的主機隨時保持在即時更新的階段, 或者是關閉大部分不需要的程式,那就可以躲避過這個問題。因此,你應該要這樣做:
社交工程 (Social Engineering) 指的其實很簡單,就是透過人與人的互動來達到『入侵』的目的!
@_@!人與人的互動可以入侵你的主機?鳥哥在呼嚨你嗎?當然不是。
近日在台灣的社會你不是常看到某些人會以『退稅、中獎、花小錢買貴重物品』等名義來欺騙善良老百姓, 讓老百姓掏出口袋裡的金錢給那些可惡的金光黨嗎?社交工程也是類似的方法。在大公司裡面, 或許你可能會接到這樣的電話:『我是人事部門的經理,我的帳號為何突然間不能登入了? 你給我看一看,恩?乾脆直接幫我另建一個帳號,我告訴你我要的密碼是....』。如果你一時不查給他帳號密碼的話, 你的主機可能就這樣被綁走了∼ 社交工程的欺騙方法多的是,包括使用『好心的 email 通知』、『警告信函』、『中獎單』等等, 在在都是要欺騙你的帳號密碼,有的則利用釣魚方式來欺騙你在某些惡意網站上面輸入你的帳號密碼, 很討厭的啦!那要如何防範呢?
啥?除了主動攻擊之外,還有所謂的被動攻擊喔?沒錯啊,『系金ㄟ』!那如何作被動攻擊呢?
那就得要由『惡意網站』講起了。如果你喜歡上網隨意瀏覽的話,那麼有的時候可能會連上一些廣告很多,
或者是一堆彈出式視窗的網站,這些網站有時還會很好心的『提供你很多好用的軟體自動下載與安裝』的功能,
如果該網站是你所信任的,例如 Red Hat, CentOS, Windows 官網的話,那還好,
如果是一個你也不清楚他是幹嘛的網站,那你是否要同意下載安裝該軟體?
如果你常常在注意一些網路危機處理的相關新聞時,常會發現 Windows 的瀏覽器 (IE) 有問題, 有時則是全部的瀏覽器 (Firefox, Netscap, IE...) 都會出現問題。那你會不會覺得奇怪啊, 怎麼『瀏覽器也會有問題?』這是因為很多瀏覽器會主動的答應對方 WWW 主機所提供的各項程式功能, 或者是自動安裝來自對方主機的軟體,有時瀏覽器還可能由於程式發生安全問題, 讓對方 WWW 瀏覽器得以傳送惡意程式碼給你的主機來執行,嘿嘿!中標! 那你又會想啊,那我幹嘛瀏覽那樣的惡意網站?喝!總是會有些粗心大意的時候啊! 如果你今天不小心收到一個 email ,裡面告訴你你的銀行帳號有問題, 希望你趕緊連上某個網頁去看看你的帳號是否在有問題的行列中,你會不會去? 如果今天有個網路消息說某某網頁在提供大特價商品,那你會不會去碰碰運氣? 都是可能的啊!不過,這也就很容易被對方攻擊到了。 那如何防備啊?當然建立良好的習慣最重要了:
rootkit 意思是說可以取得 root 權限的一群工具組 (kit),就如同前面主動攻擊程式漏洞的方法一樣,
rootkit 主要也是透過主機的程式漏洞。不過, rootkit 也會透過社交工程讓使用者下載、安裝 rootkit 軟體,
結果讓 cracker 得以簡單的綁架對方主機啊!
rootkit 除了可以透過上述的方法來進行入侵之外,rootkit 還會偽裝或者是進行自我複製, 舉例來說,很多的 rootkit 本身就是蠕蟲或者是木馬間諜程式。蠕蟲會讓你的主機一直發送封包向外攻擊, 結果會讓你的網路頻寬被吃光光,例如 2001-2003 年間的 Nimda, Code Red 等等;至於木馬程式 (Trojan Horse) 則會對你的主機進行開啟後門 (開一個 port 來讓 cracker 主動的入侵),結果就是....綁架、綁架、綁架! rootkit 其實挺不好追蹤的,因為很多時候他會主動的去修改系統觀察的指令, 包括 ls, top, netstat, ps, who, w, last, find 等等,讓你看不到某些有問題的程式, 如此一來,你的 Linux 主機就很容易被當成是跳板了!有夠危險!那如何防備呢?
這類型的攻擊中文翻譯成『阻斷式攻擊』,這種攻擊法也很要命,而且方法有很多,最常見的就屬 SYN Flood
攻擊法了!還記得我們在網路基礎裡面提到的,當主機接收了一個帶有
SYN 的 TCP 封包之後,就會啟用對方要求的 port 來等待連線,並且發送出回應封包 (帶有 SYN/ACK 旗標的
TCP 封包),並等待 Client 端的再次回應。
好了,在這個步驟當中我們來想一想,如果 cient 端在發送出 SYN 的封包後,卻將來自 Server 端的確認封包丟棄,那麼您的 Server 端就會一直空等,而且 Client 端可以透過軟體功能,在短短的時間內持續發送出這樣的 SYN 封包,那麼您的 Server 就會持續不斷的發送確認封包,並且開啟大量的 port 在空等∼呵呵!等到全部主機的 port 都啟用完畢,那麼.....系統就掛了! 更可怕的是,通常攻擊主機的一方不會只有一部!他會透過 Internet 上面的僵屍主機 (已經成為跳板,但網站主卻沒有發現的主機) 發動全體攻擊,讓你的主機在短時間內就立刻掛點。 這種 DoS 的攻擊手法比較類似『玉石俱焚』的手段, 他不是入侵您的系統,而是要讓您的系統掛點呢! 最常被用來作為阻斷式服務的網路服務就是 WWW 了,因為 WWW 通常得對整個 Internet 開放服務。 這種攻擊方法也是最難處理的,因為要嘛就得要系統核心有支援自動抵擋 DoS 攻擊的機制, 要嘛您就得要自行撰寫偵測軟體來判斷!真是麻煩啊∼而除非您的網站非常大, 並且『得罪不少人』,否則應該不會被 DoS 攻擊啦! ^_^
上面提到的都是比較常見的攻擊方法,是還有一些高竿的攻擊法啦,
不過那些攻擊法都需要有比較高的技術水準,例如 IP 欺騙。他可以欺騙你主機告知該封包來源是來自信任網域,
而且透過封包傳送的機制,由攻擊的一方持續的主動發送出確認封包與工作指令。
如此一來,你的主機可能就會誤判該封包確實有回應,而且是來自內部的主機。
不過我們知道網際網路是有路由的,而每部主機在每一個時段的 ACK 確認碼都不相同, 所以這個方式要達成可以登入,會比較麻煩,所以說,不太容易發生在我們這些小型主機上面啦! 不過你還是得要注意一下說:
要讓你的系統更安全,沒有『三兩三』是沒辦法達成的!我們也一直鼓吹,
『維護網站比架設網站還要重要』的觀念!因為『一人得道雞犬升天』,同樣的道理:『一人中標全員掛點』,
不要以為你的主機沒有啥重要資料,被入侵或被植入木馬也沒有關係,
因為我們的伺服器通常會對內部來源的主機規範的較為寬鬆,如果你的主機在公司內部,
但是不小心被入侵的話,那麼貴公司的伺服器是否就會暴露在危險的環境當中了?
另外,在蠕蟲很『發達』的年代,我們也會發現只要區域網路裡面有一部主機中標, 整個區域網路就會無法使用網路了,因為頻寬已經被蠕蟲塞爆! 如果老闆發現他今天沒有辦法收信了,但無法收信的原因並非伺服器掛點, 而是因為內部人員的某部個人電腦中了蠕蟲,而那部主機中蠕蟲的原因只是因為該使用者不小心去看了一下色情網站, 你覺得老闆會高興的跟該員工一起看色情網站還是 fire 掉該人員? 所以啊,主機防護還是很重要的!不要小看了!提供幾個方向給大家思考看看吧:
被入侵後的修復工作
如果你的主機被入侵的話,而你也由於瞭解到主機監控的需要,所以在最短的時間內發現此一事件,
那麼該如何針對這個被入侵的主機來修復?那如果你要修復的話,你這個網管人員還需要哪些額外的技能?
底下我們就來談一談。
網管人員的額外技巧與任務
從前一小節的分析當中,您會發現網管還真的是挺累的,他需要對於作業系統有一定程度的熟悉,
對於程序的運作 (process) 與權限概念,則需要更瞭解!否則就麻煩了!那除了作業系統的基本概念之外,
咱們網管還需要啥特殊技巧呢?當然需要啊!其實一部主機最常發生問題的狀況,
都是由『內部的網路誤用所產生的』,所以啊,你只管好主機而已是『沒有辦法杜絕問題』的啦!
底下就來談談你還需要啥技巧呢?
我的天吶,還要知道什麼是需要保護的呀?呵呵!沒錯,就是如此!由剛剛我們知道的主機入侵方法當中,
不難瞭解,只要有人坐在您的主機前面,那麼任何事都有可能會發生!因此,如果您的主機相當的重要,
請『不要讓任何人靠近!』您可以參考一下湯姆克魯斯在『不可能的任務』裡面要竊取一部電腦內的資料的困難度! ^_^""
這可不是開玩笑的,什麼是黑客呀!這是因為原本在西部電影當中,壞人都是戴黑色帽子的,
所以之前的人們就稱網路攻擊者為 Black hats 啦!在預防這方面的攻擊者時,除了嚴格管制網路的登入之外,
還需要特別控制原本您的主機中的人物!就我們小網站來說,不要以為好朋友就隨便他啦!
他說要指定密碼是跟他的帳號相同比較好記,您就答應他!等到人家用他的密碼登入您的主機,並破壞您的主機,
那可就得不償失了!如果是大企業的話,那麼員工使用網路時,也要分等級的呢! ^_^
沒什麼好講的,除了多關心,還是多關心!仔細的分析登錄檔,常常上網看看最新的安全通告,這都是最基礎的!
還包含了以最快的速度更新有問題的套件!因為,越快更新您的套件,就越快可以杜絕黑客的入侵!
這部份比較麻煩一些啦!因為您必需要不斷的測試測試再測試!以取得最佳化的網路安全設定!
怎麼說呢?要曉得的是,如果您的防火牆規則訂定得太多的時候,
那麼一個資料封包就要經過越多的關卡才能完整的通過防火牆,以進入到主機內部!嘿嘿!
這可是相當的花費時間的!會造成主機的效能不彰!特別留意這一點呢!
就像剛剛說的,您必需要隨時維護您的主機,因為,防火牆不是一經設定之後就不用在再他了!
因為,再嚴密的防火牆,也會有漏洞的!這些漏洞包括防火規則設定不良、利用較新的偵測入侵技術、
利用您的舊軟體的服務漏洞等等!所以,必需要即時維護您的主機呀!這方面除了分析 log files
之外,也可以藉由即時偵測來進行這個工作!例如 PortSentry 就是蠻不錯的一套軟體呢!
不是所有的人都是電腦網路高手,尤其雖然現在資訊爆炸但是仍然有很多的機會會遇到電腦白癡呀!
這個時候,要曉得的是,我們對於內部網域通常沒有太多的規範,那如果他用內部的電腦去做壞事怎麼辦?
有時候還是無心的∼挖哩∼所以說,需要特別的教育訓練課程呀!這也是公司需要網管的主因之一!
天有不測風雲,人有旦夕禍福呀!什麼人都不知道什麼時候會有大地震、我們也都不知道什麼時候會突然的硬碟掛掉去∼
所以說,完善的備份計畫是相當重要的!此外,大概沒有人會說他的主機是 100% 的安全吧!
那如果你的系統被入侵,造成資料的損毀時,你要如何復原你的主機啊?呵呵!一個良好的網站管理人員,
無時無刻都會進行重要資料的備份的!很重要啊!
這一部份請參考一下基礎學習篇之
Linux 主機備份的內容吧!
本書後續的遠端連線伺服器 SSH 章節內也會提到一個很棒的 rsync 工具,您可以瞧瞧!
入侵恢復工作
所謂『百密一疏』啊,人不是神,總會有考慮不週的情況,萬一您的主機就因為這『一疏』導致被入侵了,
那該怎麼辦?由上面的說明當中,我們知道『木馬』是很嚴重的,因為他會在您的系統下開個後門(Back
door)讓攻擊者可以登入您的主機,而且還會竄改您 Linux 上面的程式,讓您找不到該木馬程式!怎麼辦?
很多朋友都習慣『反正只要將 root 的密碼改回來就好了』 這樣的觀點,事實上,那樣一部主機還是有被做為中繼站的危險啊!所以, 萬一您的主機被入侵了,最好的方法還是『重新安裝Linux 』會比較乾淨! 那該如何重新安裝呢?很多朋友一再地安裝,卻一再地被入侵∼為什麼呢?因為他沒有『記取教訓』啊!呵呵! 底下我們就來談一談,一部被入侵的主機應該如何修復比較好?
重點回顧
課後練習
可以使用 top, sar, free, ps -aux, uptime, last 等功能去查詢系統的相關資訊喔!然後再以 kill 之類的指令刪除;
因為 SUID 是 4000 這個權限的模樣,所以我可以這樣做:
find / -perm +4000
利用最簡易的 MD5 編碼來測試一下,例如『 md5sum 套件名稱』,再比對與原始套件釋出的 MD5 數據是否相同!?
這是由於您的 filesystem 沒有啟用 ACL 支援,或者是系統的核心不支援。
請先使用 mount -o remount,acl /mount_point 測試看能否支援 ACL ,若不支援時,則可能是由於核心版本太舊了。
除了使用 setfacl -m u:dmtsai:rwx /home/project 之外,還需要設定 setfacl -m m:rwx /home/project ,
因為 ACL 在目錄方面,必須透過使用者權限及 mask 的邏輯運算後才能生效!
SELinux 並非防火牆,他是用來作為更細部權限設定的一個核心模組。
密碼的設定規則在 /etc/login.defs 裡面!至於密碼檔案在 /etc/shadow 內!
找出問題、重新安裝、漏洞修補、資料還原!請參考本章最後一節的說明。
參考資料
2002/08/12:第一次完成日期! 2003/08/23:重新編排與增加重點回顧、課後練習 2006/08/31:將舊的文章移動到此處。 2006/09/06:增加 SELinux 的簡單說明,增加 ACL 的控制項目! |
||||||||||||