一、寫在前面的話 Internet網在我國是從1996年開始進入迅猛發展時期的,隨著網絡神話的不斷誕生,更多的年輕人加入到這個令人神往的行業中來,俗話說的好:“林子大了,什麼鳥都有”,網絡也一樣,良莠不齊,在絕大多數網絡人員為祖國的信息產業獻策獻力的時候,少數人卻為展示自己或獲得某種利益而實施網絡攻擊,最終落得身陷囹圄甚至命絕黃泉的下場,5自學網,實在可悲可歎。但由於網絡的特殊魅力,網絡攻擊者可謂是前僕後繼,一浪高過一浪。因此,當大家在與網絡接觸的過程中往往會遭到一些不明的侵襲,比如:聊天室裡你的屏幕上突然被打開了無數的窗口、使用OICQ時一下子收到了大量的垃圾信息、使用從某網站下載的軟件後你發現機器處理速度明顯變慢了、當你浏覽某網站的時候突然機器藍屏死機了、到電信局交網費的時候你發現拿到的是近乎天文數字的帳單,如此種種,都表明你受到了網上的非法侵害。其實我自從不斷地收到網友的求助以來,已經有一些時日了,早就有寫一篇關於網絡自我防護方面文章的想法,但由於工作和生活等原因,一直沒能靜下心來寫一寫,現在大家的呼聲越來越高,最終決定倉促提筆,把自己的心得體會用通俗易懂的語言獻給大家,但由於本人的經歷和水平有限,肯定會有很多不當之處,敬請批評指正。二、了解一點網絡小常識1、什麼是IP地址? 為了區別所有連接在Intenet上的電腦,我們上網的每台電腦都至少會有一個IP地址,格式為: xxx.xxx.xxx.xxx (其中x代表0-9的數字,xxx的大小在0到255之間)比如:一般機器的本地IP地址是127.0.0.1。其實IP地址相當於你在Internet上的身份證號碼,是用於區別他人的,所以在Internet裡是沒有兩個IP地址是相同的。2、撥號用戶的IP地址是每次都變化的 對於撥號上網的用戶,你每次撥號上網被分配的IP地址是變化的。比如:這次你的IP地址是202.102.243.48,下次可能是202.102.243.170或其他,但在整個Internet裡仍然是唯一的,並且在你沒有掛斷之前一直是不變的。不少撥號上網的網友對IP地址每次都變化表示困惑,我是這樣理解的:假如你的ISP(網絡服務提供商)有1000個撥號用戶,而它只擁有500個IP,事實上經你的ISP統計,一般同時上網的用戶不超過400人,所以給它的撥號用戶隨機從500個IP中分配不僅是可行的,而且是劃算的。當然你若肯向你的ISP額外付費的話,完全可以獲得一個撥號的固定IP,但這對大多數撥號用戶來說是不必要的。3、每個網卡至少可以綁定一個IP地址 大多數時候,分配給網卡的IP地址是固定的,事實上一個網卡可以同時綁定多個IP地址,網卡主要用在兩種環境:一種是綁定一個外部IP地址直接接入Internet網,一般用於Internet服務器或專線用戶上網;另一種是綁定一個內部IP地址和其他機器連接成一個局域網,當然若局域網服務器設置有DHCP服務器的話,也可以給局域網內部的每台工作站分配動態的內部IP地址。若有Proxy代理服務器的話,還可以訪問外部Internet網,事實上不少企業和網吧都是通過代理服務器實現內部機器上網的,這樣不僅節省了IP地址,而且安全性更好些。4、我上網後怎麼才能知道我的IP地址?首先撥號上網,之後按照如下步驟操作:n 對於Windows 95: 開始菜單->運行->winipcfg 回車,將看到如下信息:以上說明這是一個撥號連接,IP地址為:202.102.231.181。n 對於Windows 98和Me: 開始菜單->程序->MSDOS->ipconfig 回車,將看到如下信息:Ethernet adapter 本地連接: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.0.2 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1以上說明這是一個以太網卡,IP地址為:192.168.0.2,子網掩碼為:255.255.255.0,默認網關為:192.168.0.1PPP adapter 撥號連接: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 202.102.231.181 Subnet Mask . . . . . . . . . . . : 255.255.255.255 Default Gateway . . . . . . . . . : 202.102.231.181注:IP地址查看程序文件winipcfg.exe和ipconfig.exe一般就在你安裝的Windows目錄裡,不用到其他地方下載。5、Port端口有什麼作用? Port端口是用來標識不同Intenet服務的,具體說是對應於電腦系統裡面運行著的能提供某種網絡服務的進程。打個比方:某公司的總機電話是88881234,電腦部的分機電話是101,網絡部的分機電話是102,依次類推。那麼我要找該公司電腦部的人,首先要知道公司總機電話888881234,而且還要知道101才能接通,同樣要找網絡部的話就要知道102... 這裡的88881234就相當於IP地址,101和102就相當於端口,是用來區分同一公司的不同服務部門的,也就是說我知道了某台服務器的IP地址,並向它提供端口號,它才能把你需要的數據傳送給你,當然那個端口必須是開放的,就好比公司的電腦部必須有人值班一樣。一般來說我們的浏覽器默認是向IP地址為80的端口發送請求的。常見的端口號及相應的服務如下:端口號協議作用說明21FTP文件傳送用CuteFtp等Ftp軟件維護網站用的就是該協議23TELNET遠程登錄管理員和黑客遠程控制系統的最基本手段25SMTP發送郵件Outlook Express或FoxMail等郵件程序發Email用53DNS域名解析實現域名和IP地址之間的轉換80HTTPWeb服務為Internet Explorer等浏覽器提供網頁服務,最常用110POP3郵件接收Outlook Express或FoxMail等郵件程序收Email用注:端口范圍為0-65535, 0-1024為系統使用,剩下的用戶自己定義,所以聊天軟件和木馬等使用的端口大多都大於1024。6、我知道對方的IP地址,如何判斷對方是否在網上? 基本方法是使用windows系統自己帶的網絡檢測程序ping.exe程序,該程序的原理是,向指定的IP地址發送一定長度的數據包,按照約定,若指定IP地址存在的話,會返回同樣大小的數據包,當然,若在特定的時間內沒有返回,就是“超時”,就認為指定的IP地址不存在。操作步驟如下(假定對方的IP地址為202.102.224.25):
開始菜單->程序->MSDOS->ping 202.102.224.25 回車若出現信息 “Reply from ...”等如下信息 說明對方在網上!Reply from 202.102.224.25: bytes=32 time“代理服務器”,填入代理服務器的IP地址(192.168.0.1)和端口(一般為8080)即可。對於使用Wingate和Sygate代理軟件的客戶端設置只需要把tcp/ip協議屬性裡面的網關設置成192.168.0.1即可。從以上我們可以看出,使用代理服務器至少有兩個好處:一是你不能訪問的資源現在可以訪問了;二是你沒有和你要訪問的服務器直接打交道,那個服務器自然就無法知道你的真實的IP地址,它只能知道你的代理服務器的IP地址,而你的代理服務器可能與你一點關系都沒有。注:代理服務器的外部地址可以是固定的(DDN專線上網),也可以是動態的(Modem撥號上網、一線通ISDN或網絡快車ADSL等)。8、什麼是TCP和UDP協議? TCP是面向連接的傳送協議,就是說你首先要把你的IP地址和請求信息發送給對方,對方同意後也會把它的IP地址和許可信息發送給你,你收到對方的許可信息後,還要告訴對方:“我也准備好了!”,然後就可以和對方進行數據傳送了。其中建立連接的過程一般叫“三次握手”。因為過程煩瑣,所以速度慢些,但可靠性高。數據結構如下:IP頭TCP頭數據注:(1)IP頭裡包括發送方和接收方的IP地址和使用的協議類型。(2)TCP頭裡包括發送方和接收方的端口。UDP是無連接的傳送協議,自學教程,就是說你不用握手,也不用知道對方是否在網上,只要知道對方的IP地址,發過去就是了,若對方在網上就可能收到了,否則根本收不到。但由於過程簡單,所以速度快,當然可靠性就低了。IP頭UDP頭數據注:IP頭裡包括發送方和接收方的IP地址和端口(1)IP頭裡包括發送方和接收方的IP地址和使用的協議類型(2)UDP頭裡包括發送方和接收方的端口舉例:HTTP、FTP和mIRC等用的都是TCP協議。DNS和OICQ等用的是UDP協議。9、如何才能隱藏上網的IP地址? 對於這個問題,我個人認為:基本上是不可能的。為什麼說是基本上呢?是因為有的時候是可以的、是相對的。具體實現IP隱藏的方法主要有兩種:(1)使用代理服務器 從上面可以知道使用代理服務器就能實現對其他服務器的IP地址隱藏,但是你對代理服務器是無法隱藏的,因為你是必須和代理服務器直接打交道的。(2)發送數據時改掉IP數據包裡的你的IP地址 說到底,在Internet網上傳輸的所有數據(包含有你的IP地址),都是以IP數據包的形式傳送的,所以可以在發送IP數據包之前先把自己的IP地址改掉,然後再發送,自然對方就無法獲得你的IP地址了,相當於實現了IP地址隱藏。但問題是,你若使用的是TCP協議的話,對方即便許可了也無法把許可信息發送給你,而是發送到了你改掉的IP地址那裡去了,結果你和對方無法建立連接,當然也就無法從對方獲得數據,基本上沒什麼意義,但是對於有些探測是可行的,比如端口掃描器。當然對於UDP就很有效果了,不少網絡炸彈就是用UDP實現IP地址隱藏的。 事實上,現在的Windows平台的網絡炸彈大多是沒有實現IP地址隱藏的。原因是在Windwos 95/98/Me/NT上的Winsock庫不支持對IP頭的修改和自定義,在Windows2000和Unix/Linux才允許。當然,完全可以通過自己寫一套底層的Socket庫來實現,但這樣並不容易,更多的是通過寫Vxd/WDM/Sys等設備驅動程序來實現的,當然對一般編程人員而言,也有一定難度。
所以,總結一下就是:在網絡上隱藏IP地址基本上是不現實的。三、構建一個安全的操作系統 在這裡說是構建一個安全的操作系統,更確切的應該是說保證操作系統的網絡功能安全,因為無論是Windows 95還是Windows 98的網絡功能都存在安全漏洞,可以導致遠程的D.O.S(拒絕服務)攻擊,而出現TCP/IP棧崩潰、Modem掉線、系統凝固、藍屏錯誤和系統重新啟動等現象。1、常見D.O.S攻擊軟件介紹(1)WinNuke: 通過發送OOB漏洞導致系統藍屏,是最早的Windows 95攻擊器。(2)Bonk: 通過發送大量偽造的UDP數據包導致系統重啟動。(3)TearDrop: