ASP.NET的web.config連接字串加密

  之前我們實作asp.net與sql server遠端連接時,有提到,我們將連接字串存放到web.config中是不安全的,為什麼?因為,雖然在Client瀏覽時是看不到web.config的內容,但是在管理、開發小組中的每一個成員都看得一清二楚。為了避免造成系統安全不必要的負擔,ASP.NET提供加密工具來加密碼web.config中的連線資訊。

  另外要提醒的是,加密的時機。因為在系統執行加密時預設的金鑰來自於執行應用程式的「電腦設備」。一旦你將此web.config部署至其他電腦設備,ASP.NET將無法對它進行解密,因為部署的電腦設備沒有私密金鑰。

  也就是說,你不要很高興撰寫完所有程式,然後很聰明,為了安全,很高興在自己本機加密web.config中的資訊,然後上傳到伺服器,然後……對,你就會看到一堆錯誤訊息。所以記住:在要提供服務的Server加密web.config資訊。

  另外,為了不必要的麻煩,執行以下命令時,請關閉VWD開發工具。
  1. 按一下「開始 --> 執行 --> cmd」
  2. 輸入「cd c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727」
  3. 如果網站根目錄是:C:\Inetpub\wwwroot,請輸入下列命令:
    「aspnet_regiis.exe -pef connectionstrings C:\Inetpub\wwwroot」
    如果我們要修改連線資訊,需要解密:
    「aspnet_regiis.exe -pdf connectionstrings C:\Inetpub\wwwroot」
  整個命令很簡單,-pef後指定要加密的標記(tag),然後指定web.config所在的路徑,-pdf同義。加密後,再打開web.config,查看連線字串標記,你就會看到一堆的亂碼。

  再重複一次,加、解密請在同一台電腦。

Visual Web Developer 2008 Express SP1建立新資料庫的錯誤訊息

  我之前使用VWD 2008 + SQL Server 2005,一切正常,最近升級到VWD 2008 SP1 + SQL Server 2008 EXPRESS,所以我把原始的 VWD 2008 And SQL Server 2005 全部移除,然後重新安裝 VWD 2008 SP1 + SQL Server 2008 EXPRESS,然後問題來了,我在新增VWD中SQL Server資料庫時,都會出現一個錯誤訊息:

VWD2008-SQLEXPRESS-CONNECTION-ERROR
抬頭是:本機資料庫檔案
訊息是:由於無法啟動使用者執行個體的處理而無法產生SQL Server的使用者執行個體。此連接將會關閉。

  上網搜尋一下,有人遇到一樣的問題,解決方式是,刪除一個特定目錄,讓它重新產生即可,路徑:「C:\Documents and Settings\[user name]\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data」,然後刪除SQLEXPRESS」這個目錄即可。再重新啟動VWD測試一下,嗯,沒問題了。

  注意,目錄路徑中[user name],是你的本機帳號名稱;Local Settings(含)下是隱藏目錄,請先解除目錄的隱藏,才能一步一步往下找。

  因為我之前安裝升級VWD 2005 + SQL Server 2005 Express --> VWD 2008 + SQL Server 2005 Express SP2 --> VWD 2008 SP1 + SQL Server 2008 Express,所以在Microsoft目錄下有「Microsoft SQL Server」及「Microsoft SQL Server Data」兩個,請找有Data的那一個。

PHP SysInfo:網頁顯示Linux系統資訊

在我們學習 Linux 過程中,是否常常要查詢系統資訊時,就要下一堆的指令。

我們查開機到現在的時間,先下一個 uptime 指令,想查 CPU、記憶體的狀況,再下一個 top 指令,想看網路卡的情況,下一個 ifconfig 指令,想看一下磁碟使用情況,下一個 df 指令,想了了 pci 情況再下一個 lspci 指令 … 想知道 … 再下一個 … 指令。

哇!有完沒完。那你可能會說,可以使用 X-Window 。是沒錯啦!如果你能坐在電腦主機「旁」我個人是非常建議使用 X-Window,就像常聽到的一句話:「快又有效。」那你可能會說,就算我沒有在主機旁,我還有 VNC ( Virtual Network Computing ) ,可以嗎?是可以啦,如果你的連線速度是「咻 、咻、咻」等級的話,我沒有什麼好反對的。

那還有沒有更好的方式呢?如果我說,那用網頁的方式來看,如何?( 眼睛為之一亮 )真的嗎?今天就為各位帶來一個秘密小武器:PHPSysinfo。

PHPSysinfo 是使用 PHP Script 來分析 /proc 中的資料,然後用簡單又漂亮圖表來顯示。他會顯示的系統資訊像是:開機到現在的時間(Uptime), CPU, 記憶體, PCI 裝置, SCSI 裝置, IDE 裝置, 網路卡, 磁碟使用情況, 還有其他資訊。而且它支援更換樣版及多國語言,還可以這些系統資訊用 XML 格式輸出,這樣有沒有很棒。而且他的安裝,超超超級簡單。連設定都不用,蝦米!!心動了吧!動手把他「作」了吧!

