亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux Vsftpd安裝、配置 FTP常用功能

系統 2091 0

?

?

轉自:http://book.51cto.com/art/201005/199709.htm

?

11.2? Vsftpd簡介

Vsftpd是一種在GPL許可下開放源代碼的FTP服務器,用于多種UNIX系統和Linux系統。Vsftpd也稱為Very Secure FTP Daemon,它是一種安全、快速、穩定的FTP服務器,能夠高效地處理大量的并發連接。

11.2.1? Vsftpd軟件包的獲取與安裝

Vsftpd的主要特點包括:

提供安全的體系結構,根據任務的最低特權需求單獨執行每個任務。

支持虛擬IP配置,可以在提供一個IP地址的情況下,在域中用該地址建立多個FTP服務器。

允許配置并使用虛擬用戶,從而與系統用戶賬戶分離。

支持TCP封裝。

允許配置匿名服務器,用戶可以在不需要身份驗證的情況下上傳和下載文件。

性能穩定,可以處理大量的并發連接。

可以配置為獨立的服務器。

Vsftpd服務器支持帶寬控制。

Linux幾乎所有的發行版本都內置了Vsftpd服務,Red Hat Enterprise Linux 5 也自帶了Vsftpd服務。對于已經安裝了Vsftpd的Red Hat Enterprise Linux 5,可以選擇【應用程序】|【添加/刪除軟件】中的【軟件包管理者】選項,查看Vsftpd服務,如圖11.1所示。

也可以在終端執行以下命令,查看系統是否已經安裝了Vsftpd軟件包:

  1. #?rpm?-qa|grep?Vsftpd ?
  2. vsftpd-2.0.5-10.el5?

如果出現以上結果,表明已安裝vsftpd-2.0.5-10.el5.i386.rpm。

Vsftpd軟件包的安裝方法有兩種。

1.手動安裝Vsftpd軟件包

用戶可以在 http://vsftpd.beasts.org/ 上下載需要的Vsftpd RPM安裝包,也可以在Red Hat Enterprise Linux 5的安裝盤中找到需要安裝的RMP,用rpm -ivh命令進行安裝。安裝RMP時需要擁有系統的root權限。以安裝vsftpd-2.0.5-10.el5.i386.rpm為例,應使用以下命令:

  1. #?rpm?-ivh?vsftpd-2.0.5-10.el5.i386.rpm?

?

Linux Vsftpd安裝、配置 FTP常用功能 ?
(點擊查看大圖)圖11.1? 查看Vsftpd軟件包

2.根據源代碼編譯安裝

在需要更高版本或需要對安裝過程進行定制的情況下,可以用vsftpd的源代碼進行編譯安裝。源代碼可以從 http://vsftp.beasts.org 網站下載,最新的版本是vsftpd-2.0.5.tar.gz。默認的配置中,Vsftpd需要使用nobody用戶和/usr/share/empty目錄。在安裝Red Hat Enterprise Linux 5時,系統會自動創建nobody用戶,和/usr/share/empty目錄。可以通過以下命令測試該用戶和目錄是否已經存在,如果不存在則創建該用戶和目錄。

  1. #?useradd?nobody ?
  2. #?mkdir?/usr/share/empty?

如果nobody用戶已經存在,系統會提示"useradd: 用戶nobody已經存在"。如果目錄/usr/share/empty目錄已經存在,系統會提示"目錄已存在"。

如果需要Vsftpd支持匿名服務,應使用以下命令創建ftp用戶,并使其具有home目錄的權限:

  1. #?mkdir?/var/ftp ?
  2. #?useradd?-d?/var/ftp?ftp ?
  3. #?chown?root.root?/var/ftp ?
  4. #?chmod?og-w?/var/ftp?

用戶和目錄權限設置完成后,可以進行編譯安裝,使用命令如下:

  1. #?tar?-zxvf?vsftpd-2.0.5.tar.gz ?
  2. #?cd?vsftpd-2.0.5 ?
  3. #?make ?
  4. #?make?install?

安裝完成后,需要將配置文件復制到/etc目錄下:

  1. #?cp?vsftpd.conf?/etc/?

然后使用以下命令,允許本地用戶登錄服務器:

  1. #?cp?RedHat/vsftpd.pam?/etc/pam.d/ftp?

最后,編輯配置文件/etc/vsftpd.conf,在最后一行加入listen=YES,并保存。

在命令行輸入以下命令即可啟動Vsftpd:

  1. #?vsftpd?& ?
  2. [1]?3457?

&表示Vsftpd在后臺運行。可以用以下命令對編譯安裝的Vsftpd進行檢測:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?anonymous ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ftp>?ls ?
  14. 227?Entering?Passive?Mode?(127,0,0,1,71,146) ?
  15. 150?Here?comes?the?directory?listing. ?
  16. drwxr-xr-x????2?0????????0????????????4096?Jan?17??2007?pub ?
  17. 226?Directory?send?OK. ?
  18. ftp>?bye ?
  19. 221?Goodbye.?

下面對以上檢測結果做幾點說明。

# ftp localhost

表示連接本地服務器。

220 (vsFTPd 2.0.5)

表示Vsftpd2.0.5是已安裝的Vsftpd的版本。

Name (localhost:root): anonymous

表示輸入用戶名,此處為匿名(anonymous)用戶。

Password:

表示Password之后應輸入密碼,但在Linux終端下不顯示所輸入的密碼內容。

230 Login successful

提示登錄成功。

ftp> ls

在"ftp>"提示符下,表示正在使用Vsftpd服務,ls命令可查看服務器上的文件。

ftp> bye?221 Goodbye.

表示退出Vsftpd服務器。

安裝完成后可以看到,Vsftpd的文件布局結構很簡潔,如表11.1所示。

表11.1? Vsftpd文件布局

/etc/vsftpd/vsftpd.conf

主配置文件

/usr/sbin/vsftpd

Vsftpd的主程序

/etc/rc.d/init.d/vsftpd

啟動腳本

/etc/pam.d/vsftpd

PAM認證文件

/etc/vsftpd.ftpusers

禁止使用Vsftpd的用戶列表文件

/etc/vsftpd.user_list

禁止或允許使用Vsftpd的用戶列表文件

/var/ftp

匿名用戶主目錄

/var/ftp/pub

匿名用戶的下載目錄


此外,還有一些說明文檔和手冊文件。Vsftpd的日志文件位于/etc/logrotate.d/vsftpd.log目錄下。

?

?

?

11.2.2? 啟動和關閉Vsftpd

1.用命令行方式啟動和停止

在Red Hat Enterprise Linux 5中,通過命令行方式啟動和停止Vsftpd服務可使用如下命令。

啟動Vsftpd服務

其命令為:

  1. #?service?vsftpd?start ?
  2. 為?vsftpd?啟動?vsftpd:????????????????????????????????????[確定]?

停止Vsftpd服務

停止Vsftpd服務的命令為:

  1. #?service?vsftpd?stop ?
  2. 關閉?vsftpd:??????????????????????????????????????????????[確定]?

重新啟動Vsftpd服務

重新啟動Vsftpd服務的命令為:

  1. #?service?vsftpd?restart ?
  2. 關閉?vsftpd:??????????????????????????????????????????????[確定]?
  3. 為 vsftpd 啟動 vsftpd:?????????????????????????????????? [確定]

檢查Vsftpd服務狀態

可以采用以下命令檢查Vsftpd服務的運行狀態:

  1. service?vsftpd?status ?
  2. vsftpd?(pid?3571)?正在運行...?

也可以使用以下命令,實現相同的結果:

  1. #?/etc/init.d/vsftpd?start ?
  2. #?/etc/init.d/vsftpd?stop ?
  3. #?/etc/init.d/vsftpd?restart?

2.自動啟動Vsftpd服務

