FTP
通常情況下,計算機聯網的主要目的是實現資源共享,包括信息資源、硬體資源、軟體資源的共享等,以方便人與人之間更廣泛的溝通交流,其中檔案傳輸是信息共享非常重要的內容和手段之一。網際網路上早期實現傳輸檔案,並不是一件容易的事,隨著網際網路的不斷發展,連線網際網路的計算機已無法統計,而且運行各種不同的作業系統,而要完成各種作業系統之間的檔案傳輸問題,就需要建立一個統一的檔案傳箱協定,這就是所謂的FTP(File Transfer Protocol檔案傳輸協定)。
FTP協定
檔案傳輸協定(FTP)是在TCP/IP網路上兩台計算機之間傳送檔案的協定,也是TCP/IP網路和INTERNET上最早使用的協定之一,它位於網路協定組的套用層。FTP使用TCP生成一個虛擬連線用於控制信息,然後再生成一個單獨的TCP連線用於數據傳輸。
FTP工作原理
與許多網際網路套用一樣,FTP服務也是一個客戶機用反務器系統(C/S)。用戶通過一個支持FTP協定的客戶端程式,連線到遠程主機上的FTP伺服器程式。用戶通過客戶端程式向伺服器程式發出命令,伺服器程式執行用戶所發出的命令,並將執行的結果返回到客戶端。
以檔案下載為例,當啟動FTP客戶端程式從遠程計算機下載檔案時,事實上啟動了兩個程式:一個本機上的FTP客戶端程式,它向FTP伺服器提出拷下載檔案的請求;另一個是啟動了遠程計算機的上的FTP伺服器程式,它回響你的請求並將指定的檔案傳送到你的計算機中。目前,FTP的套用軟體有很多,如伺服器端的有Server-U、FileZilla等,客戶端的有CuteFtp 、 FlashFTP等,極大的方便了用戶的使用。
匿名FTP
背景
用戶使用FTP時必須首先登錄,在遠程FTP伺服器上獲得相應的許可權以後,才能夠上載或下載檔案。也就是說,只有輸人用戶帳號和口令,否則無法傳送檔案。而這種情況違背了網際網路的開放性,網際網路上的FTP伺服器成千上萬,不可能要求每個用戶在每台FTP伺服器上都擁有帳號。這樣,便有了匿名FTP的概念和套用。
工作機制
匿名FCP是這樣一種機制,用戶可通過它連線到遠程FTP伺服器上,進行檔案的上傳或下載,而不需要成為其註冊用戶。系統管理員建立一個特殊的用戶帳號(匿名帳號),一般名為anonymous或助,網際網路上的任何人在任何地方都可使用該用戶的帳號。
通過FTP程式連線匿名FTP伺服器的方式同連線普通FTP伺服器的方式類似,只是在要求提供用戶帳號時必須輸人anonymous或ftP,而該用戶帳號的口令可以是任意的字元。
當遠程伺服器提供匿名FTP服務時,會預先指定某些目錄及檔案向公眾開放,允許匿名用戶的存取,而系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP伺服器都只允許用戶下載檔案,而不允許用戶上傳檔案。
創建匿名FTP伺服器的方法
(1)增加新用戶ftp,設定其主目錄對任何用戶都無寫許可權;
(2)新建立一個組anonymou,它只能被匿名ftp使用;
(3)在ftp用戶的主目錄下創建一個bin目錄,它屬於root用戶,而且對任何用戶都不能寫;
(4)在ftp用戶主目錄下創建一個etc目錄,它屬於root用戶,而且對任何用戶都不能寫;
(5)在ftp用戶主目錄下創建一個public目錄,它屬於ftp用戶,而且對任何用戶都能寫。如果由於安全等原因,不允許其他用戶在您的計算機上具有存儲能力,那么可以將其許可權設定成555;
(6)將ls程式放到已創建的bin目錄下,並將其修改成111方式,即對任何用戶只能執行;
(7)在已創建的etc目錄下,創建passwd和group兩個檔案,並將它們設定成444方式(唯讀)。
匿名FTP的建立示例
不同作業系統環境下匿名FTP服務的建立可能略有不同,下面以AIX為例介紹Unix環境下匿名FTP伺服器的建立及其套用。
以下所有操作都必須在root登錄環境下執行。
(1)增加匿名用戶ftp(可以設定為anonymous等其他名字),設定其主目錄為root所有且對任何用戶都無寫許可權。
mkuser home="/home/ftp" ftp
chmod 555小ome/ftp
chown root /home/ftp
設定匿名用戶ftp的主目錄為/home/ftp,強烈建議主目錄不要建在/etc、/bin、/usr、/usr/bin、/dev之下。
(2)在ftP用戶的主目錄下創建一個bin目錄,它屬於root用戶,而且對任何用戶都不能寫。
cd /home/frp
mkdir bin
chown root bin
chgrp system /home/,tp/bin
chmod 555 /home/ftp/bin
(3)將ls程式放到已創建的bin目錄下,並將其修改成111方式,即對任何用戶只能執行。
cp /bin/ls /home/frplbin/ls
chmod 111 /home/ftp/bin/ls
(4)在ftp用戶主目錄下創建一個etc目錄,它屬於root用戶,而且對任何用戶都不能寫。
mkdir etc
chown root etc
chmod S55 etc
chirp system /home/ftp/etc
(5)在ftp用戶主目錄下創建一個pub目錄,對任何用戶都能讀寫,用於存放可供公共用戶存取的文檔。如果由於安全等原因,不允許其他用戶在計算機上具有存儲能力,那么可以將其許可權設定成555:
mkdir pub
chmod 777 pub
(或chmod 555 pub)
chgrp system /home/ftp/pub
(6)在ftp用戶主目錄下創建一個lib目錄,它屬於root用戶,而且對任何用戶都不能寫,再考人必要的庫檔案。
mkdir lib
chmod 555 lib
chown root lib
chgrp system /home/ftp/lib
cp /lib/libc.a lib/libc.a
cp /lib/libcurses.a lib/libcurses.a
cp /lib/libcrypt.a lib/libcrypt.a
(7)停止、啟動ftpd守護進程,使以上改動生效。
stop src -t ftp
start src -t ftp