第一卷 個人Internet網站創建過程詳解
序
本文通過創建Internet示範網站--自由網絡(Webfree)的實例,詳細敘述了Windows NT安裝、WWW服務、FTP服務的配置、郵件服務、新聞討論組服務的DNS設置、IP地址分配等網站的安裝、設置過程。
在Internet日益紅火的今天,相信你早已加入了網迷的隊伍,整天泡在網上了。你可能還租了個"門麵"
,在網上精心侍弄著自己的免費個人主頁。可是,你有沒有想過有朝一日安個"家",擁有屬於自己的Internet網站呢?其實這並不難,我就有一個。不太相信?那好辦:點亮你的電腦,叫醒你的貓,建立一個撥號網絡連接,連接位置:自由網絡(Webfree);電話號碼:0429-7129081;用戶名:guest;口令:guest。撥號連接......嘿!通了!!!快運行你的網頁瀏覽器,敲入這個網址:http:∥www.webfree.com,看到了吧?這就是我的自由網絡!Web網頁瀏覽、FTP文件傳輸、E-mail收發、NEWS討論、在線討論、免費郵箱、免費個人主頁,應有盡有!而這一切除了電腦+貓+電話,並不需要任何額外設備。怎麼?就這麼容易?看完本文,你會說:真這麼容易!好吧!變心動為行動,Do it yourself。
一、Windows NT Server 4.0中文版的安裝
上麵所說的這一切,都要以Windows NT Server操作係統為運行平台。所以,對你的電腦的要求就是能夠跑Windows NT。基本配置要求:486以上CPU;16兆以上內存;500兆以上硬盤空間。不過,要是沒有一顆奔騰的"心"和32兆以上的內存,可別想跑得輕鬆。
1.安裝前準備
我的硬盤分成C:、D:兩個分區。C:FAT格式,2047MB,MS-DOS主分區,已裝MS-DOS/Windows 95,配成多重啟動;D:FAT格式,2047MB,MS-DOS擴展分區,預留Windows NT空間。光驅盤符為E:。在MS-DOS環境或Windows 95的MS-DOS命令窗口下,進入光盤Windows NT Server 4.0中文版的安裝主目錄I386,鍵入WINNT/B後回車,即開始基於MS-DOS部分的安裝,然後重新啟動計算機。
2.基本係統安裝
重新啟動時,啟動過程已被Windows NT的操作係統管理器OS Loader 4.0所控製。OS Loader自動選擇"Windows NT 4.0 Installation/Upgrade"項目,繼續進行後續安裝工作。保持Windows NT默認的安裝目錄"\WINNT"不變,安裝程序將複製Windows NT基本係統文件到D:\WINNT目錄。複製完成後,按回車鍵啟動計算機。
3.網絡向導安裝
再次啟動計算機時,應在OS Loader處選擇第一項"Windows NT Server Version 4.00"。稍後出現Windows NT圖形安裝界麵,繼續複製Windows NT係統安裝向導文件。然後,Windows NT安裝向導開始運行。本例計算機名稱輸入"DAMUGE"(自動變大寫);服務器類型為"主域控製器";勾選"用線路連接到網絡"、"安裝Microsoft Internet Information Server";在網絡適配器選擇界麵,點選"從列表中選擇",並從彈出的網絡適配器選擇窗口中選取"MS Loopback卡";在服務安裝選擇窗口中,除已有的服務外,點取"從列表中選擇",然後在彈出的網絡服務窗口中分兩次選取"Microsoft DNS服務器"和"遠程訪問服務";然後在安裝MS Loopback卡和安裝TCP/IP窗口中,分別取默認值,並進行調製解調器的檢測、安裝。在Microsoft TCP/IP屬性設置窗口中,在IP地址選項卡下點取"指定IP地址",並輸入本服務器指定的IP地址(注意:如果你的服務器是與Internet實際連接的,IP地址是由上級結點指定給你的,固定不變;如果你的服務器是獨立運行的,所有的IP地址資源都是可以使用的,你可以任意指定自己服務器的IP地址),例如:202.96.34.88。在主域控製器域名輸入窗口去掉默認的域名"DOMAIN",輸入指定的域名,如"COM"。一段時間後,完成Windows NT網絡部分的安裝,自動開始Microsoft Internet Information Server 2.0的安裝。Windows NT的IIS包括WWW、FTP、Gopher三項基本Internet服務。除在選項窗口點選安裝全部選項之外,其餘全部取默認項即可。最後,單擊"重新啟動計算機",整個安裝過程結束。
二、安裝後的調整、補充
Windows NT Server 4.0全部安裝完畢之後,啟動計算機,在Windows NT登錄窗口,確認用戶名為管理員(Administrator),輸入管理員密碼(安裝時建立的密碼)回車,即可登錄到Windows NT桌麵,進行進一步的調整、維護工作了。
1.遠程訪問配置
順序選取"控製麵板"→"網絡"→"服務"→"遠程訪問服務"→"屬性"。點取"配置",在"配置端口用法"窗口中將"端口用法"點選為"撥出和接收",單擊"確定";再點取"網絡",在"允許遠程客戶運行"的三種協議中隻保留"TCP/IP"一項的勾選,並點取TCP/IP後麵的"配置",然後點選"使用靜態地址集",在"起始"IP地址欄輸入202.96.0.1,在"結束"IP地址欄輸入202.96.255.255,順序單擊"確定"、"確定"、"繼續"完成設置。
2.添加IP地址
順序選取"控製麵板"→"網絡"→"協議"→"TCP/IP通訊協議"→"屬性",在IP地址選項卡下點取"高級",重複點取"添加",添加如下IP地址資源備用:
202.96.34.168(準備用於WWW主頁www.webfree.com及FTP服務ftp.webfree.com);
202.96.34.169(準備用於NEWS新聞服務news.webfree.com);
202.96.34.170(準備用於MAIL郵件服務mail.webfree.com);
202.96.34.188(準備用於HOME主機WWW遠程管理服務home.webfree.com);
202.96.34.189(準備用於以後擴充其他服務);
202.96.34.190(準備用於以後擴充其他服務)。
以上IP地址添加完畢後,單擊"確定"返回;再點擊"DNS"選項卡,在"DNS服務器搜索順序"處單擊"添加",然後輸入主機DAMUGE的IP地址202.96.34.88,單擊"添加";再點擊"WINS地址"選項卡,在"主WINS服務器"處輸入主機DAMUGE的IP地址202.96.34.88,然後單擊"確定",再單擊"關閉"退出網絡屬性窗口,重新啟動計算機。
三、DNS服務器及WWW、FTP服務設置
1.DNS服務器設置
重新啟動Windows NT,以管理員(Administrator)身份登錄,在桌麵依次單擊"開始"→"程序"→"管理工具(公用)"→"DNS管理器",進入DNS服務器設置。
單擊"DNS"→"新建服務器",在DNS服務器處輸入主機名字DAMUGE後單擊確定,即建立了DNS服務器。在服務器清單下點選"DAMUGE",然後單擊"DNS"→"新建區域",在區域類型處點選"主要",並在"區域"處輸入"COM",點擊"服務器"輸入欄自動出現"COM.DNS"文件名,再單擊"下一步"、"完成",即建立了COM區域。
點選新建的區域COM,然後單擊"DNS"→"新建域",在域名處輸入"WEBFREE"後單擊"確定",即建立了區域COM下的WEBFREE域。
點選新建的域WEBFREE,然後單擊"DNS"→"新建主機",分別輸入以下主機名、IP地址並單擊"添加主機",建立所有需要的域名映射:
主機名:WWW 主機IP地址:202.96.34.168;
主機名:FTP主機IP地址:202.96.34.168;
主機名:NEWS 主機IP地址:202.96.34.169;
主機名:MAIL 主機IP地址:202.96.34.170;
主機名:HOME 主機IP地址:202.96.34.188;
完成後,屏幕如下圖所示。最後退出DNS服務管理,結束DNS服務器的設置。
2.WWW服務的設置
在桌麵依次單擊"開始"→"程序"→"Microsoft Internet Server(公用)"→"Internet服務管理器",進入Internet服務設置。
雙擊DAMUGE的WWW服務,點選"目錄"選項卡,雙擊"D:\InetPub\wwwroot"項,勾選"虛擬服務器",輸入IP地址:202.96.34.188,勾選"執行"後單擊"確定"回到目錄選項卡。單擊"添加",輸入WWW網頁目錄D:\InetPub\wwwroot\webfree(須事先建好此目錄並將相應網頁文件拷貝到此目錄下),點選"主目錄",勾選"虛擬服務器",輸入IP地址:202.96.34.168,然後單擊"確定"回到目錄選項卡。單擊"確定"返回。
3.FTP服務的設置
在桌麵依次單擊"開始"→"程序"→"Microsoft Internet Server(公用)"→"Internet服務管理器",進入Internet服務設置。
雙擊DAMUGE的FTP服務,點選"信息"選項卡,在歡迎信息窗口輸入歡迎信息,再點選"目錄"選項卡,單擊"添加",輸入FTP文件上傳目錄D:\InetPub\ftproot\upload(須事先建好此目錄,主要供用戶上傳文件),點選"虛擬目錄",勾選"可寫",輸入虛擬目錄別名:/upload,然後單擊"確定"回到目錄選項卡。單擊"確定"返回。
四、域用戶設置管理
在桌麵依次單擊"開始"→"程序"→"管理工具(公用)"→"域用戶管理器",進入域用戶管理器。
要建立新的一般用戶,可單擊"用戶"→"新用戶"建立新的用戶,輸入此用戶的有關信息,單擊"撥入",勾選"給予用戶撥入的權限",單擊"確定"、"添加",即完成了一個新用戶的撥號訪問賬號的建立。重複該過程可以建立另外的用戶賬號。新增加的賬號默認為隸屬於"Domain users"組。建立用戶時最好勾選"用戶不得更改密碼"選項,並且注意不隨意賦予客戶和一般用戶較高的訪問權限,以減少安全漏洞。
對於已經存在的用戶,如管理員(Administrator)、客戶(Guest)等,應該分別賦予其"撥入"的權限,並且將客戶(Guest)的口令改為"guest"。對於新建的網絡管理員賬號,還要單擊"組"圖標,添加其到"Administrators"組,才可以在服務器上或以遠程撥號連接的方式管理服務器資源。為了安全,應把管理員賬號的口令設置為大小寫字母和數字混合的、長度盡量長的,還要不定期更換口令。這樣做雖然麻煩,但對於網絡資源安全來說是有益的。
五、遠程訪問測試和遠程HTML方式管理
完成以上步驟後,基本的Internet服務就設置完畢,可以開始測試了。分別在遠程以客戶(Guest)、一般用戶和管理員的身份撥號入網,撥號連通之後,可以進行基本Internet功能和遠程HTML管理方式的測試。
在網頁瀏覽器中輸入網址http:∥www.webfree.com,即可瀏覽WWW網頁,默認的WWW主頁文件名為Default.htm,如果不是此文件名,應改為此文件名,也可以在WWW服務管理器裏將默認的WWW主頁文件名由原來的Default.htm改為你希望的文件名。
在網頁瀏覽器或FTP軟件的地址欄輸入網址ftp:∥ftp.webfree.com,應該可以出現FTP服務器的文件資源,點取某一個文件,可以下載這個文件。
Windows NT的IIS提供了遠程訪問方式的管理,可以很方便地進行WWW、FTP、Gopher服務的遠程管理。以管理員身份撥號上網,在網頁瀏覽器中輸入網址http:∥home.webfree.com,即可進入遠程HTML方式的管理界麵。在彈出的身份驗證窗口輸入管理員賬號和口令,即可方便地進行以上三種服務的遠程設置,操作基本與Windows NT桌麵方式的管理相同。
好了,你現在已經擁有了一個基本的Internet服務器。你可以盡情地體會一下"家"的感覺了。更進一步的功能,如:E-mail服務、Newsgroups、在線討論等,可以在Internet網(或我的自由網絡)上下載相應的軟件,在Windows NT桌麵上安裝這些軟件,並進行各自的設置即可。
第一章 內網IP建ftp服務器教程
很多朋友想建ftp服務器在Internet上共享自己的資源,苦於沒有公網IP,無法實現。其實,內網IP也可以建ftp服務器的。
第一步:
首先當然要安裝d2g client,申請一個動態域名解析了,你可以到它的官方網站下載到
http://www.deerfield.com/download/dns2go/
下載後你可以把它安裝在你的局域網服務器或者客戶機上都可以。
一路回車安裝完後,按提示,注冊一個新的域名: **.dns2go.com
注冊好後,如果一切正常,你的d2g客戶端便已經工作了,可以對你的靜態或動態IP地址解析了。
其實,申請動態域名解析不僅僅dns2go一種方法,其它還有花生殼、動態主機等等。如果有靜態IP,則可以不用申請動態域名解析,直接用IP地址即可。
第二步:
但是,現在的d2g隻能映射你局域網服務器的IP,外部並不能訪問你的機器。
現在你需要一個端口映射軟件。
推薦一個小巧實用的工具: portTunnel
配合在局域網內架設網站的利器 --- PortTunnel介紹
這裏向大家推薦一款工具,可以幫助大家輕鬆搞定"端口映射"。這款工具叫"PortTunnel"(中文意思叫"端口通道"),由SteelBytes出品,目前已經完全免費了!它的設置極其簡單,可以運行在所有的Windows平台上。
好了,讓我們來實際x作一番:
假設我是一個局域網用戶,我的內部IP地址是10.10.10.10,我是通過指定網關10.10.10.1上網的,我在自己的計算機上安裝了"動態IP解析"軟件和WEB服務器還有FTP服務器準備開一個網站和FTP服務器。以下是我的設置過程:
1. 到我的網關(代理)服務器10.10.10.1 上安裝"PortTunnel"軟件(拷貝即可)
這是軟件的界麵:
2. 針對我需要的WEB服務進行配置,點擊"Add"按鈕,
點擊"OK"按鈕保存
注意:
Port In填的端口號是80,這樣填的前提是網關(代理服務器)上沒有WEB服務器在運行,否則請更換其它端口,例如"8080"(在這種情況下,用戶必須通過http://<你的域名>:8080來訪問你的網站。)
3. 針對我需要的FTP服務進行配置,點擊"Add"按鈕
點擊"OK"按鈕保存
注意:
Port In填的端口號是21,這樣填的前提是網關(代理服務器)上沒有FTP服務器在運行,否則請更換其它端口,例如"2100"(在這種情況下,用戶必須通過ftp://<你的域名>:2100來訪問你的FTP服務器。)
4. 設置成功後的正常運行界麵(平時這個界麵可以關掉,不會影響使用)
注意:
正常運行時,你設置的通道的狀態應當是"Active",如果是"Failed"那很可能你設置的"Port In"端口號和網關(代理服務器)上的現有端口衝突。
5. 測試一下:
如果通過http://<你的域名>能訪問你的網站或FTP://<你的域名>能訪問你的FTP服務器,那就成功了。
重要提示:
如果局域網內有多個用戶想架設網站,那麼注意在設置的時候,一個"Port In"端口隻能為一個用戶服務,例如,usera使用了"80"作"Port In",那麼他的網站就可以通過"http://"來訪問,而userb就隻能使用其它"Port In"端口了,例如"8080",他的網站隻能通過"http://:8080"來訪問了。FTP服務器的道理也是一樣。
附:
PortTunnel的下載地址:
http://www.steelbytes.com/download/PortTunnel_CH.zip (中文)
http://www.steelbytes.com/download/PortTunnel_ENGUK.zip (English)
這裏,Port In是要監聽的端口,port out是要映射的端口。比如你想監聽服務器的88端口,映射到你的機器的80端口,這裏的port in便是88,port out便是80。默認的FTP端口是21,如果想開FTP服務器,這裏可以是21。
添加後,點"start",服務器開始。程序自動加入係統服務,每次開機便會自動啟動。
以上兩步完成,一切OK!
好了,現在可以用你申請的 "d2g域名:監聽端口" 來訪問你的機器了。
第二章 透過局域網架網站
如今寬帶已經不再是一個新鮮名詞了,很多朋友也希望能夠為豐富網絡資源貢獻一些自己的力量,而通過寬帶架設Web網站或者是提供FTP下載服務則是最佳的選擇。不過現在很多寬帶用戶都是使用電信、長城、聚友等一些城域網,也就是說整個公司在Internet上隻有一個真正的IP地址,然後公司局域網內部的計算機通過服務器共享上網,對於這種情況如何建造自己的FTP站點就是一件令人頭痛不已的事情。其實局域網內部的計算機也可以架設FTP服務器的,不過這需要一個端口映射軟件的幫助,如果你也想在局域網中架設FTP網站的話,不妨一起來看看吧。
由於整個局域網在Internet上隻有一個真正的IP地址,而這個IP地址是屬於局域網中服務器獨有的,即使我們在其它計算機中通過Ser-U等軟件架設了FTP站點,但是無法讓Internet上的朋友使用。這是為什麼呢?打個比方說,如果你僅僅知道朋友在某幢寫字樓上班,但是不知道它具體的房間,你就無法找到他。同樣的道理,如果直接在局域網中架設FTP,那麼Internet上的朋友登錄的時候僅僅可以找到局域網中的服務器,但是至於怎樣才能連接到你的計算機上就是一個問號了。為了解決這個問題,我們在局域網中建造自己FTP站點的時候需要一個端口映射軟件來幫助,在此推薦一個小巧實用的工具-PortTunnel,它可以幫助大家輕鬆搞定這一切。顧名思義,PortTunnel的中文意思就是"端口通道",它的作用就是在服務器上為你的計算機指定一條通道,使得Internet上的朋友可以順利的與你建立連接。
在使用PortTunnel之前有一點需要強調,就是它必須運行在服務器端,這樣才能夠實現端口映射的目的。這時點擊下部的"增加"按鈕進行相關的設置。這裏有幾個比較重要的項目重點介紹一下:
1、名稱:在此中填寫你的名稱,這在局域網中有多台計算機需要端口映射的時候能夠區分出每一台計算機。
2、輸入端口:如果服務器端沒有運行FTP服務,則可以采用默認的"21"作為端口,否則不能使用"21",因為端口號重複將會導致係統衝突。
3、輸出端口:這裏填寫的是你計算機中的FTP服務端口,通常采用默認的"21",除非你另行指定了特殊的端口。
4、輸出地址:這裏填寫你的計算機在整個局域網中的IP地址,比如此處是"129.156.0.21"。
點擊下部的"確定"按鈕保存之後,服務器端的端口映射就完成了,這時會發現原先的主窗口中多出了一項記錄,按下"開始"就可以激活PortTunnel的端口映射服務了。此時你可以通過其他網友通過ftp://129.156.0.21:21來訪問你的FTP服務器,如果能夠順利登錄就說明已經全部搞定了。:
怎麼樣,PortTunnel的設置與使用都非常簡單吧,而且通過端口映射還可以實現在局域網內的計算機上架設Web服務器和SMTP服務器的功能,它們的設置與上麵介紹的差不多,在此就不詳述了,有興趣的朋友不妨自行嚐試一下。
說到這裏,最後再提醒大家一下:PortTunnel需要在服務器端才可以運行,至於怎樣才能讓網絡管理員為你開通端口映射就要看各位的本事了,大家就各顯神通吧。
第三章 遠程分析IIS設置
提起微軟公司IIS web服務器的安全問題,很多人立刻就會聯想到那些為人們所稱頌的致命
漏洞: UNICODE , CGI 解析, .ida,idq, .Printer遠程溢出等. 這些偉大的漏洞恐怕是我等scripts
遠程確定目錄權限
讓我們打開一個IIS服務器來看看。在IIS 服務管理器中,選擇一個目錄,看他的屬性
在目錄屬性項有有這麼一些選項(日誌訪問和索引此資源不計):
腳本資源訪問: 對網站的腳本可以讀取原文件。
讀取 讀取目錄裏麵的靜態資源。
寫入 用戶可以建立以及刪除資源
目錄瀏覽 用戶可以瀏覽目錄內容。
應用程序設置的執行許可中有三個選項:
無 隻能訪問靜態頁麵
純腳本隻允許允許腳本 如ASP腳本
腳本和可執行程序 可以訪問和執行各種文件類型
那麼,如何確定服務器上麵的這些開關設置呢?別著急,一個一個來。
執行權限
如何確定某個目錄是否開了執行權限呢?很簡單,向服務器發送一個下麵得請求:
http://iis-server/dir/no-such-file.dll
/dir/為要判斷得目錄,no-such-file.dll是隨便取得一個名字,服務器上麵沒有這個文件。
服務器對我們得請求會返回一個信息。如果返回的是一個500錯誤:
HTTP 500 - 內部服務器錯誤 (Internal Server error)
那麼就說明這個目錄的執行權限是開著的。對於服務器,能不開執行權限的就不要開。特別是虛擬目錄的執行權限,大家想一想UNICODE和二次解碼漏洞的利用過程就明白了。
如果服務器返回的是一個 404 錯誤:
HTTP 404 - 未找到文件
那麼就說明這個目錄的執行權限沒有開。
寫權限
測試一個目錄對於web用戶是否具有寫權限,采用如下方法:
telnet 到服務器的web端口(80)並發送一個如下請求:
PUT /dir/my_file.txt HTTP/1.1
Host: iis-server
Content-Length: 10
這時服務器會返回一個100( 繼續)的信息:
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:00 GMT
接著,我們輸入10個字母:
AAAAAAAAAA
送出這個請求後,看服務器的返回信息,如果是一個 201 Created響應:
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:08 GMT
Location: http://iis-server/dir/my_file.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND,
PROPPATCH, SEARCH, LOCK, UNLOCK
那麼就說明這個目錄的寫權限是開著的,反之,如果返回的是一個 403 錯誤,那麼寫權限就是
沒有開起來,如果需要你認證,並且返回一個 401(權限禁止) 的響應的話,說明是開了寫權限,但是匿名用戶不允許。如果一個目錄同時開了"寫"和"腳本和可執行程序"的話,那麼web用戶就可以上傳一個程序並且執行它,恐怖哦%^#$!~
純腳本執行權限
這樣的目錄就太多了。很多不需要給執行權限的目錄也被管理員給了腳本執行權限,我記得在
shotgun的一篇文章裏麵他說過:最小的權限+最少的服務= 最大的安全 ;一點也沒有錯。給目錄任何多餘的權限都是沒有必要的。判斷一個目錄是否可以執行純腳本文件也很簡單,發送一個如下一個請求:
http://iis-server/dir/no-such-file.asp
返回404文件不存在說明有執行權限,返回403則是沒有開。
瀏覽目錄權限
判斷一個目錄是否允許瀏覽可能需要一點點小技巧,但是,在網站的默認首頁(如:default.asp)不存在的話,那麼就再簡單不過了。在瀏覽器裏麵輸入:
http://iis-server/dir/
如果權限開著的,那麼會返回200響應,並且列出當前目錄裏麵的內容,反之,沒有列出目錄的話就是關了。但是,如果默認頁麵default.asp存在呢?敲入上麵的地址就直接打開這個頁麵了。別急,
WebDAV 裏麵有一個請求方法叫:PROFIND。這個方法使得我們可以從服務器資源裏麵得到一些如文件名,創建時間,最後修改時間等等的信息。利用它我們也可以繞過 default.asp 來判斷目錄瀏覽權限的情況, telnet到IIS-server的web端口,發送如下請求:
PROPFIND /dir/ HTTP/1.1
Host: iis-server
Content-Length: 0
這時,服務器會送回一個207 Multi Status的響應,如果目錄是允許瀏覽的,那麼同時會列出目錄裏麵的資源以及他們的屬性。如果目錄瀏覽不允許,返回的信息就會少的多。目錄瀏覽一般來說隻能算是一個低危險等級的漏洞,比如一個images目錄,裏麵除了圖片沒有別的東西了,那對於服務器的安全就沒有什麼危害,但是,如果目錄裏麵放了一個管理頁麵adminpage.asp或者一些數據庫連接信息文件,可能會導致你的服務器拱手相讓給入侵者。
讀權限
判斷這點很容易,發一個帶 txt文件的請求就可以:
http://iis-server/dir/no-such-file.txt
如果返回一個 404 文件不存在的響應,就說明讀權限是開著的,反正,返回403錯誤則說明都權限沒有開。早幾年接觸安全的人一定知道 ::$DATA泄露ASP源代碼的漏洞,其實如果一個目錄裏麵權勢asp腳本的話,那麼讀權限也可以不用開的,ASP隻需要腳本執行權限就可以了。
IIS 認證方法的判斷
這個漏洞是最近才公布出來的,IIS服務器支持匿名訪問,基本認證和使用NTLM方式的windows集成認證,如果客戶端發送一個包含認證信息的請求,IIS就會強行的嚐試用這些認證信息取認證,並且放回不會的響應。這樣我們就能夠確定IIS的認證的配置。
要確定IIS是否支持基本認證,可以telnet到服務器的80端口,發送如下請求:
GET / HTTP/1.1
Host: iis-server
Authorization: Basic c3lzdGVtOm1hbmFnZXIA
這是一個基本認證的請求,裏麵包含了一個base 64編碼的用戶ID和PASS,Basic後麵那串字符經過base 64解碼以後就是 system:manager 。如果服務器返回一個401信息,則說明基本認證選項是開著的。如果返回200信息,則有2種可能,基本認證選項沒有開或者是服務器存在一個用戶名是
system的用戶名,並且密碼是manager (猜中的話,行大運啦)。
要確定NTLM選項是否開啟則可以向IIS發送如下請求
GET / HTTP/1.1
Host: iis-server
Authorization: NegotiateTlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAA=
同樣,如果返回401消息,則說明支持NTLM,返回200說明不NTLM認證選項沒有開啟。
對於大多數網站來說,這兩種認證方式都是不需要開起來的,他們有可能泄露一些服務器的重要信息。
泄露內部IP地址信息
如果IIS服務器在一個使用NAT的防火牆裏麵的話,通常都有個內部地址如10.x.x.x。
如果IIS開啟了基本認證選項,那麼發送如下一個簡單的請求就可以得到服務器的內部IP:
GET / HTTP/1.1
Host:
Authorization: Basic c3lzdGVtOm1hbmFnZXIA
服務器將返回一個如下響應:
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.0
Date: Fri, 01 Mar 2002 15:45:32 GMT
WWW-Authenticate: Basic realm="10.1.1.2"
Connection: close
Content-Length: 3245
Content-Type: text/html
那個10.1.1.2就是機器的內部ip地址,本來realm的值是客戶端提供給的一個主機頭,但這裏它是空的,所以IIS就選擇了本機的IP地址來代替。同樣的,利用PROPFIND,WRITE,MKCOL等請求的返回信息,也能泄露主機的一些信息,如我們向服務器提請下麵這樣一個請求:
PROPFIND / HTTP/1.1
Host:
Content-Length: 0
在IIS配置成使用主機名(見後)的情況下,則不會暴露主機的IP地址,但是會暴露NetBIOS名。事實上我們可以利用IIS的認證獲得更多的信息,如所在域的名字,方法是向服務器發送如下帶NTLM認證的請求:
GET / HTTP/1.1
Host: iis-server
Authorization: NegotiateTlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAA
服務器會返回一個信息:
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.0
Date: Fri, 01 Mar 2002 16:24:58 GMT
WWW-Authenticate: Negotiate TlRMTVNTUAACAAAADAAMADAAAAAFgoKgeGvyVuvy67U
AAAAAAAAAAEQARAA8AAAAUwBDAFkATABMAEEAAgAMAFMAQwBZAEwATABBAAEA
DABTAEMAWQBMAEwAQQAEAAwAUwBDAFkATABMAEEAAwAMAFMAQwBZAEwATABB
AAAAAAA=
Content-Length: 3245
Content-Type: text/html
那一長串字符就包含了主機名和NT所在域的名字的base 64 編碼。
臨時解決方法:在cmd下進入c:\inetpub\adminscripts或者是adminiscript所在目錄執行一下命令
adsutil set w3svc/UseHostName True
net stop iisadmin /y
net start w3svc
默認應用程序映射判斷
判斷默認映射是否存在比較簡單,這裏隻簡單的給出了在映射存在的情況下對於相應請求的響應:
擴展名: .printer
請求: http://iis-server/foo.printer
響應: HTTP 500 - 內部服務器錯誤
擴展名:.idc
請求: http://iis-server/foo.idc
響應: code 500 Internal Server Error
擴展名:.idq
請求: http://iis-server/foo.idq
響應碼:200 OK
響應: 找不到 IDQ 文件 D:\dir\\foo.idq
擴展名:.ida
請求: http://iis-server/foo.ida
響應碼:200 OK
響應: 找不到 IDQ 文件 D:\dir\foo.ida
擴展名:.htr
請求: http://iis-server/foo.htr
響應: HTTP 404 - 未找到文件
擴展名:.htw
請求: http://iis-server/foo.htw
響應碼: 200 OK
響應: QUERY_STRING 的格式無效
擴展名:.stm
請求: http://iis-server/foo.stm
響應: HTTP 404 - 未找到文件
擴展名:.shtm
請求: http://iis-server/foo.shtm
響應: HTTP 404 - 未找到文件
擴展名:.shtml
請求: http://iis-server/foo.ida
響應: HTTP 404 - 未找到文件
判斷操作係統是否為個人版本(Professional/Workstation )
IIS安裝在windows2000專業版和NT workstation上麵時候,同時進行的連接數最大為10個,利用這一點我們可以簡單判斷操作係統版本:創建10個 HTTP 1.1的持續連接,第11個連接請求將放回403錯誤信息。
第四章 構建DNS服務器簡易指南
在用TCP/IP協議族架設的網絡中,每一個節點都有一個唯一的IP地址,用來作為它們唯一的標誌。然而,如果讓使用者來記住這些毫無記憶規律的IP地址將是不可想象的。人們就需要一種有記憶規律的字符串來作為唯一標記節點的名字。
然而,雖然符號名對於人來說是極為方便的,但是在計算機上實現卻不是那麼方便的。為了解決這個需求,應運而生了一個域名服務係統DNS,它運行在TCP協議之上,負責將字符名--域名轉換成實際相對應的IP地址。這個過程就是域名解析,負責域名解析的機器就叫域名服務器。
1、域名解析的方法
1.1 最早的域名解析方法
最簡單的主機名解析方法是,在一個文件中記錄所有主機名及與其對應的IP地址,並保證該文件中主機名的唯一性,通過檢索文件中的便可以完成主機名的解析。采用這種最簡單的解決方法有其曆史原因:
在整個70年代,APRANET隻是一個小規模的,由類似的數百台主機組成的團體。於是為了解決主機名解析的問題,將連接到ARPANET上每台主機的名字與對應的地址都保存在HOSTS.TXT文件中。這樣每增加一台機器,就必須修改HOSTS.TXT文件一次。隨著網絡的不斷發展,網絡中的主機數量爆炸性地增加,這種域名解析的方法已經無法適應新的解析需要。
1.2 分布式的域名服務器
這種方法,我們已經在基礎篇的第六章中有了詳細的敘述,在此就不再重複了。在這種分布式的域名服務器體係中,每一台域名服務器(DNS)負責解析屬於自己的這一部分主機的域名。
一般說來,如果你所處在公司或組織所擁有的主機並不多,一般是將域名的解析工作交給自己的ISP的域名服務器來完成。而如果你所在組織擁有的主機比較多,我們就可以組建自己的域名服務器負責解析你所在組織的主機。
2、域名服務器建立實例
2.1 實例環境
假設我們需要建立一台應用於以下情況的一個企業主域名服務器。
1. 擁有一個C類網段地址,為202.101.55.0
2. 企業域名注冊為company.com。
3. 域名服務器的IP定為202.101.55.55,主機名為dns.company.com。它同時充當Proxy.
4. 企業網通過路由器與Internet連接。
5. 要解析的服務器有:
www.company.com (202.101.55.1) Web服務器
mail.company.com (202.101.55.2) E-Mail服務器
2.2 安裝前的準備工作
首先要保證在作為係中統有/etc/resolv.conf和/etc/hosts.conf這兩個文件。/etc/resolv.conf文件中內容如下所示:
domain compay.com
nameserver 202.101.55.55
其中第一行指出對於任何希望連到它上麵的主機應該搜尋的域。而第二行指出了在哪個地址可以找到需要的域名服務大。/etc/hosts.conf的內容如下所示:
order hosts,bind
multi on
這裏的設置告訴主機名稱先在/etc/hosts文件中搜索,然後再查詢域名服務器。
2.3 定義文件/etc/named.boot
要使LINUX係統完成域名服務器的功能,則需要運行一個named的服務進程。這個服務進程可以在安裝LINUX時選中。
named啟動時需要讀取一個初始化文件--/etc/named.boot,這個文件是named的基本配置文件。它並不包含任何DNS數據,針對前麵的假定環境,我們要在這個文件中寫入:
diretory /etc/named
primary company.com db.company
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
primary 55.101.202.IN-ADDR.ARPA db.202.101.55
cache . db.cache
下麵我們逐行講解這個文件中的內容:
1) 在第一行中我們指定named從/etc/named目錄下讀取DNS數據文件。這個目錄可以自行指定並創建,指定後將所有的DNS數據文件均存放在這個目錄下;