Win2K下配置ASP+CGI+PHP+MySQL全攻略
安裝win2K,安裝IIS
Indexing Service,
FrontPage 2000 Server Extensions,
Internet Service Manager (Html)
這幾個別裝,還有其它的一些,總之不用的都別裝。(根據安全原則,最少的服務+最小的權限=最大的安全。)
首先,打開internet管理器(開始-->程序-->管理-->Internet服務管理)如果照上面所安裝的,裡面有一個默認站點和一個smtp的服務項選默認站點,刪除其下面的所有目錄。(按你鍵盤上的delete鍵)停掉iis,最簡單的方法:開始-->運行-->打入net stop iisadmin 選擇Y回車 (啟動的命令是:net start w3svc)把C盤的Inetpub目錄徹底刪掉(停掉iis後才能刪),在其它盤新建一個目錄在IIS管理器中將默認站點的主目錄指向剛才新建的目錄如果你需要什麼權限的目錄可以自己慢慢建,需要什麼權限開什麼。
(特別注意寫權限和執行程序的權限,沒有絕對的必要千萬不要給,默認是沒給的,所以你不用研究,呵呵..)
應用程序配置:在IIS管理器中刪除必須之外的任何無用映射,留下ASP, ASA和其他你確實需要用到的文件類型,(除了CGI,PHP,其它的我想你都沒用,刪除htw, htr, idq, ida……)不知道在哪刪嗎??方法:打開Internet服務管理->選擇站點->屬性->WWW服務->編輯->主目錄->配置->應用程序映射,然後就開始一個個刪吧(沒有全選的,真麻煩)。接著在剛剛那個窗口的應用程序調試書簽內將腳本錯誤消息改為發送文本(除非你想ASP出錯的時候用戶知道你的程序/網絡/數據庫結構)錯誤文本寫什麼?隨便你喜歡,自己看著辦。點擊確定退出時別忘了讓虛擬目錄繼承你設定的屬性。
為了對付日益增多的cgi漏洞掃描器,還有一個小技巧可以參考,在IIS中將HTTP404 Object Not Found出錯頁面通過URL重定向到一個定制HTM文件,可以讓目前絕大多數CGI漏洞掃描器失靈。其實原因很簡單,大多數CGI掃描器在編寫時為了方便,都是通過查看返回頁面的HTTP代碼來判斷漏洞是否存在的,例如,著名的IDQ漏洞一般都是通過取1.idq來檢驗,如果返回HTTP200,就認為是有這個漏洞,反之如果返回HTTP404就認為沒有,如果你通過URL將HTTP404出錯信息重定向到HTTP404.htm文件,那麼所有的掃描無論存不存在漏洞都會返回HTTP200,90%的CGI掃描器會認為你什麼漏洞都有,結果反而掩蓋了你真正的漏洞,讓入侵者茫然無處下手,不過從個人角度來說,我還是認為扎扎實實做好安全設置比這樣的小技巧重要的多。
Win2000的賬號安全是另一個重點,首先,Win2000的默認安裝允許任何用戶通過空用戶得到系統所有賬號/共享列表,這個本來是為了方便局域網用戶共享文件的,但是一個遠程用戶也可以得到你的用戶列表並使用暴力法破解用戶密碼。很多朋友都知道可以通過更改注冊表Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous = 1來禁止139空連接,實際上win2000的本地安全策略(如果是域服務器就是在域服務器安全和域安全策略中)就有這樣的選項RestrictAnonymous(匿名連接的額外限制),這個選項有三個值:
0:None. Rely on default permissions(無,取決於默認的權限)
1:Do not allow enumeration of SAM accounts and shares(不允許枚舉SAM帳號和共享)
2:No Access without explicit anonymous permissions(沒有顯式匿名權限就不允許訪問)
0這個值是系統默認的,什麼限制都沒有,遠程用戶可以知道你機器上所有的賬號、組信息、共享目錄、網絡傳輸列表(NetServerTransportEnum等等,對服務器來說這樣的設置非常危險。
1這個值是只允許非NULL用戶存取SAM賬號信息和共享信息。
2這個值是在win2000中才支持的,需要注意的是,如果你一旦使用了這個值,你的共享估計就全部完蛋了,所以我推薦你還是設為1比較好。
好了,入侵者現在沒有辦法拿到我們的用戶列表,我們的賬戶安全了……慢著,至少還有一個賬戶是可以跑密碼的,這就是系統內建的administrator,怎麼辦?我改改改,在計算機管理->用戶賬號中右擊administrator然後改名,改成什麼隨便你,只要能記得就行了。改了超管理用戶名後,在Terminal Service的登錄界面還是可以看到的(你登錄過就自已記住啦),修改方法:運行regedit,找到HKEY_LOCAL_MacHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\winlogon項中的Don't Display Last User Name串數據改成1,這樣系統不會自動顯示上次的登錄用戶名。
為了安全,你還可以打開TCP/IP篩選,桌面上右擊網上鄰居->屬性->右擊你要配置的網卡->屬性->TCP/IP->高級->選項->TCP/IP過濾,這裡有三個過濾器,分別為:TCP端口、UDP端口和IP協議TCP端口,點擊"只允許",然後在下面加上你需要開的端口,一般來說WEB服務器只需要開80(www),FTP服務器需要開20(FTP Data),21(FTP Control),3306(MySQL),3389(遠程終端控制,如果你的主機托管在別人機房裡,不能直接*作,就需要這個)郵件服務器可能需要打開25(SMTP),110(POP3),我對端口沒研究,但如果照本文所提供的服務,你只要開以上幾個就行了。(80,20,21,25,3306,3389)
--CGI支持
下載activeperl (可到www.perl.com下載最新版)
1、解壓,運行install.exe,默認是安裝在 C:\PERL 下,不過為了方便,請最好安裝到 C:\USR 目錄下,(這樣寫 Perl 解釋器的路徑就可以直接用 #!/usr/bin/perl 了,可以保持單機環境和網絡環境路徑一致。 安裝時一路按Y即可。)
2、安裝好後,按照下面三步來修改注冊表: 運行 RegEdit,搜尋: HKEY_LOCAL_MacHINE\System\Currentcontrlset\Services\W3svc\Parameters\scriptMap\ 鍵名,
然後增加鍵名:".CGI",鍵值:"C:\USR\BIN\perl.exe %s %s" 和鍵名:".pl",鍵值:"C:\USR\BIN\perl.exe %s %s"
(不懂得建?那麼:在右邊的框內--->點右鍵--->新建-->字符串值 名稱改為.CGI,雙擊該鍵即可輸入數值數據,也就是上面說的鍵值)
因為要讓這台主機支持php,所以順便在這裡添加上php和PHP3的支持(以後新建站點時可省事)
增加鍵名".php",鍵值:"C:\php\PHP.exe %s %s"
增加鍵名".php3",鍵值:"C:\php\PHP.exe %s %s"
OK,重啟後即生效!CGI支持搞定!以後新建站點後,在應用程序配置裡面默認就會加上PHP和CGI的支持(不給這個權限的話刪掉就是了)。
CGI支持搞定!
--MySQL支持
下載MySQL (可到www.MySQL.com下載最新版本)
1、解壓,運行setup.exe完全安裝,默認安裝路徑為:c:\MySQL;
2、安裝完成後,打開“開始”按鈕中的“運行”,輸入命令:C:\MySQL\bin\MySQLd-nt.exe --install,並執行;
3、開始-->程序-->管理工具-->服務-->找到MySQL-->啟動它;
4、MySQL安裝完成,重啟win2000
5、重啟後打開C:\MySQL\bin\winMySQLadmin.exe,在第一次用它時,需要建立管理員名及密碼,分別設置用戶名和密碼,設定後,系統托盤會出現一個“紅綠燈”的小圖標(以後系統啟動時均會自動加載)。
6、OK,MySQL支持搞定!
--PHP支持
下載PHP (可到www.PHP.com下載最新版本)
1、將 php 4.0.4 解壓到 c:\PHP;
2、將PHP目錄內的 php.ini-dist 文件拷貝到WinNT目錄內,改名為 php.ini; (這是PHP的配置文件,無需更改即可運行,我沒仔細研究) www.xker.com(小新技術網)
3、根據需要修改 php.ini 文件內容,如要使用 session 功能,請建立 c:\tmp 目錄,並將 PHP.ini 文檔內 session.save_path 的值設置成為絕對路徑:c:/tmp;
4、將PHP目錄內的 PHP4ts.dll 文件復制到 WinNt\System32 目錄內;
5、在控制面板中的管理工具裡啟動“Internet 服務管理器”(IIS);
6、打開站點屬性,在 'ISAPI 篩選器'選項中, 增加新的篩選器,用 'PHP' 作為篩選器名稱,在“可執行文件”欄中填入php4isapi.dll及其路徑 (c:\php\sapi\PHP4isapi.dll)。
7、在屬性的"文檔"選項中"啟用默認文檔"加入"index.PHP";