koioggo Groupie
加入: 2004/5月/22
Online Status: Offline 回復: 58
|
Posted: 2005/3月/09 5:35下午 | IP記錄
|
|
|
防護您的Linux平台安全
一、前言
隨著入侵事件的逐年快速遞增,網路安全議題已廣受各界重視。以往攻擊者或蠕蟲 (Worm) 大多鎖定 Windows 平台作為攻擊目標。但是隨著 Linux 平台的使用者逐漸增多,Linux 入侵事件也開始增加。對於剛開始接觸 Linux 的一般使用者來說,除了學習各式 Linux 套件的安裝與設定,瞭解 Linux系統的基本安全防護觀念與資訊,更是重要的課題。本文希望能給予 Linux 系統管理員一些安全指導方針,以確保基本的系統安全,避免成為入侵事件的受害者或無辜幫兇。
二、系統安裝
不論您選擇哪家廠商所提供的 Linux 套件,請盡量使用該廠商所提供的最新版套件,如此可確保您所安裝的各個程式套件是較新的版本,不會存在舊版程式的安全漏洞。而且 廠商可能不再提供舊版套件的技術支援,例如 Red Hat 目前僅支援 Red Hat Enterprise Linux 的漏洞修補與更新,若您安裝的是 Red Hat Linux 9 或更早的版本,則需要自己在網路上尋找有安全漏洞的軟體之修補程式,並遵照其說明來做修補更新,不但較為麻煩、耗時,也增加了將 系統保持在最安全狀態的困難度。另外,要先決定系統的用途,是日常一般使用或作為伺服器,例如您的系統若要當作檔案伺服器,那麼 就沒必要安裝 sendmail 套件。系統執行的服務愈多,遭到入侵的機會就愈大。因此,安裝系統時盡量只選擇自己需要的套件。安裝過程中關於安全性設定的選擇 ,最好設為高,如此系統安裝完後,就會有一些基本的安全防護,例如會啟動防火牆過濾進出的封包,對於進出的流量做適當的規範。
三、關閉不需要的服務
系統安裝時,通常預設會安裝一些較常需要用到的伺服器,而且會設定為開機自動執行。所以安裝完重新開機後,請馬上檢查正在執 行的服務。輸入指令 netstat -tap | grep LISTEN 就會列出目前正在執行的中的 TCP 服務,包含開啟的通訊埠、執行程式名稱和程式的 PID。我們可以透過廠商附的服務管理程式關閉不需要的服務,例如 Red Hat Linux 可透過 service service-name stop,來關閉程式。若無方便的管理程式,也可以手動透過 /etc/init.d/service-name stop,來關閉服務。若伺服器程式在 /etc/init.d 中沒有安裝相關的 script,則可透過之前經由 netstat 取得的 PID,利用 kill 指令,例如 kill -9 PID,來中斷程式。接著則要移除開機立即執行該服務的設定,避免重開機後不需要的服務又自動執行。通常廠商會附上相關的設定工 具,例如 Red Hat Linux可以用 chkconfig service-name off ,Debian Linux則可用 chkconfig service-name off 來移除開機執行的設定。如果確定不需要該服務,也可將其套件執行反安裝,移除相關元件,需要時再安裝新版的套件。
另外,有些服務是透過 Xinetd 來啟動,所以關閉服務的方式有點不同。相關程式設定存放於 /etc/xinetd.d 目錄中,可透過 grep disable /etc/xinetd.d/* | grep no 指令,找出有哪些服務是一開機即透過 Xinetd 啟動,針對不需要的服務,將其設定檔中, disable = no 的設定改成 disable = yes ,如此開機時即不會再執行該服務。也可透過重新啟動 Xinetd /etc/init.d/xinetd restart 使修改過的設定生效,如此 Xinetd 會重新讀取設定檔,不再啟動已被關閉的服務。
四、維護與更新
系統安全漏洞不斷被發現,入侵程式碼開發速度與攻擊技術亦大幅提升,因此,漏洞的"即時"更新就變得非常重要。系統安裝完成 後,除了關閉不必要的服務,請立即瀏覽廠商的漏洞更新網頁,檢視自己所安裝的版本從釋出到今,有多少更新、修補檔釋出,然後根據 說明,立即進行系統更新與修補檔下載安裝。完成後,則應該訂閱廠商所提供的安全通報,定期造訪廠商安全資訊公告網頁,隨時注意廠 商對於各種軟體漏洞、安全弱點的發佈,然後根據安全通報的內容,進行軟體更新與修補檔安裝。此外,您應該定期造訪一些關於 Linux 安全的專業網站,例如 http://linuxsecurity.com,網站會提供網路與系統安全相關的新聞,漏洞與修補檔的公告更新,訂閱網站的 newsletter,也是獲取資訊方便快速的好方法。請您務必記得,唯有對系統、軟體即時進行漏洞更新,才能將被入侵的風險降 到最低。
五、防火牆
要限制外界對系統的存取,我們最常利用的工具就是系統內附的防火牆。而防火牆的設定原則是,限制所有的存取,再根據我們的考 量,逐一開放。所以,我們必須決定我們要開放哪些服務?將服務開放給誰?從哪裡可以存取這些服務?限制程度為何?如上所述,這些 問題在系統安裝時,通常都會有相關的詢問與選項,建議是以中、高程度的限制為宜。
為了確保外界對於本地端網路的存取,符合我們所預期,可透過著名的掃描軟體 nmap ( http://www.insecure.org/nmap/index.html ),利用另一台遠端電腦,替自己進行掃描測試。建議先採用預設的掃描方式,例如: namp your-ip ,來檢視由外界可以存取到我們哪些服務。再透過 nmap 的一些特殊參數設定,例如 nmap -sF your-ip ,進一步確認,透過一些特意處理過標頭資訊的封包能存取到的服務又有哪些。如此即為攻擊者可蒐集到的資訊與存取到的資源。若有自 己預期之外的對外服務,請參閱防火牆的相關文件,例如 man 或是網站上的教學文件 ( http://www.spps.tp.edu.tw/documents/memo/iptables/iptables.h tm) ,做適度的調整與設定。然後再透過 nmap 再掃描一次,以確保外界能存取的資源,僅限於我們打算開放的。系統在安裝時針對防火牆所做的設定,基本上已能符合一般使用者的需 求,使用者只要進行微調,即可符合所需,如果要做更精細、全面性的掌控,請參考官方說明文件 ( http://www.iptables.org/documentation/index.html )。
另外,有程式可以方便我們對系統安全整體的強化做比較完整、全面的設定。例如 Bastille Linux ( http://www.bastille-linux.org/ ) ,藉由一連串的問答,針對防火牆、檔案的存取權限、帳戶的安全性設定等等,產生完整的設定,方便我們對系統安全作一全面性的設定 。
六、結論
沒有所謂絕對安全的系統,安全程度通常是相對的。希望透過本文的介紹,一般使用者對於 Linux 的安全強化有基本的概念與技術,能夠了解安裝時應該注意的事項,及安裝後應該檢查哪些部分,並且能落實這些基本的防護措施,尤其 是漏洞的即時更新。雖然只是些簡易的方式,但對於基本的使用者防護,也必能有一定的幫助。
|