FTP相關內容

FTP相關介紹

FTP

1)File Transfer Protocol ( FTP ) 是至關古老的網絡協議之一,他最主要的功能就是進行 Server端與 Client 端之間的檔案傳送的功能。這個協議使用的是明碼傳輸方式,所以在使用過程當中存在安全問題。
    2)FTP的傳輸使用的是tcp傳輸協議,是一種C/S模式架構,服務端經過FTP服務向用戶提供FTP服務,客戶端經過客戶端命令鏈接服務器來進行指令的執行與數據的傳輸。
    3)TCP/IP協議中,FTP標準命令TCP端口號爲21,Port方式數據端口爲20。FTP的任務是從一臺計算機將文件傳送到另外一臺計算機,不受操做系統的限制。須要進行遠程文件傳輸的計算機必須安裝和運行ftp客戶程序。

FTP雙通道協議:數據和命令鏈接

三次握手來創建tcp會話鏈接,而FTP服務使用了這種創建鏈接的過程。這種鏈接分別是數據傳輸鏈接和命令通訊鏈接。
    數據傳輸鏈接:指數據的傳輸,是按需建立和關閉的鏈接。
    命令通訊鏈接:指文件管理類命令,始終在線的鏈接。

FTP的傳輸方式

FTP的傳輸有兩種方式:ASCII、二進制(默認)。
    ASCII傳輸方式
        假定用戶正在拷貝的文件包含的簡單ASCII碼文本,若是在遠程機器上運行的不是UNIX,當文件傳輸時ftp一般會自動地調整文件的內容以便於把文件解釋成另外那臺計算機存儲文本文件的格式。
        可是經常有這樣的狀況,用戶正在傳輸的文件包含的不是文本文件,它們多是程序,數據庫,字處理文件或者壓縮文件。在拷貝任何非文本文件以前,用binary 命令告訴ftp逐字拷貝。
    二進制傳輸模式
        在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
        如在ASCII方式下傳輸二進制文件,即便不須要也仍會轉譯。這會損壞數據。(ASCII方式通常假設每一字符的第一有效位無心義,由於ASCII字符組合不使用它。若是傳輸二進制文件,全部的位都是重要的。)

FTP支持的模式

