網路安全與主機基本防護: 限制埠口、網路升級與 selinux

38
第第 第第 第第 第第 第第 第第 07 第第第第第第第第第第第第第第第 第第第第第 SELinux

Upload: zuriel

Post on 23-Feb-2016

53 views

Category:

Documents


0 download

DESCRIPTION

07. 網路安全與主機基本防護: 限制埠口、網路升級與 SELinux. 封包進入主機的流程. P.7-2. 請參閱書籍. 經過防火牆的分析: 封包過濾防火牆: IP Filtering 或 Net Filter 第二層防火牆: TCP Wrappers 服務 (daemon) 的基本功能: 如果 httpd 這支程式本來就有問題的話,那麼 client 端將可直接利用 httpd 軟體的漏洞來入侵主機,而不需要取得主機內 root 的密碼! SELinux 對網路服務的細部權限控制: 使用主機的檔案系統資源: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

第二 篇主機的簡易資安防護措施

07

網路安全與主機基本防護: 限制埠口、網路升級與 SELinux

Page 2: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

封包進入主機的流程

P.7-2請參閱書籍

Page 3: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

1. 經過防火牆的分析: 封包過濾防火牆: IP Filtering 或 Net Filter 第二層防火牆: TCP Wrappers

2. 服務 (daemon) 的基本功能:如果 httpd 這支程式本來就有問題的話,那麼 client 端將可直接利用 httpd 軟體的漏洞來入侵主機,而不需要取得主機內 root 的密碼!

3. SELinux 對網路服務的細部權限控制:4. 使用主機的檔案系統資源:

你的網頁資料的權限當然就是要讓 httpd 這支程式可以讀取才行啊!P.7-2~4請參閱書籍

Page 4: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

常見的攻擊手法與相關保護 取得帳號資訊後猜密碼 利用系統的程式漏洞『主動』攻擊 利用社交工程作欺騙 利用程式功能的『被動』攻擊 蠕蟲或木馬的 rootkit DDoS 攻擊法 (Distributed Denial of Service)

P.7-4~8請參閱書籍續下頁

Page 5: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

小結語1. 建立完善的登入密碼規則限制; 2. 完善的主機權限設定; 3. 設定自動升級與修補軟體漏洞、及移除危險軟體; 4. 在每項系統服務的設定當中,強化安全設定的項目; 5. 利用 iptables, TCP_Wrappers 強化網路防火牆; 6. 利用主機監控軟體如 MRTG 與 logwatch 來分析主機狀況與登錄檔;

P.7-9請參閱書籍

Page 6: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

主機能作的保護:軟體更新、減少網路服務、啟動 SELinux

P.7-9~11請參閱書籍

Page 7: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

網路自動升級軟體CentOS 的 yum 軟體更新、映射站使用的原理我們曾經在基礎篇裡面談過 yum 了,基本上他的原理是,我們的 CentOS 會跑到 yum 伺服器上頭,下載了官方網站釋出的 RPM 表頭清單資料,該資料除了記載每個 RPM 軟體的相依性之外,也說明了 RPM 檔案所放置的容器 (repository) 所在。因此透過分析這些資料,我們的 CentOS 就能夠直接使用 yum 去下載與安裝所需要的軟體了!詳細圖示與流程有點像這樣:

P.7-11~13請參閱書籍續下頁

Page 8: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

1. 先由設定檔判斷 yum server 所在 IP 位址;

2. 連接到 yum server 後,先下載新的 RPM 檔案的表頭資料; 3. 分析比較使用者所欲安裝 / 升級的檔案,並提供使用者確認; 4. 下載使用者選擇的檔案到系統中的

/var/cache/yum ,並進行實際安裝;P.7-14請參閱書籍

Page 9: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

yum search " 一些關鍵字 " yum list (� 可列出所有的軟體檔名 )

P.7-15~19請參閱書籍

Page 10: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

請設定一下工作排程,讓你的 CentOS 可以每天自動更新系統 答:可以使用『 crontab -e 』來動作,也可以編輯『 vim /etc/crontab 』來動作,由於這個更新是系統方面的,所以鳥哥習慣使用 vim /etc/crontab 來進行指令的說明。其實內容很簡單:

這樣就可以自動更新了,時間訂在每天的凌晨 5:40 。

立刻實作

P.7-21請參閱書籍

Page 11: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

