一、FTP的功用
FTP (File Transfer Protocol),它是一種檔案傳輸的協定,
我們通常將它作為檔案儲放及交換地方。
目前在windows常見的有servU等,
但是各大學及公司行號的FTP大都是建置在Unix系統上。
目前在Fedora 2以上就有內建vsftp (very secure ftp daemon)

二、如何安裝vsftp
在linux 中就安裝,如果沒有可以透過rpm或是yum來安裝之下。
#yum install vsftp*
可以先透過rpm查詢是否安裝過 rpm -qa|grep vsftp
要啟動的話如下: /etc/rc.d/init.d/vsftpd start
ftp1
預設anonymous ftp登入就是在系統的 /var/ftp/ 之下!!
系統安裝好了之後就可以直接讓使用者個別登入(但是root無法ftp連線,主因安全性考量)!!

三、如何設定ftp
ftp本身是明碼傳送資料,如果希望較安全的方式,可以限定IP網段使用,
針對編輯/etc/hosts.allow中加入一行vsftpd:寫上可存取的IP(或是結合IPTABLES亦可)
僅允許本機
vsftpd: 127.0.0.1
允許在網址192.168.1.0/24子網段中的人:
vsftpd: 192.168.1.

允許兩個特定位址
vsftpd: 192.168.1.100 192.168.5.53

開放所有人
vsftpd: ALL

vsftpd相關設定檔:
vsftpd預設安裝完成後,會有三個設定檔
/etc/vsftpd.banned_emails -- 列出拒絕的anonymous電子郵件
如拒絕mozilla@、ie@
/etc/vsftpd.chroot_list -- 本機使用者可切至家目錄清單
預設允許所有人
若在/etc/vsftpd.conf為"chroot_local_user=NO"表在此清單中使用者才能切至其家目錄
/etc/vsftpd/vsftpd.conf -- 一般設定檔
預設所有anonymous可登入

針對系統整體設定(/etc/vsftpd/vsftpd.conf)項目說明:
local_max_rate=10000(DEFAULT:0)
最大下載速率,預設沒有限制,單位以byte/s

max_clients=200(DEFAULT:0)
同時最大下載人數,預設沒有限制

max_per_ip=4(DEFAULT:0)
同一個IP最大同時下載人數,預設沒有限制

connect_timeout=180(DEFAULT:60)
重新連線時間,單位以second

accept_timeout=180(DEFAULT:60)
連線閒置時間超180秒就中斷,單位以second

data_connection_timeout=180(DEFAULT:YES)
資料傳送閒置時間超180秒就中斷,單位以second

connect_from_port_20=YES(DEFAULT:YES)
ftp資料傳送的連線埠20 port

pasv_enable=YES(DEFAULT:NO)
啟動被動式連線(passive mode),現在都是這種模式!!

通常針對FTP要服務使用者的特性,我們會有三種設定模式:
real:提供有帳號的人可能登入ftp,可以上傳、下載。
anonymous:提供任何都可以登入,通常只提供下載,不能上傳。
restricted:限定有帳號可以登入ftp,但是只能在其家目錄中存取。
而real與restricted的情形類似,所以我針對兩種情形的設定說明如下:
anonymous:
vsftp的設定檔在 /etc/vsftpd/vsftpd.conf
利用nano /etc/vsftpd/vsftpd.conf 來編輯
將其中 anonymous_enable=YES(DEFAULT:NO),如果有#要先移除!!
加上 anon_max_rate=0(DEFAULT:0),可加可不加!!
這個設定值後面接的數值單位為bytes/秒,限制 anonymous 傳輸速度
如果是0則不限制(由最大頻寬所限制),如果您想讓 anonymous 僅有
10 KB/s 的速度,可以設定 anon_max_rate=10000
重新啟動如下: /etc/rc.d/init.d/vsftpd restart
將上面設定修改完後重新啟動vsftp就可以提供anonymous 登入!!

而anonymous ftp預設路徑為 /var/ftp 如果希望提供上傳,
必須新增 /var/ftp/upload 目錄
mkdir /var/ftp/upload 目錄
修改目錄管理者 chown ftp.ftp /var/ftp/upload
修改目錄權限 chmod 755 /var/ftp/upload
如果希望在anonymous ftp中提供上傳功能,要修改vsftpd.conf如下:
將其中 anon_upload_enable=YES,有#要先移除!!
設定anonymous 是否可以上傳檔案!!
將其中 anon_mkdir_write_enable=YES,有#要先移除!!
設定anonymous 是否上傳檔案是否可以建立目錄!!
加入此行 anon_other_write_enable=yes
設定anonymous 是否上傳檔案是否可以刪除目錄!!
加入此行 anon_umask=022 以便上傳的檔檔只能讀取!!
重新啟動如下: /etc/rc.d/init.d/vsftpd restart
將上面設定修改完後重新啟動vsftp就可以讓anonymous 登入上傳資料!!

real、restricted:
一般我們認為ftp登入主機應該如下圖
ftp
如果real的方式,就是每個在本機上有帳號都可以ftp登入
然後登入後就可以到個人目錄,但是也可以移動到其它的目錄
很明顯的這樣不是好事情!!
所以目錄先real模式很少在用,大多是restricted模式。

如果希望user登入都只能在個人目錄之下,修改vsftpd.conf
chroot_local_user=YES(DEFAULT:NO 也就是real模式)

如果希望讓特定user可以切換目錄,其它都不行的話,
可以修改vsftpd.conf 加上兩行設定
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
並將特定user寫入 /etc/vsftpd/chroot_list 之中即可!!


ftp Client端軟體

ftp的軟體相當多,filezilla是一個不錯用的open source的軟體

filezilla網站
本機下載
Last modified: Tuesday, 6 September 2011, 7:54 PM