對于系統自帶的Vsftpd服務,如果希望Vsftpd服務在系統啟動時自動加載,可以執行"ntsysv"命令,啟動服務配置程序。找到其中的"vsftpd"服務,在其前面選擇"*"(星號),并選擇【確定】按鈕即可,如圖11.2所示。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.2? 設置自動運行Vsftpd服務

此外,還有一種更簡單的圖形化方法。依次選擇【系統】|【管理】|【服務器設置】|【服務】命令,系統將打開【服務配置】窗口,如圖11.3所示。在左側窗口中找到【vsftpd】選項,就可以對Vsftpd執行啟動、停止和重啟等操作。如果選中【vsftpd】選項前面的復選框,則可以在每次啟動系統時自動運行Vsftpd服務。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.3 【服務配置】窗口

?

?

?

11.3? Vsftpd服務器配置

Vsftpd服務器的配置主要通過修改其主配置文件Vsftpd.conf完成。需要注意的是,更改vsftpd.conf文件后,必須重啟Vsftpd服務才能使設置生效。

11.3.1? 配置vsftpd.conf文件

Vsftpd的主配置文件vsftpd.conf位于/etc/目錄下。vsftpd.conf文件決定了Vsftpd FTP服務器的主要操作。vsftpd.conf 文件由若干配置選項組成,下面介紹其中重要的配置選項。

anonymous_enable=NO/YES

是否允許anonymous登錄FTP服務器,默認設置為YES(允許)。

local_enable=NO/YES

是否允許本地用戶登錄FTP 服務器,默認設置為YES(允許)。

write_enable=NO/YES

是否允許用戶對FTP服務器文件具有寫權限,默認設置為YES(允許)。

local_umask=022 (或者其他值)

設置本地用戶的文件生成掩碼,默認值為077,也可以根據個人喜好將其設置為其他值。

anon_upload_enable= NO/YES

是否允許匿名用戶上傳文件,默認設置為YES(允許)。

anon_mkdir_write_enable= NO/YES

是否允許匿名用戶創建新文件夾。默認設置為YES(允許)。

dirmessage_enable=YES

是否激活目錄歡迎信息功能,當用戶首次訪問服務器上某個目錄時,FTP服務器將顯示歡迎信息。默認情況下,歡迎信息是通過目錄下的.message文件獲得的。

xferlog_enable=YES

是否啟用上傳和下載日志的功能。

ftpd_banner=Welcome to blah FTP service

在FTP服務器中設置歡迎登錄信息。當用戶登錄到FTP服務器后,會看到歡迎信息"Welcome to blah FTP service"。

chroot_list_enable=NO/YES

chroot_list_file=/etc/vsftpd.chroot_list

"chroot"是FTP服務器配置中的重要選項。若"chroot_list_enable"設置為"YES",Vsftpd將在"chroot_list_file"選項值的位置尋找chroot_list文件,"/etc/vsftpd.chroot_list"文件中包含的用戶,在登錄后將不能切換到自己目錄以外的其他目錄,由FTP服務器自動地"chrooted"到用戶自己的home目錄下。這將使得chroot_list文件中的用戶不能隨意轉到其他用戶的FTP home目錄下,從而有利于FTP服務器的安全管理和隱私保護。

userlist_enable=NO/YES

userlist_deny=NO/YES

"userlist_enable"選項默認值為"NO",此時ftpusers文件中的用戶禁止登錄FTP服務器。如果userlist_enable設置為"YES",則user_list文件中的用戶允許登錄FTP服務器。而如果同時設置了userlist_deny值為"YES",則user_list文件中的用戶將不允許登錄FTP服務器。

listen=YES

如果設置為"YES",則Vsftpd將以獨立模式運行,由Vsftpd自己監聽和處理連接請求。

?

?

?

?

11.3.2? vsftpd/ftpusers與vsfptd/user-list文件配置

在/etc/目錄下的vsftpd/ftpusers和vsftpd/user-list兩個文件與主配置文件中的"userlist_enable"和"userlist_deny"選項有著密切聯系。兩個文件中,每個用戶名需占用一行。

以下是默認情況下ftpusers文件的內容:

  1. #?Users?that?are?not?allowed?to?login?via?ftp ?
  2. root ?
  3. bin ?
  4. daemon ?
  5. adm ?
  6. lp ?
  7. sync ?
  8. shutdown ?
  9. halt ?
  10. mail ?
  11. news ?
  12. uucp ?
  13. operator ?
  14. games ?
  15. nobody?

以下是默認情況下user_list文件的內容:

  1. #?vsftpd?userlist ?
  2. #?If?userlist_deny=NO,?only?allow?users?in?this?file ?
  3. #?If?userlist_deny=YES?(default),?never?allow
    users?in?this?file,?and ?
  4. #?do?not?even?prompt?for?a?password. ?
  5. #?Note?that?the?default?vsftpd?pam?config?also?
    checks?/etc/vsftpd/ftpusers ?
  6. #?for?users?that?are?denied. ?
  7. root ?
  8. bin ?
  9. daemon ?
  10. adm ?
  11. lp ?
  12. sync ?
  13. shutdown ?
  14. halt ?
  15. mail ?
  16. news ?
  17. uucp ?
  18. operator ?
  19. games ?
  20. nobody?

比較兩個文件的內容,會發現它們實際上是一樣的。在使用兩個文件時的區別在于,當userlist_enable為YES時,如果一個用戶名在"vsftpd/user_list"文件中,而同時"userlist_deny"選項為"YES",則該用戶在試圖登錄FTP服務器時,將不能夠登錄,甚至連輸入密碼的提示信息都沒有,直接被FTP服務器拒絕。

而如果一個用戶名在"vsftpd/ftpusers"文件中,同時"userlist_deny"選項為"YES",則該用戶在試圖登錄FTP服務器時,將能看到輸入密碼的提示,但即使正確輸入密碼仍然不能登錄FTP服務器。

userlist_deny選項和user_list文件一起能夠有效地阻止"root"、"apache"和"www"等系統用戶登錄FTP服務器,從而保證了FTP服務器的分級安全性。

?

11.3.3? 匿名FTP設置(1)

在登錄FTP服務器的用戶不確定的情況下,應將FTP服務器設置為允許匿名賬號登錄的FTP服務器。啟用匿名賬號,并對匿名賬號服務進行管理是匿名FTP設置的主要內容。

1.啟用匿名賬號

啟用匿名賬號及之后其他配置,均需要對vsftpd.conf文件進行修改,因此,在開始配置之前應當備份/etc/vsftpd/vsftpd.conf文件,以便于在修改過程中出現無法恢復的錯誤時,能夠恢復到初始設置。

對/etc/vsftpd/vsftpd.conf文件做如下修改:

  1. anonymous_enable=YES?
  2. local_enable=YES?
  3. write_enable=YES?
  4. listen=YES?