實作系統:CentOS 4.5 Server , 核心版本:2.6.9-55.EL
實作配備:PⅡ Celeron 450 + 256 RAM

官方網站:http://sourceforge.net/projects/phpsysinfo/

下載點:http://nchc.dl.sourceforge.net/sourceforge/phpsysinfo/phpsysinfo-2.5.3.tar.gz

先以 root 登入:

  

  cd /var/www/html

  wget http://nchc.dl.sourceforge.net/sourceforge/phpsysinfo/phpsysinfo-2.5.3.tar.gz

直接把 phpsysinfo 解壓縮到「你的」 Web 根目錄:

  tar -zxvf phpsysinfo-2.5.3.tar.gz

接下來做唯一的一件事:

  

  cp config.php.new config.php

  rm phpsysinfo-2.5.3.tar.gz

做完了,前後五個指令,快不快樂、高不高興!設定檔連改都不用改。簡單吧,我真的沒騙你(一般來說是真的不用改,除非你要做一些其他的設定)。接下來打開你最愛的瀏覽器 http://IP/phpsysinfo/ or http://domain/phpsysinfo/ 就可以看到美美的系統資訊了。然後,把畫面拉到最下方,可以更換語言跟樣式,選一個你喜歡的吧!

注意:

在 README 中有提到一些要注意的地方,1、它在 PHP 5.2 上 Run 會有問題。2、在 php.ini 中的參數 include_phth 需含有 "."、參數 safe_mode 必須為 "off",還有如果參數 apc.optimization="1",也會產生問題,請關閉。一般來說,如果你的 PHP 是使用系統預設值(也就是說不是使用 tarball 安裝,或有修改過內容),應該沒有什麼問題才對,所以如果你在安裝時有出現一些錯誤,請查一下是否是以上的問題。

寫於 2007/5/24

趨勢科技:電子郵件信譽評等服務(Email Reputation Services, ERS)

  公司在我來之前都是使用貓熊(Panda)的防毒產品,因為公司草創初期,一切都是價格為主,價格決定一切,所以只很簡單的公司內的每一台PC安裝一套單機版的防毒,Server只有Web及Mail兩台,但沒有安裝任何防毒軟體。

  後來公司陸續發生了一些病毒事件,「防毒」終於得到重視,而且剛好Mail Server的平台由Linux轉換到Exchange,所以想要找一套有整合防毒(Anti-Virus)和防垃圾信(Anti-Spam)的解決方案,問了幾家廠商,最後還是決定使用Panda的產品,當然,價格決定一切。

  一般來說,這種Client/Server的防毒架構,使用安裝起來都滿方便,就我使用過的Norton、Panda、TrendMicro,都差不多,當然公司越大產品線分的越細,什麼「小小企業版」、「小企業版」、「中小企業版」…當然,越高檔價格越高,可以使用到的服務也可越多。

  好了,使用Panda產品後,基本上在防毒方面是沒有什麼問題,但在安裝到Exchange上出現問題,安裝不上?後來經過一些查詢、問答後得到一個讓我聽了非常shake的答案,台灣的代理商說歐洲原廠回答說:「目前他們的產品還不能安裝在「雙位元」作業系統的Exchange上。

  電腦的作業系統(例如 Windows XP, Vista)中如果使用「英文語系」就是「單位元」系統,但像我們使用「中文」、「日文」…這種就是屬於「雙位元」系統。當我聽到原因都快昏倒,而且問原廠什麼時候可以支援,原廠居然說:不知道!Oh~My God!

  整整一年之後,終於到了要續約的時候,基本上這種企業版的防毒軟體都是一年一約,我打了個電話給桃園的代理商,問他雙位元的情況解決了沒?回答是還沒。當然,我們不可能再使用這個產品,而且我真的有點想告他,一套不能使用的產品居然還拿來賣錢,規格表上還打著「Exchange」字樣,突然心中浮起那句商業名言:「一分錢,一分貨。」

  後來與主管溝通,可否不要再以「價格」為主要考慮,重新Survey後決定使用台灣品牌:趨勢科技(TrendMicro),算是支持國貨吧,最少確定中文方面的支援是沒有問題。

  我們最早開始使用的「Client/ Server/ Messaging Suite for SMB」的產品,產品沒什麼大問題,只是小問題也是一堆,而其中光一個Spam Mail會產生亂碼信的問題,就處理了一年多才決解。雖然不滿意,但最少還有解決。

  剛開始時服務還不錯,有人會來幫你安裝(那個Panda就寄個軟體CD與說明書來,其他請自行研究),有問題新竹的代理商精誠資訊會派人員過來處理,但後來他們這位唯一一位有TrendMicro認證的人員離職後,我應該除了續約會再找精誠資訊外,就再也沒有跟他們連絡過,後來都是直接找趨勢台北技術部門來幫忙處理。

  切入我的主題:「電子郵件信譽評等服務」,這是趨勢科技新在Worry Free Business Security 5.0(WFBS)中電子郵件在Anti-Spam的新技術,WFBS在趨勢台灣網頁上的下載頁面中的可以免費下載試用。我是在2008年8月初開始測試WFBS 5.0,8月中升級CSM版本然後上線,針對這個版本中的電子郵件信譽評等服務(Email Reputation Services, ERS)一些問題在這裡提出。

電子郵件信譽評等服務-01-設定(圖一)主控台設定-目標

電子郵件信譽評等服務-02-ERS服務入口網站
(圖二)主控台設定-服務入口網站

  使用設定上非常簡單,它的運作方式是會過濾你所有SMTP進出Mail的IP是否合法,而細部設定,你必須上ERS的入口網站來進行設定。

電子郵件信譽評等服務-03-服務入口網站憑證錯誤(圖三)ERP入口網站憑證錯誤提示

(圖四)ERP入口網站憑證錯誤提示-一般

  這是第一個問題:一家全球性的公司發出來的憑證居然是錯誤的,要不是為了設定ERS,我真想按(圖三)的否。

  不過說真的,因為ERS是使用IP的方式來過濾,而且是與Internet端資料庫比對,所以我測試了幾天,效果真的不錯。它的過濾方式也簡單,如上所說,「所有進出SMTP」郵件的IP都會跟Internet上的ERS資料庫做比對,如果是「信譽」不良的IP,就直接中斷連線,如果未在資料庫中或信譽沒問題,則放行。所以趨勢才命名為「信譽評等」服務。

  但這個服務上線不到24小時,就發生我們在大陸的同事無法透過SMTP來寄送信件的問題。這時我查電子手冊、TrendMicro網站、Google…查不出個所以,只好先將此服務關閉。這發生了第二個問題:這一服務在線上服務,完全找不到任何設定手冊、設定資料…讓我這個使用者完全不知應該如何進行下去。因為我根本不知道哪個設定所引起這個SMTP的問題?如那個ERS網站內的設定,還是我發Mail給趨勢台北的服務中心,過了二、三天才有工程師與我連絡,然後一頁一頁,一個選項一個選項跟我解釋清楚。

  再來第三個問題:為什麼在大陸同事的SMTP無法發信?我剛才有提到這個服務是對「所有進出SMTP」的郵件進行過濾的動作,而重點就是在「進出」這兩個字。因為是在大陸,所以在SMTP要送出之前,會先與ERS資料庫比對,而SMTP又是帶大陸IP(絕大多數是浮動IP),大陸浮動IP又很容易被封鎖(Blocked),所以就會被中斷SMTP連線。

  哇,這是個大問題,雖然經過工程人員的教學,知道可以在ERS網站中設定例外,而這個例外可以使用依1、國家(Country);2、ISP(Internet Service Providers);3、IP Address;三種方式來設定例外,如果合作廠商的Mail Server IP,你就可以直接設定在IP Address例外中,但這還是有不合理的地方。

  1. 在公司外的人員,一定是經過帳號、密碼的認證,才會透過SMTP要來寄送外部信件。那你ERS管我在那裡的IP來寄送,就算我目前的IP是一個超不良信譽的IP。

  2. 以例外中的Country來設定為例,今天一位業務同仁在大陸出差,我就要把China這個Country例外,那這個服務我只要有5位同仁在全球5大洲出差,那不就破功了,那直接關閉就好,還設什麼設?
  目前在設定上是有暫時性解決(關閉:Dynamically Assigned IP (DUL)),但這不是我滿意的方式,因為DUL也算是發Spam信件中大量的來源之一,這方面,趨勢還在努力中!其他,依「大問題沒有,小問題不斷」原則,繼續幫趨勢WFBS及ERS服務找麻煩。

  這個ERS服務我本身是認同且認為是相當不錯的設計方式,只是目前還有一個大缺點及一些小缺點(註),如果能早日修正完畢,相信我對趨勢信心會更加提升。

註:如果你要查出被ERS封鎖的IP是被ERS中那一個資料庫封鎖,可以到「http://www.mail-abuse.com/lookup.html」查詢。但我又很奇怪,這樣的查詢服務為什麼不直接與ERS整合?還要放在一個手冊、ERS服務入口網站都找不到的地方呢?(第四個問題)

註:目前本文發表之前,ERS中的Report圖表的時間是全錯的,我猜應該是時區的問題,我再次奇怪,一個錯誤的Report圖表有何意義?(第五個問題)

註:ERS網站只有英文版。希望可以有多國語言版。(這是建議,不算問題)

註:以上所有問題已經反應給趨勢科技。

趨勢科技(TrendMicro)的免費抽獎活動

  好康的來了,今天收到TrendMicro的電子報,他們正在推廣WTP的軟體,現在只要到:

  http://www.trendmicro.com.tw/wtp/ --> 選最後一個「下載WTP 抽大獎」--> 點選「下載」後就會出現輸入基本資料的頁面。

  下載後,安不安裝是一回事,但可以免費抽獎品,那又是一回事。時間到:2008/10/15,大家快去參加吧!