追隨Java
          簡單的事情重復做,就會產生累積效應!
          posts - 260,  comments - 338,  trackbacks - 0
          一 摘要

              端口是個網絡應用中很重要的東西,相當于“門”了。

          二 什么是端口

              在Internet上,各主機間通過TCP/TP協議發送和接收數據報,各個數據報根據其目的主機的ip地址來進行互聯網絡中的路由選擇。可見,把數據報順利的傳送到目的主機是沒有問題的。問題出在哪里呢?我們知道大多數操作系統都支持多程序(進程)同時運行,那么目的主機應該把接收到的數據報傳送給眾多同時運行的進程中的哪一個呢?顯然這個問題有待解決,端口機制便由此被引入進來。

              本地操作系統會給那些有需求的進程分配協議端口(protocal port,即我們常說的端口),每個協議端口由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據報后,將根據報文首部的目的端口號,把數據發送到相應端口,而與此端口相對應的那個進程將會領取數據并等待下一組數據的到來。說到這里,端口的概念似乎仍然抽象,那么繼續跟我來,別走開。

              端口其實就是隊,操作系統為各個進程分配了不同的隊,數據報按照目的端口被推入相應的隊中,等待被進程取用,在極特殊的情況下,這個隊也是有可能溢出的,不過操作系統允許各進程指定和調整自己的隊的大小。
          不光接受數據報的進程需要開啟它自己的端口,發送數據報的進程也需要開啟端口,這樣,數據報中將會標識有源端口,以便接受方能順利的回傳數據報到這個端口。

          三 端口的分類

              在Internet上,按照協議類型分類,端口被分為TCP端口和UDP端口兩類,雖然他們都用正整數標識,但這并不會引起歧義,比如TCP的80端口和UDP的80端口,因為數據報在標明端口的同時,還將標明端口的類型。

              從端口的分配來看,端口被分為固定端口和動態端口兩大類(一些教程還將極少被用到的高端口劃分為第三類:私有端口):
              固定端口(0-1023):
              使用集中式管理機制,即服從一個管理機構對端口的指派,這個機構負責發布這些指派。由于這些端口緊綁于一些服務,所以我們會經常掃描這些端口來判斷對方是否開啟了這些服務,如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟知的端口;
              動態端口(1024-49151):
              這些端口并不被固定的捆綁于某一服務,操作系統將這些端口動態的分配給各個進程,同一進程兩次分配有可能分配到不同的端口。不過一些應用程序并不愿意使用操作系統分配的動態端口,他們有其自己的‘商標性’端口,如oicq客戶端的4000端口,木馬冰河的7626端口等都是固定而出名的。

          四 端口在入侵中的作用

              有人曾經把服務器比作房子,而把端口比作通向不同房間(服務)的門,如果不考慮細節的話,這是一個不錯的比喻。入侵者要占領這間房子,勢必要破門而入(物理入侵另說),那么對于入侵者來說,了解房子開了幾扇門,都是什么樣的門,門后面有什么東西就顯得至關重要。

              入侵者通常會用掃描器對目標主機的端口進行掃描,以確定哪些端口是開放的,從開放的端口,入侵者可以知道目標主機大致提供了哪些服務,進而猜測可能存在的漏洞,因此對端口的掃描可以幫助我們更好的了解目標主機,而對于管理員,掃描本機的開放端口也是做好安全防范的第一步。

          五 端口的相關工具

          1 netstat -an
              的確,這并不是一個工具,但他是查看自己所開放端口的最方便方法,在cmd中輸入這個命令就可以了。如下:
          C:\>netstat -an

          Active Connections

          Proto  Local Address          Foreign Address        State
          TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
          TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
          TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
          TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
          TCP    0.0.0.0:1028           0.0.0.0:0              LISTENING
          TCP    0.0.0.0:3372           0.0.0.0:0              LISTENING
          UDP    0.0.0.0:135            *:*
          UDP    0.0.0.0:445            *:*
          UDP    0.0.0.0:1027           *:*
          UDP    127.0.0.1:1029         *:*
          UDP    127.0.0.1:1030         *:*

              這是我沒上網的時候機器所開的端口,兩個135和445是固定端口,其余幾個都是動態端口。

          2 fport.exe和mport.exe
              這也是兩個命令行下查看本地機器開放端口的小程序,其實與netstat -an這個命令大同小異,只不過它能夠顯示打開端口的進程,信息更多一些而已,如果你懷疑自己的奇怪端口可能是木馬,那就用他們查查吧。

          3 activeport.exe(也稱aports.exe)
              還是用來查看本地機器開放端口的東東,除了具有上面兩個程序的全部功能外,他還有兩個更吸引人之處:圖形界面以及可以關閉端口。這對菜鳥來說是個絕對好用的東西,推薦使用喔。

          4 superscan3.0
              它的大名你不會沒聽說過吧,純端口掃描類軟件中的NO.1,速度快而且可以指定掃描的端口,不多說了,絕對必備工具。

          六 保護好自己的端口

              剛接觸網絡的朋友一般都對自己的端口很敏感,總怕自己的電腦開放了過多端口,更怕其中就有后門程序的端口,但由于對端口不是很熟悉,所以也沒有解決辦法,上起網來提心吊膽。其實保護自己的端口并不是那么難,只要做好下面幾點就行了:

          1) 查看:經常用命令或軟件查看本地所開放的端口,看是否有可疑端口;

          2) 判斷:如果開放端口中有你不熟悉的,應該馬上查找端口大全或木馬常見端口等資料(網上多的很),看看里面對你那個可疑端口的作用描述,或者通過軟件查看開啟此端口的進程來進行判斷;

          3) 關閉:如果真是木馬端口或者資料中沒有這個端口的描述,那么應該關閉此端口,你可以用防火墻來屏蔽此端口,也可以用本地連接-TCP/IP-高級-選項-TCP/IP篩選,啟用篩選機制來篩選端口;

              注意:判斷時候要慎重,因為一些動態分配的端口也容易引起你多余的懷疑,這類端口一般比較低,且連續。還有,一些狡猾的后門軟件,他們會借用80等一些常見端口來進行通信(穿透了防火墻),令人防不勝防,因此不輕易運行陌生程序才是關鍵。
          posted on 2005-10-07 14:52 Harryson 閱讀(582) 評論(0)  編輯  收藏 所屬分類: NetWork

          <2005年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(10)

          隨筆分類(319)

          AJAX

          Coffee House

          CSS

          Java

          JavaScript

          Open Source

          ProjectManagement

          友情Blog

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 舒城县| 壶关县| 荣成市| 定日县| 张北县| 南丹县| 壶关县| 文昌市| 阿克苏市| 六枝特区| 南充市| 洪雅县| 晋中市| 沙田区| 和田县| 博白县| 平顶山市| 黄山市| 阳山县| 清河县| 康马县| 新巴尔虎右旗| 陈巴尔虎旗| 隆林| 泊头市| 白玉县| 南和县| 舒城县| 巨野县| 比如县| 隆尧县| 芦溪县| 扬中市| 淳化县| 凤翔县| 渝中区| 宜州市| 汝城县| 烟台市| 博白县| 大同市|