配置好后,需要重新啟動Vsftpd。完成上述配置后,Vsftpd將允許匿名賬號登錄FTP服務器,允許本地賬號登錄,同時允許匿名用戶具有對FTP服務器文件的寫權限,并且只能下載文件而不能上傳。匿名用戶的口令為一個E-mail地址。測試的結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?anonymous ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ftp>?ls ?
  14. 227?Entering?Passive?Mode?(127,0,0,1,204,140) ?
  15. 150?Here?comes?the?directory?listing. ?
  16. drwxr-xr-x????2?0????????0????????????4096?Jan?17??2007?pub ?
  17. 226?Directory?send?OK. ?
  18. ?
  19. ftp>?cd?pub ?
  20. 250?Directory?successfully?changed. ?
  21. ftp>?ls ?
  22. 227?Entering?Passive?Mode?(127,0,0,1,25,100) ?
  23. 150?Here?comes?the?directory?listing. ?
  24. -rw-rw-rw-????1?0????????0??????????????34?Sep?11?07:48?hello.txt ?
  25. 226?Directory?send?OK. ?
  26. ftp>?get?hello.txt ?
  27. local:?hello.txt?remote:?hello.txt ?
  28. 227?Entering?Passive?Mode?(127,0,0,1,181,217) ?
  29. 150?Opening?BINARY?mode?data?connection?for?hello.txt?(34?bytes). ?
  30. 226?File?send?OK. ?
  31. 34?bytes?received?in?0.0017?seconds?(19?Kbytes/s) ?
  32. ?
  33. ftp>?!ls ?
  34. bridge.txt??hello.txt??webalizer.conf ?
  35. ?
  36. ftp>?put?webalizer.conf ?
  37. local:?webalizer.conf?remote:?webalizer.conf ?
  38. 227?Entering?Passive?Mode?(127,0,0,1,147,155) ?
  39. 550?Permission?denied. ?
  40. ftp>?mkdir?test ?
  41. 550?Permission?denied.?

下面對以上測試結果做幾點說明。

Name (localhost:root): anonymous

表示用匿名賬號登錄。

ftp> ls

列出匿名賬號在FTP服務器上的目錄。

ftp> cd pub

表示更改目錄,進入pub文件夾。

ftp> get hello.txt

用匿名賬號下載pub文件夾中的hello.txt文件。

ftp> !ls

bridge.txt? hello.txt? webalizer.conf

顯示剛才下載的文件是否已下載到本地。

ftp> put webalizer.conf

匿名賬號上傳webalizer.conf文件失敗,不允許匿名賬號上傳文件。

ftp> mkdir test

匿名賬號創建文件夾失敗,不允許匿名賬號建立文件夾。

2.允許匿名賬號上傳文件

若要允許匿名賬號上傳文件,需要對/etc/vsftpd/vsftpd.conf文件做如下修改:

  1. anon_upload_enable=YES?
  2. anon_mkdir_write_enable=YES?

即把文件中anon_upload_enable=YES和anon_mkdir_write_enable=YES前的"#"去掉,無須修改其他配置。所謂能上傳文件,也就是具有在FTP服務器的本地目錄中新建文件和文件夾的功能。為了測試上傳文件功能,可以先在/var/ftp目錄中建立一個新目錄"test",并設置該文件夾具有寫權限。

創建新目錄"test",如圖11.4所示。

修改test目錄的權限。

在"test"上單擊鼠標右鍵,并在彈出的快捷菜單中選擇【屬性】命令,打開如圖 11.5所示的【test屬性】對話框,選擇【權限】選項卡,設置相應權限。將【所有者】設置為"ftp-FTP User",【群組】設置為"ftp",并設置相應的【文件夾訪問】、【文件訪問】和【執行】權限。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.4? 新建"test"目錄
Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.5 【test屬性】對話框

重啟Vsftpd服務

測試的結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?anonymous ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ?
  14. ftp>?ls ?
  15. 227?Entering?Passive?Mode?(127,0,0,1,68,56) ?
  16. 150?Here?comes?the?directory?listing. ?
  17. drwxr-xr-x????2?0????????0????????????4096?Sep?11?07:48?pub ?
  18. drwxr-xr-x????2?14???????50???????????4096?Sep?11?08:09?test ?
  19. 226?Directory?send?OK. ?
  20. ?
  21. ftp>?cd?test ?
  22. 250?Directory?successfully?changed. ?
  23. ftp>?mkdir?incoming ?
  24. 257?"/test/incoming"?created ?
  25. ftp>?ls ?
  26. 227?Entering?Passive?Mode?(127,0,0,1,107,221) ?
  27. 150?Here?comes?the?directory?listing. ?
  28. drwx------????2?14???????50???????????4096?Sep?11?08:19?incoming ?
  29. 226?Directory?send?OK. ?
  30. ?
  31. ftp>?!ls ?
  32. 1.txt??bridge.txt??hello.txt??webalizer.conf ?
  33. ?
  34. ftp>?put?1.txt ?
  35. local:?1.txt?remote:?1.txt ?
  36. 227?Entering?Passive?Mode?(127,0,0,1,45,47) ?
  37. 150?Ok?to?send?data. ?
  38. 226?File?receive?OK. ?
  39. 361?bytes?sent?in?0.0018?seconds?(2e+02?Kbytes/s) ?
  40. ftp>?ls ?
  41. 227?Entering?Passive?Mode?(127,0,0,1,231,175) ?
  42. 150?Here?comes?the?directory?listing. ?
  43. drwx------????2?14???????50????????????4096?Sep?11?08:19?incoming ?
  44. -rw-------????1?14???????50????????????361?Sep?11?08:24?1.txt ?
  45. 226?Directory?send?OK. ?
  46. ftp>?

?

?

11.3.3? 匿名FTP設置(2)

下面對以上測試結果做幾點說明。

drwxr-xr-x??? 2 14?????? 50?????????? 4096 Sep 11 08:09 test

ls命令后看到前面在pub目錄下創建的test目錄。

ftp> cd test

更改當前目錄,進入test目錄下。

ftp> mkdir incoming
257 "/test/incoming" created

在test目錄下創建incoming目錄成功。

ftp> put 1.txt

將1.txt 文件上傳 到test目錄中。

-rw-------??? 1 14?????? 50??????????? 361 Sep 11 08:24 1.txt

ls命令后看到1.txt 文件上傳 成功。

3.僅允許匿名用戶訪問

所謂僅允許匿名用戶訪問,也就是指需要限制本地賬號訪問,因此需要對/etc/vsftpd/vsftpd.conf文件做如下修改:

  1. #?local_enable=YES?
  2. #?write_enable=YES?

即在文件中local_enable=YES和write_enable=YES的前面加上"#",無須修改其他配置。對此的測試結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?anonymous ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ftp>?cd?test ?
  14. 250?Directory?successfully?changed. ?
  15. ftp>?bye ?
  16. 221?Goodbye. ?
  17. ?
  18. #?ftp?localhost ?
  19. Connected?to?teacher.bit.edu.cn. ?
  20. 220?(vsFTPd?2.0.5) ?
  21. 530?Please?login?with?USER?and?PASS. ?
  22. 530?Please?login?with?USER?and?PASS. ?
  23. KERBEROS_V4?rejected?as?an?authentication?type ?
  24. Name?(localhost:root):?Kelly ?
  25. 530?This?FTP?server?is?anonymous?only. ?
  26. Login?failed. ?
  27. ftp>?user?teacher ?
  28. 530?This?FTP?server?is?anonymous?only. ?
  29. Login?failed. ?
  30. ftp>?user?root ?
  31. 530?This?FTP?server?is?anonymous?only. ?
  32. Login?failed.?


從測試結果中可以看到,除了anonymous賬號可以正常登錄外,其他本地賬號登錄均失敗,服務器提示"530 This FTP server is anonymous only",即服務器僅允許匿名賬號登錄。

4.設置歡迎信息

常用的歡迎信息包括兩種:一種是在登錄FTP服務器時顯示的歡迎信息,另一種是在更改目錄時顯示的歡迎信息。歡迎信息的使用,能夠讓用戶在訪問FTP服務器時感覺到更友好、更親切。

設置登錄FTP服務器時顯示的歡迎信息

首先對/etc/vsftpd/vsftpd.conf文件做如下修改:

  1. ftpd_banner=Welcome?to?blah?FTP?service?

重啟Vsftpd服務后,測試結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?Welcome?to?blah?FTP?service. ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?anonymous ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files.?

從測試結果中可以看到,在登錄FTP服務器時,多了一行顯示信息"220 Welcome to blah FTP service"。"Welcome to blah FTP service" 即在前面為服務器設置的歡迎信息,用戶可以根據需要對此歡迎信息進行修改。

設置更改目錄時顯示的歡迎信息

在需要設置更改目錄歡迎信息的目錄下,創建.message文件。例如,在"ftp/test/"目錄下新建.message文件,寫入一行文字"You are welcome!",保存后關閉,如圖11.6所示。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.6? 編輯.message文件內容

測試的結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?Welcome?to?blah?FTP?service. ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?anonymous ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ftp>?ls ?
  14. 227?Entering?Passive?Mode?(127,0,0,1,219,233) ?
  15. 150?Here?comes?the?directory?listing. ?
  16. drwxr-xr-x????2?0????????0????????????4096?Sep?11?07:48?pub ?
  17. drwxr-xr-x????3?14???????50???????????4096?Sep?11?08:40?test ?
  18. 226?Directory?send?OK. ?
  19. ftp>?cd?test ?
  20. 250-You?are?welcome! ?
  21. 250?Directory?successfully?changed.?

可以看到,當進入"test"目錄后,出現"250-You are welcome!"這一行歡迎文字。用戶可以根據需要修改.message文件中的內容,以顯示不同的歡迎信息。

5.最大傳輸速率

設置最大傳輸速率需要對/etc/vsftpd/vsftpd.conf文件進行修改。

例如,設置匿名用戶的最大傳輸速率為20Kbps,應添加如下語句:

  1. anon_max_rate=20000?

?

11.3.3? 匿名FTP設置(2)

再如,設置本地賬號最大傳輸率為1Mbps,應添加如下語句:

  1. local_max_rate=1000000?

6.服務器最大并發數和用戶最大線程數

在/etc/vsftpd/vsftpd.conf文件中添加如下語句:

  1. max_clients=99?
  2. max_per_ip=5?

即可設置服務器允許的最大并發數為99,而每個用戶同一時段的最大并發線程數為5。

7.禁止某些IP段的主機匿名訪問服務器

如果希望限制某些主機對FTP服務器的匿名訪問,可以采用以下方法。

確認配置文件/etc/vsftpd/vsftpd.conf中有如下語句:

  1. tcp_wrappers=YES?

該語句表明服務器使用tcp_wrappers作為主機訪問控制方式。

編輯/etc/hosts.allow文件,增加兩行命令:

  1. #?hosts.allow???This?file?describes?the?names?of?the?hosts?which?are ?
  2. #???????allowed?to?use?the?local?INET?services,?as?decided ?
  3. #???????by?the?'/usr/sbin/tcpd'?server. ?
  4. # ?
  5. vsftpd:192.168.57.1:DENY ?
  6. vsftpd:192.168.57.9:DENY?

表明限制IP為192.168.57.1和192.168.57.9的主機訪問IP為192.168.57.2的FTP服務器。

在主機192.168.57.1上測試的結果如下:

  1. Microsoft?Windows?XP?[版本?5.1.2600] ?
  2. (C)?版權所有?1985-2001?Microsoft?Corp. ?
  3. C:\Documents?and?Settings\Administrator>cd\ ?
  4. C:\>ping?192.168.57.2 ?
  5. ?
  6. Pinging?192.168.57.2?with?32?bytes?of?data: ?
  7. ?
  8. Reply?from?192.168.57.2:?bytes=32?time=1ms?TTL=64?
  9. Reply?from?192.168.57.2:?bytes=32?time<1ms?TTL=64?
  10. Reply?from?192.168.57.2:?bytes=32?time=24ms?TTL=64?
  11. Reply?from?192.168.57.2:?bytes=32?time<1ms?TTL=64?
  12. ?
  13. Ping?statistics?for?192.168.57.2: ?
  14. ????Packets:?Sent?=?4,?Received?=?4,?Lost?=?0?(0%?loss), ?
  15. Approximate?round?trip?times?in?milli-seconds: ?
  16. ????Minimum?=?0ms,?Maximum?=?24ms,?Average?=?6ms?
  17. ?
  18. C:\>ftp?192.168.57.2 ?
  19. Connected?to?192.168.57.2. ?
  20. 421?Service?not?available. ?
  21. Connection?closed?by?remote?host.?

使用"ping"命令時可以看到,FTP服務器192.168.57.2是可以連通的。然而,通過ftp命令對其進行訪問時則由于192.168.57.1被設置為限制訪問IP,因而無法連接FTP服務器。

8.用ASCII方式傳送數據

大多數FTP服務器都選擇用ASCII方式傳輸數據,僅需要修改配置文件/etc/vsftpd/vsftpd.conf就能夠實現用ASCII方式傳送數據:

  1. ascii_upload_enable=YES?
  2. ascii_download_enable=YES?

以上語句表明允許使用ASCII方式上傳和下載文件。

9.設置數據傳輸中斷間隔時間

修改配置文件/etc/vsftpd/vsftpd.conf中的相關語句如下:

  1. idle_session_timeout=600?

該語句表示空閑的用戶會話中斷時間為600秒,也就是當數據傳輸結束后,用戶連接FTP服務器的時間不應超過600秒。可以根據實際情況對該值進行修改。

  1. data_connection_timeout=120?

該語句表示數據連接超時時間為120秒,也可以根據實際情況對其進行修改。

?

11.3.4? 真實賬號設置(1)

對真實賬號訪問FTP服務器的設置,主要也是修改配置文件/etc/vsftpd/vsftpd.conf。在前面匿名賬號設置中提到的一些配置,在真實賬號的設置中也是同樣可用的,因此不再贅述。此處主要說明的是與真實賬號有關的訪問控制設置。

在進行設置和測試前,應新建幾個用戶。選擇【系統】|【管理】中的【用戶和群組】選項,打開【用戶管理者】對話框,新建名為"user1"、"user2"和"user3"的三個用戶。然后將user1添加至/etc/vsftpd/ftpusers文件中,將user2添加至/etc/vsftpd/user_list文件中,而user3則不用添加到這兩個文件中。

1.使用用戶列表進行訪問控制

ftpusers文件中的用戶不可以訪問FTP服務器

設置語句如下:

  1. userlist_enable=NO?

userlist_enable選項的默認值為"NO",當/etc/vsftpd/vsftpd.conf文件中出現該語句時,ftpusers文件中的用戶將被禁止訪問FTP服務器。因此,ftpusers文件又被稱為"禁止使用Vsftpd的用戶列表文件"。

測試的結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?localhost.localdomain. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?user1 ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 530?Login?incorrect. ?
  11. Login?failed. ?
  12. ftp>?bye ?
  13. 221?Goodbye. ?
  14. ?
  15. #?ftp?localhost ?
  16. Connected?to?localhost.localdomain. ?
  17. 220?(vsFTPd?2.0.5) ?
  18. 530?Please?login?with?USER?and?PASS. ?
  19. 530?Please?login?with?USER?and?PASS. ?
  20. KERBEROS_V4?rejected?as?an?authentication?type ?
  21. Name?(localhost:root):?user2 ?
  22. 331?Please?specify?the?password. ?
  23. Password: ?
  24. 230?Login?successful. ?
  25. Remote?system?type?is?UNIX. ?
  26. Using?binary?mode?to?transfer?files. ?
  27. ftp>?bye ?
  28. 221?Goodbye. ?
  29. ?
  30. #?ftp?localhost ?
  31. Connected?to?localhost.localdomain. ?
  32. 220?(vsFTPd?2.0.5) ?
  33. 530?Please?login?with?USER?and?PASS. ?
  34. 530?Please?login?with?USER?and?PASS. ?
  35. KERBEROS_V4?rejected?as?an?authentication?type ?
  36. Name?(localhost:root):?user3 ?
  37. 331?Please?specify?the?password. ?
  38. Password: ?
  39. 230?Login?successful. ?
  40. Remote?system?type?is?UNIX. ?
  41. Using?binary?mode?to?transfer?files. ?
  42. ftp>?

