網頁

2013年9月25日 星期三

Tomcat 安全性如何提升

重點如下:

  1. 降低使用權限
    • tomcat 的權限若不特別調整會是系統服務的權限的身份執行。
    • 在系統內新增一個使用者帳號,這個新增的帳號可以不歸屬於任何的群組,於服務管理器啟動 Tomcat 管理介面。選擇「登錄」選項,將啟動的身份改成這個新增的使用者帳號。(如附圖)
    • 此新增的帳號可以將網路存取使用權限改成拒絕存取、遠端控制取消啟用、用戶端裝置的預設勾選項目全數取消。
    • Tomcat相關的執行檔案的目錄,別忘了要新增這個使用者的帳號權限;有些目錄的權限要開放寫入(如附圖)
    • JRE目錄也需要新增這個使用者的帳號權限。(如附圖)
    • 基本上以上的做法與Apache 的建議相似,也可直接參考此文件中文翻譯)。 
      • 在Apache的實作:後來發現只要在 logs , sessions 與其它需要寫入權限的目錄 (e.g phpids ......),加入這個受限制的使用者的權限後,再到系統 =>服務 =>Apache2(如下圖),將登入的身份改成這個受限制的使用者,重新啟動後即可。
  2. 預設 port 號修改
    •  例如將 port 8080修改為其它 port 號。
  3. 未設定 index.htm的目錄會將所有目錄內的檔案全數呈現
    • 修改web.xml檔案,<param-name>listings</param-name>,確認它是 false 的狀態。這個部份在 Tomcat 6.x 版的預設值是  false 。
  4. 後台管理的帳密修改
    • 基本上因為它的管理介面,這沒有使用到,所以我這是將全部將關於此功能的目錄全部刪除。
  5. 錯誤頁面會主動回報使用版本等參考資訊
    • 修改web.xml files,自訂 404.html ......等頁面。於 web.xml內的 </welcome-file-list>標籤後加入自訂的 404.html(如下) 
    • <error-page>
              <error-code>404</error-code>
              <location>/404.html</location>
          </error-page>
    • 不知幾版開始後,它的 header 就沒有傳遞版本的資訊了,所以自訂 404 等錯誤頁面後, 可以降低此困擾。The server attribute controls the value of the Server HTTP header. The default value of this header for Tomcat 4.1.x, 5.0.x, 5.5.x, 6.0.x and 7.0.x is Apache-Coyote/1.1. This header can provide limited information to both legitimate clients and attackers

其它降低權限時有出現過的狀況:

有一個資料庫很特殊,它需要在工作排程器內設定自動啟動的動作,但降低權限的身份在設定排程時會出現狀況,解決的方式可以參考下方的相關說明。
相關參考資料:


2013年9月17日 星期二

Server 2008 R2 的時間校時

前些天,同仁回報訪客系統的人數入館統計的功能突然失效了。數值全數歸零。當下連上主機查看了 Log,但都沒發生異常。搞了半天才發現到原來主機上的時間是錯誤的。

而程式的運作,在計算人數時,是以取出當下的日期時間來做計算。過了某個時間點(8小時的時間差),因為取出的日期時間已超過正確的今日日期,所以在系統的呈現上,它的數值才會歸零。

探查的原因後,發現該主機是位於 VM內的 guest OS,Guest OS重新開機後會自動去抓取 VM Server 內的 BIOS時間,而這台 VM Server 的時間是不正確的,而要更新這台 VM Server 需要將裡面所有的 Guest OS 的服務全數停止才能做更正的動作。

所以稍微找一下校正時間的相關資料,透過 w32tm.exe 的方式,寫了一支批次檔後再設定主機內的排程處理器,讓它定時的執行校時的工作後就搞定了;按找到的文章來看,其實只要修改機碼的方式達成。


相關資料: