ip(網(wǎng)絡(luò)之間互連的協(xié)議):
網(wǎng)絡(luò)之間互連的協(xié)議(IP)是Internet Protocol的外語(yǔ)縮寫, 中文縮寫為“網(wǎng)協(xié)”.
網(wǎng)絡(luò)之間互連的協(xié)議也就是為計(jì)算機(jī)網(wǎng)絡(luò)相互連接進(jìn)行通信而設(shè)計(jì)的協(xié)議缺猛。在因特網(wǎng)中缨叫,它是能使連接到網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則荔燎。任何廠家生產(chǎn)的計(jì)算機(jī)系統(tǒng)耻姥,只要遵守IP協(xié)議就可以與因特網(wǎng)互連互通。IP地址具有唯一性有咨,根據(jù)用戶性質(zhì)的不同琐簇,可以分為5類。另外座享,IP還有進(jìn)入防護(hù)婉商,知識(shí)產(chǎn)權(quán),指針寄存器等含義渣叛。
端口:
"端口"是英文port的意譯丈秩,可以認(rèn)為是設(shè)備與外界通訊交流的出口。端口可分為虛擬端口和物理端口淳衙,其中虛擬端口指計(jì)算機(jī)內(nèi)部或交換機(jī)路由器內(nèi)的端口蘑秽,不可見(jiàn)。例如計(jì)算機(jī)中的80端口箫攀、21端口肠牲、23端口等。物理端口又稱為接口靴跛,是可見(jiàn)端口缀雳,計(jì)算機(jī)背板的RJ45網(wǎng)口,交換機(jī)路由器集線器等RJ45端口梢睛。電話使用RJ11插口也屬于物理端口的范疇
………………
在網(wǎng)絡(luò)技術(shù)中俏险,端口(Port)有好幾種意思严拒。集線器、交換機(jī)竖独、路由 器的端口指的是連接其他網(wǎng)絡(luò)設(shè)備的接口裤唠,如RJ-45端口、Serial端口等莹痢。我們 這里所指的端口不是指物理意義上的端口种蘸,而是特指TCP/IP協(xié)議中的端口,是邏 輯意義上的端口竞膳。
如果把IP地址比作一間房子航瞭,端口就是出入這間房子的門。真正的房子只有幾個(gè)門坦辟,但是一個(gè)IP地址的端口可以有65536個(gè)之多刊侯!端口是通過(guò)端口號(hào)來(lái)標(biāo)記的,端口號(hào)只有整數(shù)锉走,范圍是從0 到65535滨彻。
我們知道,一臺(tái)擁有IP地址的主機(jī)可以提供許多服務(wù)挪蹭,比如Web服務(wù)亭饵、FTP服務(wù)、SMTP服務(wù)等梁厉,這些服務(wù)完全可以通過(guò)1個(gè)IP地址來(lái) 實(shí)現(xiàn)辜羊。那么,主機(jī)是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢词顾?顯然不能只靠IP地址八秃,因?yàn)镮P 地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對(duì)多的關(guān)系。實(shí)際上是通過(guò)“IP地址+端口號(hào)”來(lái)區(qū) 分不同的服務(wù)的肉盹。
需要注意的是昔驱,端口并不是一一對(duì)應(yīng)的。比如你的電腦作為客戶機(jī)訪 問(wèn)一臺(tái)WWW服務(wù)器時(shí)垮媒,WWW服務(wù)器使用“80”端口與你的電腦通信,但你的電腦則 可能使用“3457”這樣的端口航棱,如圖1所示睡雇。
按對(duì)應(yīng)的協(xié)議類型,端口有兩種:TCP端口和UDP端口饮醇。由于TCP和UDP 兩個(gè)協(xié)議是獨(dú)立的它抱,因此各自的端口號(hào)也相互獨(dú)立,比如TCP有235端口朴艰,UDP也 可以有235端口观蓄,兩者并不沖突混移。
1.周知端口(Well Known Ports)
周知端口是眾所周知的端口號(hào),范圍從0到1023侮穿,其中80端口分配給W WW服務(wù)歌径,21端口分配給FTP服務(wù)等。我們?cè)贗E的地址欄里輸入一個(gè)網(wǎng)址的時(shí)候( 比如www.cce.com.cn)是不必指定端口號(hào)的亲茅,因?yàn)樵谀J(rèn)情況下WWW服務(wù)的端口 號(hào)是“80”回铛。
網(wǎng)絡(luò)服務(wù)是可以使用其他端口號(hào)的,如果不是默認(rèn)的端口號(hào)則應(yīng)該在 地址欄上指定端口號(hào)克锣,方法是在地址后面加上冒號(hào)“:”(半角)茵肃,再加上端口 號(hào)。比如使用“8080”作為WWW服務(wù)的端口袭祟,則需要在地址欄里輸入“www.cce.com.cn:8080”验残。
但是有些系統(tǒng)協(xié)議使用固定的端口號(hào),它是不能被改變的巾乳,比如139 端口專門用于NetBIOS與TCP/IP之間的通信您没,不能手動(dòng)改變。
2.動(dòng)態(tài)端口(Dynamic Ports)
動(dòng)態(tài)端口的范圍是從1024到65535想鹰。之所以稱為動(dòng)態(tài)端口紊婉,是因?yàn)樗?一般不固定分配某種服務(wù),而是動(dòng)態(tài)分配辑舷。動(dòng)態(tài)分配是指當(dāng)一個(gè)系統(tǒng)進(jìn)程或應(yīng)用 程序進(jìn)程需要網(wǎng)絡(luò)通信時(shí)喻犁,它向主機(jī)申請(qǐng)一個(gè)端口,主機(jī)從可用的端口號(hào)中分配 一個(gè)供它使用何缓。當(dāng)這個(gè)進(jìn)程關(guān)閉時(shí)肢础,同時(shí)也就釋放了所占用的端口號(hào)。
怎樣查看端口
一臺(tái)服務(wù)器有大量的端口在使用碌廓,怎么來(lái)查看端口呢传轰?有兩種方式: 一種是利用系統(tǒng)內(nèi)置的命令,一種是利用第三方端口掃描軟件谷婆。
1.用“netstat -an”查看端口狀態(tài)
在Windows 2000/XP中慨蛙,可以在命令提示符下使用“netstat -an”查 看系統(tǒng)端口狀態(tài),可以列出系統(tǒng)正在開(kāi)放的端口號(hào)及其狀態(tài).
2.用第三方端口掃描軟件
第三方端口掃描軟件有許多纪挎,界面雖然千差萬(wàn)別期贫,但是功能卻是類似 的。這里以“Fport” (可到http://www.ccert.edu.cn/tools/index.php?type_t=7或http://www.ccidnet.com/soft/cce下載)為例講解异袄⊥常“Fport”在命令提示符下使用,運(yùn)行結(jié)果 與“netstat -an”相似,但是它不僅能夠列出正在使用的端口號(hào)及類型封孙,還可 以列出端口被哪個(gè)應(yīng)用程序使用.
“端口”迹冤,通俗地講就是一個(gè)通信通道的“門”,各種計(jì)算機(jī)服務(wù)和通信都是通過(guò)特定的端口與外部計(jì)算機(jī)進(jìn)行通信虎忌,像常見(jiàn)的WWW泡徙、FTP、Telnet服務(wù)一樣呐籽。
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展锋勺,原來(lái)物理上的接口(如鍵盤、鼠標(biāo)狡蝶、網(wǎng)卡庶橱、顯示卡等輸入/輸出接口)已不能滿足網(wǎng)絡(luò)通信的要求,TCP/IP協(xié)議作為網(wǎng)絡(luò)通信的標(biāo)準(zhǔn)協(xié)議就解決了這個(gè)通信難題贪惹。TCP/IP協(xié)議集成到操作系統(tǒng)的內(nèi)核中苏章,這就相當(dāng)于在操作系統(tǒng)中引入了一種新的輸入/輸出接口技術(shù)。因?yàn)樵赥CP/IP協(xié)議中引入了一種稱之為“Socket”(套接字)應(yīng)用程序接口奏瞬。有了這樣一種接口技術(shù)枫绅,一臺(tái)計(jì)算機(jī)就可以通過(guò)軟件的方式與任何一臺(tái)具有Socket接口的計(jì)算機(jī)進(jìn)行通信。
有了這些端口后硼端,這些端口又是如何工作的呢并淋?例如,一臺(tái)服務(wù)器為什么可以同時(shí)是Web服務(wù)器珍昨,也可以是FTP服務(wù)器县耽,還可以是郵件服務(wù)器?其中一個(gè)很重要的原因是各種服務(wù)采用不同的端口分別提供不同的服務(wù)镣典,比如兔毙,通常TCP/IP協(xié)議規(guī)定Web采用80號(hào)端口,F(xiàn)TP采用21號(hào)端口等兄春,而郵件服務(wù)器是采用25(SMTP服務(wù))澎剥、110(POP3服務(wù))號(hào)端口。這樣赶舆,通過(guò)不同端口哑姚,計(jì)算機(jī)就可以與外界進(jìn)行互不干擾的通信。
每臺(tái)計(jì)算機(jī)主機(jī)中可以有65 535個(gè)端口芜茵,但是實(shí)際上常用的端口才幾十個(gè)叙量,由此可以看出未定義的端口相當(dāng)多。這是那么多黑客程序都可以采用某種方法夕晓,定義出一個(gè)特殊的端口來(lái)達(dá)到入侵的目的的原因所在宛乃。為了定義出這個(gè)端口悠咱,就要依靠某種程序在計(jì)算機(jī)啟動(dòng)之前自動(dòng)加載到內(nèi)存蒸辆,強(qiáng)行控制計(jì)算機(jī)打開(kāi)那個(gè)特殊的端口征炼。這個(gè)程序就是“后門”程序。這些后門程序就是常說(shuō)的木馬程序躬贡。簡(jiǎn)單地說(shuō)谆奥,這些木馬程序在入侵前是先通過(guò)某種手段在一臺(tái)個(gè)人計(jì)算機(jī)中植入一個(gè)程序,打開(kāi)某個(gè)(些)特定的端口拂玻,俗稱“后門”( BackDoor)酸些,使這臺(tái)計(jì)算機(jī)變成一臺(tái)開(kāi)放性極高(用戶擁有極高權(quán)限)的FTP服務(wù)器,然后從后門就可以達(dá)到侵入的目的檐蚜。
1.端口的分類
端口的分類根據(jù)其參考對(duì)象不同有不同劃分方法魄懂,如果從端口的性質(zhì)來(lái)分,通炒车冢可以分為以下幾類市栗。
公認(rèn)端口(Well Known Ports):這類端口也常稱之為“常用端口”。這類端口的端口號(hào)從0到1023咳短,它們緊密綁定于一些特定的服務(wù)填帽。通常這些端口的通信明確表明了某種服務(wù)的協(xié)議,這種端口不可再重新定義它的作用對(duì)象咙好。例如篡腌,80號(hào)端口實(shí)際上總是HTTP通信所使用的,而23號(hào)端口則是Telnet服務(wù)專用的勾效。這些端口像木馬這樣的黑客程序通常不會(huì)利用嘹悼。為了使大家對(duì)這些常用端口多一些認(rèn)識(shí),在本章后面將詳細(xì)把這些端口所對(duì)應(yīng)的服務(wù)進(jìn)行列表葵第,供各位理解和參考绘迁。
注冊(cè)端口(Registered Ports):端口號(hào)從1 024到49 151。它們松散地綁定于一些服務(wù)卒密。也就是說(shuō)有許多服務(wù)綁定于這些端口缀台,這些端口同樣用于許多其他目的。這些端口多數(shù)沒(méi)有明確的定義服務(wù)對(duì)象哮奇,不同程序可根據(jù)實(shí)際需要自己定義膛腐,如后面要介紹的遠(yuǎn)程控制軟件和木馬程序中都會(huì)有這些端口的定義的。記住這些常見(jiàn)的程序端口在木馬程序的防護(hù)和查殺上是非常有必要的鼎俘。常見(jiàn)木馬所使用的端口在后面將有詳細(xì)的列表哲身。
動(dòng)態(tài)和/或私有端口(Dynamic and/or Private Ports):端口號(hào)從49 152到65 535。理論上贸伐,不應(yīng)為服務(wù)分配這些端口勘天。實(shí)際上,有些較為特殊的程序,特別是一些木馬程序就非常喜歡用這些端口脯丝,因?yàn)檫@些端口常常不被引起注意商膊,容易隱蔽。
2.TCP和UDP協(xié)議端口
如果根據(jù)所提供的服務(wù)方式的不同宠进,端口(此處的“端口”特別針對(duì)傳輸層而言)又可分為“TCP協(xié)議端口”和“UDP協(xié)議端口”兩種(其實(shí)其他協(xié)議也有“端口”晕拆,但它們不稱之為端口,而是稱之為“協(xié)議號(hào)”材蹬,如IP協(xié)議號(hào))实幕。因?yàn)橛?jì)算機(jī)之間相互通信一般采用這兩種通信協(xié)議。前面所介紹的“連接方式”是一種直接與接收方進(jìn)行的連接堤器,發(fā)送信息以后昆庇,可以確認(rèn)信息是否到達(dá)。這種方式大多采用TCP協(xié)議闸溃;另一種不是直接與接收方進(jìn)行連接凰锡,只管把信息放在網(wǎng)上發(fā)出去,而不管信息是否到達(dá)圈暗,也就是前面所介紹的“無(wú)連接方式”掂为。這種方式大多采用UDP協(xié)議,IP協(xié)議也是一種無(wú)連接方式员串。對(duì)應(yīng)使用以上這兩種通信協(xié)議的服務(wù)所提供的端口勇哗,也就分為“TCP協(xié)議端口”和“UDP協(xié)議端口”。
使用TCP協(xié)議的常見(jiàn)端口主要有以下幾種寸齐。
FTP:定義了文件傳輸協(xié)議欲诺,使用21號(hào)端口。常說(shuō)某某計(jì)算機(jī)開(kāi)了FTP服務(wù)便是啟動(dòng)了文件傳輸服務(wù)渺鹦。下載文件扰法,上傳主頁(yè),都要用到FTP服務(wù)毅厚。
Telnet:它是一種用于遠(yuǎn)程登錄的端口塞颁,用戶可以以自己的身份遠(yuǎn)程連接到計(jì)算機(jī)上,通過(guò)這種端口可以提供一種基于DOS模式下的通信服務(wù)吸耿。如以前的BBS是純字符界面的祠锣,支持BBS的服務(wù)器將23號(hào)端口打開(kāi),對(duì)外提供服務(wù)咽安。
SMTP:定義了簡(jiǎn)單郵件傳送協(xié)議伴网,現(xiàn)在很多郵件服務(wù)器用的都是這個(gè)協(xié)議,用于發(fā)送郵件妆棒。如常用的免費(fèi)郵件服務(wù)中用的是這種郵件服務(wù)器端口澡腾,所以在電子郵件設(shè)置中撤蟹看到有SMTP端口設(shè)置這個(gè)欄,服務(wù)器開(kāi)放的是25號(hào)端口动分。
POP3:與SMTP對(duì)應(yīng)馋评,用于接收郵件。通常情況下刺啦,POP3協(xié)議所用的是110號(hào)端口。也是說(shuō)纠脾,只要有相應(yīng)的使用POP3協(xié)議的程序(例如Foxmail或Outlook)玛瘸,就可以不以Web方式登錄進(jìn)郵箱界面(如是163郵箱就沒(méi)有必要先進(jìn)入網(wǎng)易網(wǎng)站,再進(jìn)入自己的郵箱來(lái)收信)苟蹈,直接用郵件程序就可以收到郵件糊渊。
使用UDP協(xié)議端口常見(jiàn)的有以下幾種。
HTTP:這是大家用得最多的協(xié)議慧脱,就是常說(shuō)的“超文本傳輸協(xié)議”渺绒。上網(wǎng)瀏覽網(wǎng)頁(yè)時(shí),就得在提供網(wǎng)頁(yè)資源的計(jì)算機(jī)上打開(kāi)其80號(hào)端口以提供服務(wù)菱鸥。常說(shuō)的WWW服務(wù)宗兼、Web服務(wù)器用的是這個(gè)端口。
DNS:用于域名解析服務(wù)氮采。這種服務(wù)在Windows NT系統(tǒng)中用得最多殷绍。互聯(lián)網(wǎng)上的每一臺(tái)計(jì)算機(jī)都有一個(gè)網(wǎng)絡(luò)地址與之對(duì)應(yīng)鹊漠,這個(gè)地址是常說(shuō)的IP地址主到,它以純數(shù)字的形式表示。然而這卻不便記憶躯概,于是出現(xiàn)了域名登钥,訪問(wèn)計(jì)算機(jī)的時(shí)候只需要知道域名,域名和IP地址之間的變換由DNS服務(wù)器來(lái)完成娶靡。DNS用的是53號(hào)端口牧牢。
SNMP:簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,使用161號(hào)端口姿锭,是用來(lái)管理網(wǎng)絡(luò)設(shè)備的结执。由于網(wǎng)絡(luò)設(shè)備很多,無(wú)連接的服務(wù)就體現(xiàn)出其優(yōu)勢(shì)艾凯。
OICQ:程序既接受服務(wù)献幔,又提供服務(wù),這樣兩個(gè)聊天的人才是平等的趾诗。OICQ用的是無(wú)連接的協(xié)議蜡感,也是說(shuō)它用的是UDP協(xié)議蹬蚁,其服務(wù)器使用8 000號(hào)端口,偵聽(tīng)是否有信息到來(lái)郑兴,客戶端使用4 000號(hào)端口犀斋,向外發(fā)送信息。如果上述兩個(gè)端口正在使用(有很多人同時(shí)和幾個(gè)好友聊天)情连,就順序往上加叽粹。
關(guān)于綁定IP地址與端口號(hào)的見(jiàn)解
客戶和服務(wù)器通過(guò)調(diào)用函數(shù)bind時(shí)可以指定IP地址或端口號(hào),可以都指定却舀,也可以都不指定虫几,根據(jù)期望的結(jié)果,對(duì)sin_addr和sin_port挽拔,或sin6_addr和sin6_port應(yīng)置為什么值辆脸,下面做了總結(jié):
進(jìn)程指定 結(jié)果 IP地址端口
通配地址 0 內(nèi)核選擇IP地址和端口
通配地址 非0 內(nèi)核選擇IP地址,進(jìn)程指定端口
本地IP地址 0 進(jìn)程指定IP地址螃诅,內(nèi)核選擇端口
本地IP地址 非0 進(jìn)程指定IP地址和端口
l 客戶端
1. TCP客戶端:
1) 當(dāng)TCP客戶未綁定IP地址啡氢,當(dāng)它調(diào)用connect時(shí)內(nèi)核會(huì)根據(jù)外出接口給它綁定一個(gè)IP地址和一個(gè)臨時(shí)端口號(hào)。并且TCP服務(wù)器在接到這個(gè)連接后會(huì)以這個(gè)IP地址作為回應(yīng)數(shù)據(jù)報(bào)的目的IP地址术裸。
2) 當(dāng)TCP客戶綁定了IP地址倘是,它就為發(fā)出的數(shù)據(jù)連接指定了一個(gè)源IP地址,并且TCP服務(wù)器在接到這個(gè)連接后會(huì)以這個(gè)IP地址作為回應(yīng)數(shù)據(jù)報(bào)的目的IP地址袭艺。
3) TCP客戶只能根據(jù)四元組(原端口號(hào)辨绊,原IP地址,目的端口號(hào)匹表,目的IP地址)接受數(shù)據(jù)報(bào)门坷。
2. UDP客戶端:
1) 當(dāng)UDP客戶未綁定IP地址,當(dāng)它調(diào)用sendto時(shí)內(nèi)核會(huì)根據(jù)外出接口給它綁定一個(gè)IP地址和一個(gè)臨時(shí)端口號(hào)袍镀。(UDP客戶可以接收到達(dá)它綁定的臨時(shí)端口的任何UDP數(shù)據(jù)報(bào))默蚌。
2) 當(dāng)UDP客戶綁定了IP地址,它就為發(fā)出的數(shù)據(jù)報(bào)指定了一個(gè)源IP地址苇羡,并且UDP服務(wù)器在接到這個(gè)數(shù)據(jù)報(bào)后會(huì)以這個(gè)IP地址作為回應(yīng)數(shù)據(jù)報(bào)的目的IP地址绸吸。(UDP客戶只能接收到達(dá)它綁定的臨時(shí)端口并且目的地址為它綁定的IP地址的UDP數(shù)據(jù)報(bào))。
3) 當(dāng)UDP客戶調(diào)用connect设江,內(nèi)核記錄下對(duì)方的IP地址和端口號(hào)麦乞,它們包含在傳遞給connect的套接口地址結(jié)構(gòu)中装诡,并為UDP客戶綁定了一個(gè)臨時(shí)端口號(hào)和IP地址。(UDP客戶只能接收目的IP地址為它綁定的IP地址和端口號(hào)并且源IP地址為它指定對(duì)方的IP地址和端口號(hào)的數(shù)據(jù)報(bào))。
l 服務(wù)器端
1. TCP服務(wù)器:
1) 當(dāng)TCP服務(wù)器綁定通配IP地址愿棋,套接口會(huì)接收到達(dá)它綁定端口的任何TCP連接唧领。并以接收的目的IP地址作為它的源IP地址(用以確定四源組)处嫌,以接收的源IP地址作為它的目的IP地址發(fā)回應(yīng)答。
2) 當(dāng)TCP服務(wù)器綁定本地IP地址笨篷,這就限制了套接口只接收到達(dá)它綁定端口并且目的地址為此IP地址的客戶連接。以綁定的目的IP地址作為源IP地址(當(dāng)然瓣履,綁定的IP地址肯定與接收連接的目的IP地址相同率翅,否則它不會(huì)接收),并以接收的源IP地址作為它的目的IP地址發(fā)回應(yīng)答袖迎。
2. UDP服務(wù)器:
1) 當(dāng)UDP服務(wù)器綁定通配IP地址冕臭,套接口會(huì)接收到達(dá)它綁定端口的任何UDP數(shù)據(jù)報(bào)。并以數(shù)據(jù)報(bào)的外出接口的主IP地址為源IP地址燕锥,以接收到的源IP地址作為它的目的IP地址發(fā)回應(yīng)答辜贵。
2) 當(dāng)UDP服務(wù)器綁定本機(jī)IP地址,這就限制了套接口只接收到達(dá)它綁定端口并且目的地址為此IP地址的UDP數(shù)據(jù)報(bào)脯宿。并以綁定的IP地址作為源IP地址,以接收的源IP地址作為它的目的IP地址發(fā)回應(yīng)答泉粉。
3) 當(dāng)UDP服務(wù)器調(diào)用connect连霉,內(nèi)核記錄下對(duì)方的IP地址和端口號(hào),它們包含在傳遞給connect的套接口地址結(jié)構(gòu)中嗡靡,并為UDP服務(wù)器綁定了一個(gè)臨時(shí)端口號(hào)和IP地址跺撼。(UDP服務(wù)器只能接收目的IP地址為它綁定的IP地址和端口號(hào)并且源IP地址為它指定對(duì)方的IP地址和端口號(hào)的數(shù)據(jù)報(bào))。