從結果中可以看到,user1不能訪問FTP服務器,而user2和user3均可以正常登錄FTP服務器。

僅允許user_list中的用戶訪問服務器

設置語句如下:

  1. userlist_enable=YES?
  2. userlist_deny=NO?

當userlist_enable設置為YES,而userlist_deny設置為NO時,FTP服務器僅允許user_list中的用戶訪問。測試結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?localhost.localdomain. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?user1 ?
  8. 530?Permission?denied. ?
  9. Login?failed. ?
  10. ftp>?bye ?
  11. 221?Goodbye. ?
  12. ?
  13. #?ftp?localhost ?
  14. Connected?to?localhost.localdomain. ?
  15. 220?(vsFTPd?2.0.5) ?
  16. 530?Please?login?with?USER?and?PASS. ?
  17. 530?Please?login?with?USER?and?PASS. ?
  18. KERBEROS_V4?rejected?as?an?authentication?type ?
  19. Name?(localhost:root):?user2 ?
  20. 331?Please?specify?the?password. ?
  21. Password: ?
  22. 230?Login?successful. ?
  23. Remote?system?type?is?UNIX. ?
  24. Using?binary?mode?to?transfer?files. ?
  25. ftp>?bye ?
  26. 221?Goodbye. ?
  27. ?
  28. #?ftp?localhost ?
  29. Connected?to?localhost.localdomain. ?
  30. 220?(vsFTPd?2.0.5) ?
  31. 530?Please?login?with?USER?and?PASS. ?
  32. 530?Please?login?with?USER?and?PASS. ?
  33. KERBEROS_V4?rejected?as?an?authentication?type ?
  34. Name?(localhost:root):?user3 ?
  35. 530?Permission?denied. ?
  36. Login?failed. ?
  37. ftp>?

可以看到,user2位于user_list文件中,因此,只有user2能夠正常登錄FTP服務器,user1和user3均不能訪問。

ftpusers和user_list文件中的用戶均不能訪問FTP服務器

設置語句如下:

  1. userlist_enable=YES?
  2. userlist_deny=YES?

測試結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?localhost.localdomain. ?
  3. 220?(vsFTPd?2.0.5) ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?user1 ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 530?Login?incorrect. ?
  11. Login?failed. ?
  12. ftp>?bye ?
  13. 221?Goodbye. ?
  14. ?
  15. #?ftp?localhost ?
  16. Connected?to?localhost.localdomain. ?
  17. 220?(vsFTPd?2.0.5) ?
  18. 530?Please?login?with?USER?and?PASS. ?
  19. 530?Please?login?with?USER?and?PASS. ?
  20. KERBEROS_V4?rejected?as?an?authentication?type ?
  21. Name?(localhost:root):?user2 ?
  22. 530?Permission?denied. ?
  23. Login?failed. ?
  24. ftp>?bye ?
  25. 221?Goodbye. ?
  26. ?
  27. #?ftp?localhost ?
  28. Connected?to?localhost.localdomain. ?
  29. 220?(vsFTPd?2.0.5) ?
  30. 530?Please?login?with?USER?and?PASS. ?
  31. 530?Please?login?with?USER?and?PASS. ?
  32. KERBEROS_V4?rejected?as?an?authentication?type ?
  33. Name?(localhost:root):?user3 ?
  34. 331?Please?specify?the?password. ?
  35. Password: ?
  36. 230?Login?successful. ?
  37. Remote?system?type?is?UNIX. ?
  38. Using?binary?mode?to?transfer?files. ?
  39. ftp>?

?

11.3.4? 真實賬號設置(2)

從測試結果可以看出,user1和user2均不能登錄FTP服務器,只有user3可以正常登錄。而user1和user2在登錄時的情況也是不同的。位于ftpusers文件中的user1,登錄時出現了要求輸入密碼的提示信息,輸入密碼后服務器響應為訪問被拒絕;而位于user_list中的user2,在登錄時直接被拒絕,沒有要求輸入密碼的提示信息。

從上述測試中可以看出,Vsftpd服務器可以通過在/etc/vsftpd/vsftpd.conf文件中設置userlist_ enable和userlist_deny的值實現對不同用戶的訪問控制。

2.設置用戶組

通過用戶組方式訪問FTP服務器,能夠進一步增強FTP服務器的安全性。為完成用戶組的設置并進行測試,首先在/home目錄下創建"try"目錄,作為群組用戶的主目錄。可以通過選擇【系統】|【管理】中的【用戶和群組】選項,打開【用戶管理器】對話框來設置用戶和群組。選擇【添加組群】按鈕,在【創建新組群】對話框中創建群組"try"即可,如圖11.7所示。

完成創建群組的操作后,單擊【添加用戶】按鈕,在如圖11.8所示的【創建新用戶】對話框中,分別創建try1、try2和try3三個用戶。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.7? 創建群組"try"
Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.8 【創建新用戶】對話框

需要注意的是,在創建新用戶時,不要選中對話框中【創建主目錄】和【為該用戶創建私人組群】復選框。創建完成后,雙擊用戶名打開如圖11.9所示的【用戶屬性】對話框,分別設置三個用戶的【用戶數據】和【組群】選項卡。

在【用戶數據】選項卡中,將三個用戶的【主目錄】設置為"/home/try"。

在如圖11.10所示的【組群】選項卡中,將三個用戶加入到"try"組群中,即選中"try"組群前的復選框。

最后,還需要對/home/try目錄的屬性進行設置。在該目錄的【try屬性】對話框中,選擇【權限】選項卡,將"try"目錄的所有者設置為用戶"try1","try1"對目錄具有讀、寫和執行的權限。將"try"目錄的群組設置為群組"try",并將群組"try"對該目錄的權限設置為讀和執行,如圖11.11所示。

?

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.9 【用戶屬性】對話框

?

?

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.10 【組群】選項卡

?

?

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.11 【權限】選項卡設置

?

完成設置后,群組"try"中三個用戶對/home/try文件夾擁有的權限如下。

try1:讀、寫、執行

try2、try3:讀、執行

接下來通過命令測試群組方式訪問FTP服務器的結果。具有讀、寫和執行權限的目錄所有者,能夠實現瀏覽、下載、上傳及創建目錄和文件的操作;而在群組中僅具有讀和執行權限的用戶,只能完成瀏覽和下載操作。測試結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?Welcome?to?blah?FTP?service. ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?try1 ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ftp>?ls ?
  14. 227?Entering?Passive?Mode?(127,0,0,1,215,117) ?
  15. 150?Here?comes?the?directory?listing. ?
  16. 226?Directory?send?OK. ?
  17. ftp>?mkdir?new ?
  18. 257?"/new"?created ?
  19. ftp>?ls ?
  20. 227?Entering?Passive?Mode?(127,0,0,1,163,211) ?
  21. 150?Here?comes?the?directory?listing. ?
  22. drwxr-xr-x????2?507??????100??????????4096?Sep?11?11:12?new ?
  23. 226?Directory?send?OK. ?
  24. ftp>?!ls ?
  25. hello.txt ?
  26. ftp>?put?hello.txt ?
  27. local:?hello.txt??remote:?hello.txt ?
  28. 227?Entering?Passive?Mode?(127,0,0,1,176,127) ?
  29. 150?Ok?to?send?data. ?
  30. 226?File?receive?OK. ?
  31. 367?bytes?sent?in?0.00029?seconds?(1.2e+03?Kbytes/s) ?
  32. ftp>?ls ?
  33. 227?Entering?Passive?Mode?(127,0,0,1,210,143) ?
  34. 150?Here?comes?the?directory?listing. ?
  35. drwxr-xr-x????2?507??????100??????????4096?Sep?11?11:12?new ?
  36. -rw-r--r--????1?507??????100???????????367?Sep?11?11:13?hello.txt ?
  37. 226?Directory?send?OK. ?
  38. ftp>?bye ?
  39. 221?Goodbye. ?
  40. ?
  41. #?ftp?localhost ?
  42. Connected?to?teacher.bit.edu.cn. ?
  43. 220?Welcome?to?blah?FTP?service. ?
  44. 530?Please?login?with?USER?and?PASS. ?
  45. 530?Please?login?with?USER?and?PASS. ?
  46. KERBEROS_V4?rejected?as?an?authentication?type ?
  47. Name?(localhost:root):?try2 ?
  48. 331?Please?specify?the?password. ?
  49. Password: ?
  50. 230?Login?successful. ?
  51. Remote?system?type?is?UNIX. ?
  52. Using?binary?mode?to?transfer?files. ?
  53. ftp>?ls ?
  54. 227?Entering?Passive?Mode?(127,0,0,1,84,106) ?
  55. 150?Here?comes?the?directory?listing. ?
  56. drwxr-xr-x????2?507??????100??????????4096?Sep?11?11:12?new ?
  57. -rw-r--r--????1?507??????100???????????367?Sep?11?11:13?hello.txt ?
  58. 226?Directory?send?OK. ?
  59. ftp>?mkdir?new2 ?
  60. 550?Create?directory?operation?failed. ?
  61. ?
  62. ftp>?put?aaa.txt ?
  63. local:?aaa.txt?remote:?aaa.txt ?
  64. 227?Entering?Passive?Mode?(127,0,0,1,227,36) ?
  65. 553?Could?not?create?file. ?
  66. ftp>?quit ?
  67. 221?Goodbye.?