挑選特定的映射站:修改 yum 設定檔與清除 yum 快取雖然 yum 是你的主機能夠連線上 Internet 就可以直接使用的,不過,由於 CentOS 的映射站台可能會選錯,舉例來說,我們在台灣,但是 CentOS 的映射站台卻選擇到了大陸北京或者是日本去,有沒有可能發生啊!有啊!鳥哥教學方面就常常發生這樣的問題,要知道,我們連線到大陸或日本的速度是非常慢的呢!那怎辦? 當然就是手動的修改一下 yum 的設定檔就好囉!

P.7-21請參閱書籍

Page 12: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

在台灣,鳥哥熟悉的 CentOS 映射站台主要有崑山科大、高速網路中心與義守大學。在學術網路之外,鳥哥近來比較偏好高速網路中心,似乎更新的速度比較快,而且連接台灣學術網路也非常快速哩!因此,鳥哥底下建議台灣的朋友使用高速網路中心的 ftp 主機資源來作為 yum 伺服器來源喔!不過,因為鳥哥的機器很多都在崑山科大,所以在學術網路上,使用的反而是崑山科大的 FTP 囉。目前高速網路中心對於 CentOS 所提供的相關網址如下:

http://ftp.twaren.net/Linux/CentOS/6/ � http://ftp.twaren.net/Linux/CentOS/6/os/x86_64/

為什麼在上述的網址內呢?有什麼特色!最重要的特色就是那個『 repodata 』的目錄!該目錄就是分析 RPM 軟體後所產生的軟體屬性相依資料放置處!

P.7-21請參閱書籍

Page 13: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-22~23請參閱書籍

Page 14: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-24請參閱書籍

Page 15: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

限制連線埠口 (port)

什麼是 port 伺服器端啟動的監聽埠口所對應的服務是固定的 用戶端啟動程式時,隨機啟動一個大於 1024 以上的埠口 一部伺服器可以同時提供多種服務 共 65536 個 port

P.7-25~26請參閱書籍

Page 16: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

埠口的觀察: netstat, nmap nmap

如果你要偵測的設備並沒有可讓你登入的作業系統時,那該怎麼辦?舉例來說,你想要瞭解一下公司的網路印表機是否有開放某些協定時,那該如何處理啊?現在你知道 netstat 可以用來查閱本機上面的許多監聽中的通訊協定,那例如網路印表機這樣的非本機的設備,要如何查詢啊?呵呵!用 nmap 就對了!

P.7-27~28請參閱書籍

Page 17: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-29請參閱書籍

Page 18: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

我們知道系統的 Telnet 服務通常是以 super daemon 來控管的,請您啟動您系統的 telnet 試看看。立刻實作

P.7-32請參閱書籍

Page 19: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

『很多的系統服務是必須要存在的,否則系統將會出問題』這些服務請不要關閉啊!

P.7-33請參閱書籍

Page 20: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

安全性考量 - 關閉網路服務埠口

P.7-33~35請參閱書籍

Page 21: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

SELinux 管理原則 SELinux 使用所謂的委任式存取控制 (Mandatory Access Control, MAC) ,他可以針對特定的程序與特定的檔案資源來進行權限的控管!也就是說,即使你是 root ,那麼在使用不同的程序時,你所能取得的權限並不一定是 root ,而得要看當時該程序的設定而定。如此一來,我們針對控制的『主體』變成了『程序』而不是『使用者』喔!因此,這個權限的管理模式就特別適合網路服務的『程序』了!因為,即使你的程序使用 root 的身份去啟動,如果這個程序被攻擊而被取得操作權,那該程序能作的事情還是有限的,因為被 SELinux 限制住了能進行的工作了嘛!

P.7-35請參閱書籍

Page 22: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

SELinux 的運作模式 主體 (Subject) : SELinux 主要想要管理的就是程序,因此你可以將『主體』跟本章談到的 process 劃上等號; 目標 (Object) : 主體程序能否存取的『目標資源』一般就是檔案系統。因此這個目標項目可以等檔案系統劃上等號;

P.7-35~36請參閱書籍

Page 23: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

政策 (Policy) :由於程序與檔案數量龐大,因此 SELinux 會依據某些服務來制訂基本的存取安全性政策。這些政策內還會有詳細的規則 (rule) 來指定不同的服務開放某些資源的存取與否。在目前的 CentOS 6.x 裡面僅有提供兩個主要的政策如下,一般來說,使用預設的 target 政策即可。

targeted� :針對網路服務限制較多,針對本機限制較少,是預設的政策; mls� :完整的 SELinux 限制,限制方面較為嚴格。

P.7-36請參閱書籍

Page 24: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

