匿名FTP

匿名FTP

匿名FTP,計算機術語之一。指匿名文件傳輸協議。

簡介


anonymous FTP(匿名FTP)
即匿名文件傳輸協議。用於對遠程計算機的連接,這些計算機是作為匿名或客戶用戶進行連接的,以將公共文件傳輸到用戶的本地計算機。
使用FTP時必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上傳或下載文件。也就是說,要想同哪一台計算機傳送文件,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一台主機上都擁有帳號。匿名FTP就是為解決這個問題而產生的。

特性


匿名FTP是這樣一種機制:用戶可通過它連接到遠程主機上,並從其下載文件,而無需成為其註冊用戶。系統管理員建立了一個特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。
通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字元串。習慣上,用自己的E-mail地址作為口令,使系統維護程序能夠記錄下來誰在存取這些文件。

範圍


值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。
當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取,系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上傳文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載。利用這種方式,遠程主機的用戶得到了保護,避免了有人上傳有問題的文件,如帶病毒的文件。

實質


匿名FTP服務的實質是:提供服務的機構在它的FTP伺服器上建立一個公開賬戶(一般為anonymous),並賦予該賬戶訪問公共目錄的許可權。用戶想要登錄到這些FTP伺服器時,無需事先申請用戶賬戶,可以用“anonymous”作為用戶名,用自己的E-mail地址或姓名作為用戶密碼,便可登錄,獲取FTP服務。

優點


匿名FTP服務的優點是:
第一,匿名FTP運用很廣,沒有什麼指定的要求。所以,每一個人都可以在匿名FTP主機上訪問文件。“big deal”是指世界上大量運用的匿名FTP,即上千的匿名主機和無數的文件都可以被免費拷貝。在Internet上,大量信息和大量計算機程序都是可獲得的,人們可以利用計算機設備和磁碟空間來獲得對自己有用的文件。匿名FTP提供進入最大信息庫的通路,並且這個庫總是不斷壯大,它不關閉,並且無所不包,還可以免費訪問。
第二,在Internet上,匿名FTP是軟體分發的主要方式。在Internet上保存所有已提供所用標準協議的有用程序。許多程序通過匿名FTP分佈,每一個人都可以建立一個Internet主機。
FTP之所有非常重要的最後一個原因是:匿名FTP被用來歸檔和傳播技術信息,從而定義了Internet自己(實現資源共享)。

基本設置


使用匿名FTP,用戶無需輸入用戶名密碼即可登錄FTP伺服器。vsftpd安裝后默認就已經開啟了匿名FTP的功能,用戶無需進行額外配置即可使用匿名登錄FTP伺服器。vsftpd相關選項的默認值如下所示:
anonymous_enable=YES //開啟匿名FTP
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
這時候用戶可以匿名方式登錄FTP伺服器,查看並下載匿名賬號主目錄下的各級子目錄和文件,但不能上傳文件或創建目錄。登錄FTP伺服器,如下所示:
#ftp localhost
Connected to localhost (127.0.0.1)
220 Welcome to Sam's Ftp Server
Name (localhost:root) : anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
列出當前目錄下的所有內容,如下所示:
ftp> ls //列出目錄下的所有內容
227 Entering Passive Mode (127.0.0.1.183.106)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Oct 14 04:31 data
-rw-r--r-- 1 0 0 31 Oct 14 04:32 files.tar
-rw-r--r-- 1 0 0 26 Oct 14 04:32 hello.log
drwxr-xr-x 2 0 0 4096 Oct 14 04:33 pub
drwxr-xr-x 2 0 0 4096 Oct 14 04:33 src
進入pub目錄,如下所示:
ftp> cd pub //進入pub子目錄
250 Directory successfully changed.
ftp>ls
227 Entering Passive Mode (127.0.0.1.111.125)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 23 Oct 14 04:33 sql.txt
-rw-r--r-- 1 0 0 20 Oct 14 04:33 sysadm.dmp
226 Directory send OK.
下載sql.txt文件,如下所示:
ftp> get sql //下載sql.txt文件
local: sql.txt remote: sql.txt
227 Entering Passive Mode (127.0.0.1.148.0)
150 Opening BINARY mode data connection for sql.txt (23 bytes).
226 File send OK.
23 byte received in 0.0001 seconds (2.1e+02 Kbytes/s)
上傳top.log文件,如下所示。
ftp> put top.log //上傳top.log文件失敗
local: top.log remote : top.log
227 Entering Passive Mode (127.0.0.1.155.93)
550 Permission denied
創建pub1目錄,如下所示:
ftp> mkdir pub1 //上傳子目錄失敗
550 Permission denied.
下面對以上的結果進行說明:
(1)Name( localhost : root ):anonymous :以匿名方式登錄FTP伺服器必須使用anonymous作為用戶賬戶。
(2)ftp>ls :與Linux 系統一樣,ls命令用於列出FTP中當前目錄下的文件和子目錄。
(3)ftp>cd pub :進入Pub目錄。
(4)ftp>get sql.txt :使用匿名賬號下載pub目錄下的sql.txt文件。
(5)ftp>put top.log :使用匿名賬號上傳top.log文件到pub目錄,但由於vsftpd的默認配置中不允許匿名賬號上傳文件,所以操作失敗。
(6)ftp>mkdir pub1 :使用匿名賬號創建子目錄pub1,但由於sftpd的默認配置中不允許匿名賬號創建目錄,所以操作失敗。