從結果中可以看到,try1用戶登錄FTP服務器時,成功地創建了一個"new"目錄,并上傳了文件"hello.txt"。而try2用戶登錄后,只能瀏覽目錄,試圖新建目錄"new2"和上傳文件aaa.txt均沒有成功。可見,通過群組方式,可以實現群組中的用戶不同的訪問級別,進一步加強對FTP服務器的分級安全管理。

3.限制用戶目錄訪問權限

通過設置/etc/vsftpd/vsftpd.conf 文件中的chroot_local_user選項,可以設置用戶登錄FTP服務器后的目錄訪問權限。默認情況下,當chroot_local_user選項為"NO"時,用戶登錄FTP服務器后,具有訪問服務器中自己目錄以外的其他文件的權限。

為了增強FTP服務器的安全性,需要限制用戶的目錄訪問權限,即當用戶登錄FTP服務器后,不能訪問自己目錄以外的其他目錄或文件。設置語句為:

  1. chroot_local_user=YES?

重啟Vsftpd服務后,測試結果如下:

  1. #?ftp?localhost ?
  2. Connected?to?teacher.bit.edu.cn. ?
  3. 220?Welcome?to?blah?FTP?service. ?
  4. 530?Please?login?with?USER?and?PASS. ?
  5. 530?Please?login?with?USER?and?PASS. ?
  6. KERBEROS_V4?rejected?as?an?authentication?type ?
  7. Name?(localhost:root):?student ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. Remote?system?type?is?UNIX. ?
  12. Using?binary?mode?to?transfer?files. ?
  13. ftp>?ls ?
  14. 227?Entering?Passive?Mode?(127,0,0,1,219,3) ?
  15. 150?Here?comes?the?directory?listing. ?
  16. -rw-r--r--????1?501??????501??????83741?Sep?06?
    10:17?php-mysql-5.1.6-5.el5.i386.rpm ?
  17. -rw-r--r--????1?501??????501?????61810?Sep?06?
    10:15?php-pdo-5.1.6-5.el5.i386.rpm ?
  18. -rw-r--r--????1?501???????501???4323279?Sep?06
    09:07?phpMyAdmin-2.11.0-all-languages.?tar.gz ?
  19. 226?Directory?send?OK. ?
  20. ?
  21. ftp>?cd?/etc ?
  22. 550?Failed?to?change?directory. ?
  23. ftp>?cd?/home ?
  24. 550?Failed?to?change?directory.?

從測試結果中可看出,用戶student登錄FTP服務器,用ls命令可以查看student賬號本地目錄下的內容。而用戶執行"cd /etc"、"cd/home"命令希望更改目錄時,均出現"550 Failed to change directory."的提示信息,表明用戶不能訪問自己目錄以外的其他目錄或文件,因此更改目錄失敗。

4.修改默認端口

默認情況下,FTP服務器的端口號是21。出于安全保護的目的,有時需要修改默認端口號,為此可在配置文件/etc/vsftpd/vsftpd.conf中添加如下語句:

  1. listen_port=4449?

該語句指定了修改后FTP服務器的端口號,該端口號應盡量大于4000。測試結果如下:

  1. #?ftp?192.168.57.2 ?
  2. ftp:?connect:?Connection?refused ?
  3. ftp>?bye ?
  4. ?
  5. #?ftp?192.168.57.2?4449 ?
  6. Connected?to?192.168.57.2. ?
  7. 220?Welcome?to?blah?FTP?service. ?
  8. 530?Please?login?with?USER?and?PASS. ?
  9. 530?Please?login?with?USER?and?PASS. ?
  10. KERBEROS_V4?rejected?as?an?authentication?type ?
  11. Name?(192.168.57.2:root):?teacher ?
  12. 331?Please?specify?the?password. ?
  13. Password: ?
  14. 230?Login?successful. ?
  15. Remote?system?type?is?UNIX. ?
  16. Using?binary?mode?to?transfer?files.?

從測試結果中可以看出,在更改了默認端口后,直接輸入IP地址,使用默認端口訪問FTP服務器已不能正常連接,還需要輸入正確的端口號。

?

11.4? FTP客戶端配置

FTP服務器配置好之后,就可以在客戶端訪問FTP服務器了。根據操作系統的不同,可分為在Windows環境下訪問FTP服務器和在Linux環境下訪問FTP服務器。而訪問的方法又分為三種:命令行方式、瀏覽器方式和FTP客戶端工具方式。

11.4.1? FTP常用命令

在客戶端訪問FTP服務器,一般通過如下命令進行:

# ftp 主機名/IP地址 端口號

"主機名/IP地址"指的是FTP服務器的主機名或IP地址。如果沒有給出主機名或IP地址,則客戶端將出現"ftp>"提示符,等待用戶輸入。

通過在"ftp>"提示符下輸入"?",可以查看FTP常用命令。表11.2列出了常見的FTP命令及其功能。

表11.2? 常見FTP命令及其功能

FTP命令

功????能

ls

顯示服務器上的目錄

get(mget)

從服務器下載指定文件到客戶端,

mget命令允許用通配符下載多個文件

put(mput)

從客戶端上傳指定文件到服務器,

mput命令允許用通配符上傳多個文件

open

連接FTP服務器

quit

斷開連接并退出FTP服務器

close

終止當前的FTP會話

cd directory

改變服務器的工作目錄

lcd directory

在客戶端上改變工作目錄

bye

退出FTP命令狀態

ascii

設置文件傳輸方式為ASCII模式

binary

設置文件傳輸方式為二進制模式

?

11.4.2? Windows環境下訪問FTP服務器

1.使用DOS命令行方式