� 安全性本文 (security context) : 我們剛剛談到了主體、目標與政策面,但是主體能不能存取目標除了要符合政策指定之外,主體與目標的安全性本文必須一致才能夠順利存取。這個安全性本文 (security context) 有點類似檔案系統的 rwx 啦!安全性本文的內容與設定是非常重要的!如果設定錯誤,你的某些服務 ( 主體程序 ) 就無法存取檔案系統( 目標資源 ) ,當然就會一直出現『權限不符』的錯誤訊息了!

P.7-36請參閱書籍

Page 25: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

上圖的重點在『主體』如何取得『目標』的資源存取權限!由上圖我們可以發現, (1) 主體程序必須要通過 SELinux 政策內的規則放行後,就可以與目標資源進行安全性本文的比對,(2)若比對失敗則無法存取目標,若比對成功則可以開始存取目標。

P.7-36請參閱書籍

Page 26: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

� 安全性本文 (Security Context)CentOS 6.x 的 target 政策已經幫我們制訂好非常多的規則了,因此你只要知道如何開啟 / 關閉某項規則的放行與否即可。那個安全性本文比較麻煩!因為你可能需要自行設定檔案的安全性本文呢!為何需要自行設定啊? 舉例來說,你不也常常進行檔案的 rwx 的重新設定嗎?這個安全性本文你就將他想成 SELinux 內必備的 rwx 就是了!這樣比較好理解啦。

P.7-37請參閱書籍

Page 27: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

�身份識別 (Identify) :相當於帳號方面的身份識別!主要的身份識別則有底下三種常見的類型: root :表示 root 的帳號身份,如同上面的表格顯示的是

root 家目錄下的資料啊! system_u :表示系統程序方面的識別,通常就是程序囉; user_u :代表的是一般使用者帳號相關的身份。

角色 (Role) :透過角色欄位,我們可以知道這個資料是屬於程序、檔案資源還是代表使用者。一般的角色有: object_r :代表的是檔案或目錄等檔案資源,這應該是最常見的囉; system_r :代表的就是程序啦!不過,一般使用者也會被指定成為 system_r 喔! P.7-37~38請參閱書籍

Page 28: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-38~39請參閱書籍

Page 29: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-39請參閱書籍

1.首 先 , 我 們 觸 發 一 個 可 執 行 的 目 標 檔 案 , 那 就 是 具 有 httpd_exec_t 這 個 類 型 的 /usr/sbin/httpd

2. 該 檔 案 的 類 型 會 讓 這 個 檔 案 所 造 成 的 主 體 程 序 (Subject) 具 有 httpd 這 個 領 域 (domain) ,我們的政策針對這個領域已經制定了許多規則,其中包括這個領域可以讀取的目標資源類型;

3. 由於 httpd domain 被設 定為 可 以讀 取 httpd_sys_content_t 這個 類 型的 目標 檔 案 (Object) ,因此你的網頁放置到 /var/www/html/ 目錄下,就能夠被 httpd 那支程序所讀取了;

4.但最終能不能讀到正確的資料,還得要看 rwx 是否符合 Linux 權限的規範!

Page 30: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

SELinux 的啟動、關閉與觀察 enforcing

permissive

disabled

另外,我們又如何知道 SELinux 的政策 (Policy) 為何呢?這時可以來觀察設定檔啦:

P.7-39~40請參閱書籍

Page 31: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

SELinux type 的修改

P.7-41請參閱書籍

Page 32: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

chcon

restorecon P.7-41~42請參閱書籍

Page 33: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

SELinux 登錄檔記錄所需服務 setroubleshoot --> 錯誤訊息寫入 /var/log/messages

事實上, CentOS 6.x 對 setroubleshootd 的運作方式是: (1) 先由 auditd 去呼叫 audispd 服務, (2) 然後 audispd 服務去啟動 sedispatch 程式, (3)sedispatch 再將原本的 auditd 訊息轉成 setroubleshootd 的訊息,進一步儲存下來的!

P.7-47請參閱書籍

Page 34: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-48請參閱書籍

Page 35: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-48請參閱書籍

Page 36: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-49請參閱書籍

Page 37: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-49請參閱書籍

Page 38: 網路安全與主機基本防護:  限制埠口、網路升級與  SELinux

P.7-53~55請參閱書籍

主機受攻擊後復原工作流程1. 立即拔除網路線2. 分析登錄檔資訊,搜尋可能的入侵途徑3.重要資料備份4.重新全新安裝5. 軟體的漏洞修補6. 關閉或移除不需要的服務7. 資料回復與恢復服務設定8. 連上 Internet