FTP支持兩種模式:Standard (PORT方式,主動方式),Passive (PASV,被動方式)。
    主動(port模式):服務器主動鏈接
        主動方式是指數據傳輸鏈接由服務器主動建立,服務端主動去鏈接客戶端的某個隨機端口。
        過程:
            1》客戶端先隨機一個端口如5000,而後客戶端以這個端口去鏈接服務端的21端口來完成命令鏈接的創建
            2》在完成命令鏈接創建後,服務端會根據當前的配置(主動方式)以tcp的20號端口主動去鏈接對應客戶端的50001(5000+1)號端口來進行數據傳輸的鏈接。
            3》在數據傳輸鏈接創建完成後就開始數據的傳輸,數據傳輸的格式就是上面所說明的(源數據是什麼格式編碼的就以什麼格式傳輸)
            or
            PORT(主動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,客戶端在命令鏈路上用PORT 命令告訴服務器:「我打開了XX端口,你過來鏈接我」。因而服務器從20端口向客戶端的 XX端口發送鏈接請求,創建一條數據鏈路來傳送數據。
            
    被動(passive模式):客戶端主動鏈接
        被動方式是指數據傳輸鏈接由客戶端的某個隨機端口去鏈接服務端的某個隨機端口。
        過程:
            1》客戶端先隨機一個端口如5000,而後客戶端以這個端口去鏈接服務端的21端口來完成命令鏈接的創建。
            2》在完成命令鏈接創建後,服務端會根據當前的配置(被動方式)告訴客戶端請鏈接個人6000端口(隨機)來進行數據的傳輸。
            3》因而乎,客戶端就以5001(5000+1)號端口去鏈接服務端的6000端口來進行數據傳輸的鏈接。
            4》在數據傳輸鏈接創建完成後,就開始數據的傳輸,數據傳輸的格式就是上面所說明的(源數據是什麼格式編碼的就以什麼格式傳輸)。
            or
            PASV(被動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請 求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,服務器在命令鏈路上用PASV 命令告訴客戶端:「我打開了XX端口,你過來鏈接我」。因而客戶端向服務器的XX端口 發送鏈接請求,創建一條數據鏈路來傳送數據。
        服務器被動模式數據端口示例:
            227 Entering Passive Mode (192,168,175,138,224,59)
            服務器數據端口爲:224*256+59
    從上面能夠看出,兩種方式的命令鏈路鏈接方法是同樣的,而數據鏈路的創建方法就徹底不一樣。

FTP的相關應用軟件程序

FTP 服務器:
        Wu-ftpd
        Proftpd
        Pureftpd
        ServU
        IIS
        vsftpd
            Very Secure FTP Daemon,CentOS默認FTP服務器;高速、穩定,下載速度是WU-FTP的兩倍。ftp數據單機最多可支持15000個併發
    
    客戶端軟件:
        ftp
            ftp -A ftpserver port  -A主動模式 -p被動模式
        lftp
            lftp –u username ftpserver
            lftp username@ftpserver
        lftpget
            lftpget ftp://ftpserver/pub/file
        wget
        curl
        gftp
            GUI centos5 最新版2.0.19 (11/30/2008)
        filezilla 
        CuteFtp
        FlashFXP 
        LeapFtp
        IE ftp://username:password@ftpserver

FTP用戶身份

FTP能夠實現不一樣等級的用戶身份登陸驗證,這就能夠根據不一樣的用戶身份來分配不一樣的數據操做權限。
    Real賬戶
        這類用戶是指在FTP服務上擁有賬號。當這類用戶登陸FTP服務器的時候,其默認的主目錄就是其賬號命名的目錄。可是,其還能夠變動到其餘目錄中去。如系統的主目錄等等。
    Guest用戶
        在FTP服務器中,咱們每每會給不一樣的部門或者某個特定的用戶設置一個賬戶。可是,這個帳戶有個特色,就是其只可以訪問本身的主目錄。服務器經過這種方式來保障FTP服務上其餘文件的安全性。這類賬戶,在Vsftpd軟件中就叫作Guest用戶。擁有這類用戶的賬戶,只可以訪問其主目錄下的目錄,而不得訪問主目錄之外的文件。
    Anonymous(匿名)用戶
        這也是咱們一般所說的匿名訪問。這類用戶是指在FTP服務器中沒有指定賬戶,可是其仍然能夠進行匿名訪問某些公開的資源,是能夠下載這些共享資源,通常不能夠上傳資源。即便有些匿名FTP主機確實容許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另外一個公共下載目錄中,供其餘用戶下載。對應的用戶有ftp,anonymous,不須要密碼就能夠登陸訪問。
    系統用戶:
        Linux 用戶, 用戶/etc/passwd, 密碼/etc/shadow
    虛擬用戶:
        是非系統用戶,是特定服務的專用用戶,有獨立的用戶/密碼文件。虛擬用戶在系統上根本就不存在,所以沒法完成對服務器的操做,因此經過虛擬用戶能夠必定程度上減小ftp攻擊對系統的威脅。
    在組建FTP服務器的時候,咱們就須要根據用戶的類型,對用戶進行歸類。默認狀況下,Vsftpd服務器會把創建的全部賬戶都歸屬爲Real用戶。

FTP的狀態碼

1XX :信息     125 :數據鏈接打開
    2XX :成功類狀態  200 :命令OK 
        230 :登陸成功
    3XX :補充類    331 :用戶名OK
    4XX :客戶端錯誤  425 :不能打開數據鏈接
    5XX :服務器錯誤  530 :不能登陸
相關文章
相關標籤/搜索