在Windows XP下,單擊【開始】菜單,選擇【運行】命令,然后在對話框中輸入"cmd"命令,系統將打開【MS-DOS】窗口。在命令行提示符下,可以通過FTP命令訪問FTP服務器。以下是相關命令的測試結果:

  1. Microsoft?Windows?XP?[版本?5.1.2600] ?
  2. (C)?版權所有?1985-2001?Microsoft?Corp. ?
  3. C:\Documents?and?Settings\Administrator>cd\ ?
  4. C:\>ftp?192.168.57.2 ?
  5. Connected?to?192.168.57.2. ?
  6. 220?Welcome?to?blah?FTP?service. ?
  7. User?(192.168.57.2:(none)):?student ?
  8. 331?Please?specify?the?password. ?
  9. Password: ?
  10. 230?Login?successful. ?
  11. ftp>?ls ?
  12. 200?PORT?command?successful.?Consider?using?PASV. ?
  13. 150?Here?comes?the?directory?listing. ?
  14. php-mysql-5.1.6-5.el5.i386.rpm ?
  15. php-pdo-5.1.6-5.el5.i386.rpm ?
  16. phpMyAdmin-2.11.0-all-languages.tar.gz ?
  17. 226?Directory?send?OK. ?
  18. ftp:?收到?102?字節,用時?0.00Seconds?102000.00Kbytes/sec. ?
  19. ftp>?get?php-mysql-5.1.6-5.el5.i386.rpm ?
  20. 200?PORT?command?successful.?Consider?using?PASV. ?
  21. 150?Opening?BINARY?mode?data?connection?for?
    php-mysql-5.1.6-5.el5.i386.rpm?(8374 ?
  22. 1?bytes). ?
  23. 226?File?send?OK. ?
  24. ftp:?收到?83741?字節,用時?0.08Seconds?1046.76Kbytes/sec. ?
  25. ftp>?!dir ?
  26. ?驅動器?C?中的卷是?Y_C ?
  27. ?卷的序列號是?200E-ACD1 ?
  28. ?
  29. ?C:\?的目錄 ?
  30. ?
  31. 2007-07-15??11:09?????????????1,024?.rnd ?
  32. 2003-05-16??08:47?????????????????0?AUTOEXEC.BAT ?
  33. 2003-05-16??08:47?????????????????0?CONFIG.SYS ?
  34. 2003-05-27??21:44????<DIR>??????????docs ?
  35. 2007-07-17??09:57????<DIR>??????????Documents?and?Settings ?
  36. 2007-07-17??15:11????????21,939,874?EMPTY$$$.TIF.BKI ?
  37. 2007-07-17??15:11????????????22,000?EMPTY$$$.TIF.TXT ?
  38. 2007-09-09??23:49????????????????12?eng000.txt ?
  39. 2007-07-17??14:01????<DIR>??????????EPSON ?
  40. 2007-07-17??17:11????<DIR>??????????Herosoft ?
  41. 2007-07-17??14:13????<DIR>??????????HWDOC_KING ?
  42. 2007-09-09??23:32?????????????????0?mustekimgsh.txt ?
  43. 2007-08-04??00:48?????????1,474,560?myfloppy.flp ?
  44. 2007-09-11??23:46????????????83,741?php-mysql-5.1.6-5.el5.i386.rpm ?
  45. 2007-08-02??19:01????<DIR>??????????Program?Files ?
  46. 2007-07-17??14:39????<DIR>??????????SHOCR2002 ?
  47. 2003-05-16??16:38????<DIR>??????????SUPPORT ?
  48. 2007-08-13??19:56?????????????????0?test1.bmp ?
  49. 2007-08-13??19:56?????????????????0?test2.bmp ?
  50. 2003-05-16??09:33????<DIR>??????????TOSHIBA ?
  51. 2003-05-16??16:38????<DIR>??????????VALUEADD ?
  52. 2007-08-27??12:56????<DIR>??????????WINDOWS ?
  53. ??????????????11?個文件?????23,521,211?字節 ?
  54. ??????????????11?個目錄??3,583,148,032?可用字節 ?
  55. ftp>?put?eng000 ?
  56. eng000:?File?not?found ?
  57. ftp>?put?eng000.txt ?
  58. 200?PORT?command?successful.?Consider?using?PASV. ?
  59. 150?Ok?to?send?data. ?
  60. 226?File?receive?OK. ?
  61. ftp:?發送?12?字節,用時?0.00Seconds?12000.00Kbytes/sec. ?
  62. ftp>?ls ?
  63. 200?PORT?command?successful.?Consider?using?PASV. ?
  64. 150?Here?comes?the?directory?listing. ?
  65. eng000.txt ?
  66. php-mysql-5.1.6-5.el5.i386.rpm ?
  67. php-pdo-5.1.6-5.el5.i386.rpm ?
  68. phpMyAdmin-2.11.0-all-languages.tar.gz ?
  69. 226?Directory?send?OK. ?
  70. ftp:?收到?114?字節,用時?0.00Seconds?114000.00Kbytes/sec. ?
  71. ftp>?

2.使用IE瀏覽器

打開IE瀏覽器,在地址欄中輸入FTP服務器的IP地址,例如 ftp://192.168.57.2 ,瀏覽器將彈出一個【登錄身份】對話框,如圖11.12所示。

在對話框中輸入用戶名和密碼后,將打開該用戶在FTP服務器上的目錄,如圖11.13所示。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.12 【登錄身份】對話框
Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.13? 登錄后訪問FTP服務器

3.使用FlashFXP工具

FlashFXP是諸多FTP客戶端工具中的一種,融合了一些其他FTP軟件的優點,擁有圖形化界面,操作簡單,使用方便。該軟件需要下載并安裝。運行該軟件,選擇【站點】菜單中的【站點管理器】命令,可打開【站點管理器】對話框,如圖11.14所示。

Linux Vsftpd安裝、配置 FTP常用功能 ?
(點擊查看大圖)圖11.14 【站點管理器】對話框

單擊【新建站點】按鈕,可以在對話框右側填寫站點信息。若需要連接IP地址為192.168.52.2的FTP服務器,則在IP地址欄輸入相應地址和端口號,以及用戶名稱、密碼即可。單擊對話框右側底部的【連接】按鈕,客戶端工具將開始連接FTP服務器,連接成功后的界面如圖11.15所示。

Linux Vsftpd安裝、配置 FTP常用功能 ?
(點擊查看大圖)圖11.15? FlashFXP界面

通過鼠標拖拽操作可以實現文件的上傳和下載。關于FlashFXP工具的其他配置,用戶可以在【工具】或【幫助】菜單中自行查找。

其他的FTP客戶端工具,如CuteFTP、LeapFTP等,也有各自的優點,用戶可以根據自己的喜好進行比較選擇。

?

11.4.3? Linux環境下訪問FTP服務器

在Linux環境下訪問FTP服務器,和在Windows環境下類似,通常也有三種方法。

1.通過終端訪問

在前面的講述中,通過終端訪問的例子已經多次在測試過程中用到,此處不再贅述。

2.通過Web瀏覽器訪問

Linux使用的是Firefox瀏覽器,其基本用法與Windows中的IE瀏覽器類似。通過Firefox訪問FTP服務器,同樣需要在地址欄輸入FTP服務器的IP地址。系統將彈出如圖11.16所示的【提示】對話框,要求用戶輸入用戶名和密碼。

用戶名和密碼輸入正確后,瀏覽器將顯示該用戶在FTP服務器下的目錄和文件,如圖11.17所示。

Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.16 【提示】對話框
Linux Vsftpd安裝、配置 FTP常用功能 ?
圖11.17? 通過Firefox訪問FTP服務器

3.通過客戶端工具訪問

Linux環境下的FTP客戶端工具中,gFTP是比較常用的一個。用戶可以在 www.gftp.org 站點下載gftp的軟件包,如gftp-2.0.18.tar.gz。安裝后在終端輸入"gFTP"命令,即可啟動gFTP 2.0.18的用戶界面,如圖11.18所示。在【主機】、【端口】、【用戶名】和【密碼】的文本框中輸入相應內容,然后單擊【主機】前的連接按鈕,gFTP將開始連接FTP服務器。

Linux Vsftpd安裝、配置 FTP常用功能 ?
(點擊查看大圖)圖11.18? gFTP用戶界面

?

?

?

?

?

?

?

?

?

11.5? 查看FTP日志

FTP服務器的日志設置,可以通過修改主配置文件/etc/vsftpd.conf實現。主配置文件中與日志設置有關的選項包括xferlog_enable 、xferlog_file 和dual_log_enable 等。

xferlog_enable

如果啟用該選項,系統將會維護記錄服務器上傳和下載情況的日志文件。默認情況下,該日志文件為 /var/log/vsftpd.log。但也可以通過配置文件中的 vsftpd_log_file 選項來指定其他文件。默認值為NO。

xferlog_std_format

如果啟用該選項,傳輸日志文件將以標準 xferlog 的格式書寫,該格式的日志文件默認為 /var/log/xferlog,也可以通過 xferlog_file 選項對其進行設定。默認值為NO。

dual_log_enable

如果啟用該選項,將生成兩個相似的日志文件,默認在 /var/log/xferlog 和 /var/log/vsftpd.log 目錄下。前者是 wu-ftpd 類型的傳輸日志,可以利用標準日志工具對其進行分析;后者是Vsftpd類型的日志。

syslog_enable

如果啟用該選項,則原本應該輸出到/var/log/vsftpd.log中的日志,將輸出到系統日志中。

常見的日志解決方案如下:

  1. xferlog_enable=YES?
  2. xferlog_std_format=YES?
  3. xferlog_file=/var/log/xferlog? ?
  4. dual_log_enable=YES?
  5. vsftpd_log_file=/var/log/vsftpd.log??

該方案將xferlog_enable設置為YES,表明FTP服務器記錄上傳下載的情況,而將xferlog_std_format也設置為YES,則表明將記錄的上傳下載情況寫在xferlog_file所指定的文件中,即/var/log/xferlog文件。

同時,該方案啟用dual_log_enable,表明啟用了雙份日志。在用xferlog文件記錄服務器上傳下載情況的同時,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也將用來記錄服務器的傳輸情況。

下面分別查看xferlog文件和vsftpd.log文件的內容。

xferlog內容如下:

  1. Thu?Sep??6?09:07:48?2007?7?192.168.57.1?
    4323279?/home/student/phpMyAdmin?-2.11.
    0-all-languages.tar.gz?b?_?i?r?student?ftp?0?*?c ?
  2. Thu?Sep??6?10:15:59?2007?1?192.168.57.1?
    61810?/home/student/php-pdo-5.1.6-5.?el5.
    i386.rpm?b?_?i?r?student?ftp?0?*?c ?
  3. Thu?Sep??6?10:17:13?2007?1?192.168.57.1?
    83741?/home/student/php-mysql-5.1.?6-5.el5.i386.
    rpm?b?_?i?r?student?ftp?0?*?c ?
  4. Tue?Sep?11?07:49:34?2007?1?127.0.0.1?0?/
    pub/hello.txt?b?_?o?a?bit@bit.edu.cn?ftp?0?*?i ?
  5. Tue?Sep?11?07:51:22?2007?1?127.0.0.1?34?/
    pub/hello.txt?b?_?o?a?bit@bit.edu.cn?ftp?0?*?c ?
  6. Tue?Sep?11?11:23:05?2007?1?192.168.57.1?
    83741?/php-mysql-5.1.6-5.el5.i386.rpm?a?_?o?r?student?ftp?0?*?c ?
  7. Tue?Sep?11?11:31:36?2007?1?192.168.57.1?
    12?/eng000.txt?a?_?i?r?student?ftp?0?*?c ?
  8. Tue?Sep?11?11:53:05?2007?1?192.168.57.2?
    367?/user_list?b?_?i?r?student?ftp?0?*?c ?
  9. Tue?Sep?11?11:56:06?2007?1?192.168.57.2?
    0?/?b?_o?a?mozilla@example.com?ftp?0?*?i ?
  10. Tue?Sep?11?11:57:36?2007?1?192.168.57.2?
    0?/?b?_?o?r?student?ftp?0?*?i?

vsftpd.log文件內容如下:

  1. Tue?Sep?11?14:59:03?2007?[pid?3460]?CONNECT:?Client?"127.0.0.1" ?
  2. Tue?Sep?11?14:59:24?2007?[pid?3459]?[ftp]?
    OK?LOGIN:?Client?"127.0.0.1",?anon?password?"?"?

在xferlog文件的第一條記錄中,各數據的參數名如表11.3所示。

表11.3? xferlog文件數據的參數名

記錄數據

參數名稱

Thu Sep??6 09:07:48 2007

當前時間

7

傳輸時間

192.168.57.1

遠程主機名稱/IP

4323279

文件大小

/home/student/phpMyAdmin-

2.11.0-all-languages.tar.gz

文件名

b

傳輸類型

_

特殊處理標志

i

傳輸方向

r

訪問模式

student

用戶名

ftp

服務名

0

認證方式

*

認證用戶id

c

完成狀態


表11.4描述了各參數的具體含義。

表11.4? xferlog 參數說明

參?數?名

說????明

當前時間

當前服務器本地時間,格式為

“DDD MMM dd hh: mm: ss YYYY”

傳輸時間

傳送文件所用時間,單位為秒

遠程主機

遠程主機名稱/IP

文件大小

傳送文件的大小,單位為byte

文件名

傳輸文件名,包括路徑

傳輸類型

傳輸方式的類型,包括兩種:

a?以ASCII傳輸

b?以二進制文件傳輸

特殊處理標志

特殊處理的標志位,可能的值包括:

_?不做任何特殊處理

C?文件是壓縮格式

U?文件是非壓縮格式

T?文件是tar格式

傳輸方向

文件傳輸的方向,包括兩種:

o?從FTP服務器向客戶端傳輸

i?從客戶端向FTP服務器傳輸

訪問模式

用戶訪問模式,包括:

a?匿名用戶

g?來賓用戶

r?真實用戶,即系統中的用戶

用戶名

用戶名稱

服務名

所使用的服務名稱,一般為FTP

認證方式

認證方式,包括:

0?無

1 RFC931認證

認證用戶id

認證用戶的id,如果使用*,

則表示無法獲得該id

完成狀態

傳輸的狀態:

c?表示傳輸已完成

i?表示傳輸未完成

?

?

?

?

?

?

?

?

?

Linux Vsftpd安裝、配置 FTP常用功能


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久热官网 | 亚洲精品国产字幕久久不卡 | 99在线视频网站 | 久久99亚洲精品久久 | 日韩久久久精品首页 | 国产欧美在线观看一区二区 | 99热这里只有精品国产动漫 | 亚洲欧美自拍一区 | 亚洲国产人成在线观看69网站 | 亚洲一区在线视频观看 | 国产成人一级片 | 国产成人综合亚洲欧洲色就色 | 国产一级久久久久久毛片 | 中文字幕曰韩一区二区不卡 | 久久国产热这里只有精品8 久久国产三级 | 亚洲有色 | 国农村精品国产自线拍 | 五月婷婷在线视频观看 | 中文字幕一区二区三 | 在线 v亚洲 v欧美v 专区 | 精品国产高清a毛片无毒不卡 | 来自深渊在线观看 | 深夜在线网站 | 久久99视频精品 | 精品国产品国语在线不卡丶 | 狠狠狠色丁香婷婷综合久久五月 | 午夜影院欧美 | 男人天堂黄色 | 狠狠色丁香婷综合久久 | 香蕉视频网站在线观看 | 毛片女人十八以上观看 | 日本精品久久久久中文字幕 | 日韩小视频 | 俄罗斯一级毛片免费播放 | 九九热国产视频 | 91精品国产露脸在线 | 一级片视频免费看 | 777午夜精品被窝影院 | 老司机深夜影院入口aaaa | 有色视频在线观看免费高清 | 奇米影视9999 |