天天看點

Vsftpd完全攻略(一)ftp原理與vsftp安裝

<b>VSFTPD</b>是一款小巧易用FTP伺服器程式,vsftpd 在安全性、高性能及穩定性三個方面有上佳的表現。它提供的主要功能包括虛拟IP設定、虛拟使用者、Standalone、inetd操作模式、強大的單使用者設定能力及帶寬限流等。在安全方面,它從原理上修補了大多數Wu-FTP、ProFTP,乃至BSD-FTP的安裝缺陷,使用安全編碼技術解決了緩沖溢出問題,并能有效避免“globbing”類型的拒絕服務攻擊。目前正在使用vsftpd的官方網站有Red Hat、SuSE、Debian、GNU、GNOME、KDE、Gimp和OpenBSD等。它支援很多其他的 FTP 伺服器不支援的特征。 

比如:

非常高的安全性需求 

帶寬限制 

良好的可伸縮性 

建立虛拟使用者的可能性 

IPv6支援 

中等偏上的性能 

配置設定虛拟 IP 的可能性 

高速

   目錄                                                 

 ftp原理與vsftp安裝

 1.ftp原理

FTP Transfer Protocol 件傳輸協定的縮寫,在RFC 959中具體說明。

FTP會話時包含了兩個通道,一個叫控制通道,一個叫資料通道。

<b>控制通道</b>:控制通道是和FTP伺服器進行溝通的通道,連接配接FTP,發送FTP指令都是通過控制通道來完成的, PI稱為控制連接配接

<b>資料通道</b>:資料通道是和FTP伺服器進行檔案傳輸或者清單的通道。

FTP協定中,控制連接配接均有用戶端發起,而資料連接配接有兩種工作方式:PORT方式和PASV方式,DTP稱為資料連接配接

<b>PORT</b><b>模式(</b><b>主動方式)</b>

FTP 用戶端首先和FTP Server的TCP 21端口建立連接配接,通過這個通道發送指令,用戶端需要接收資料的時候在這個通道上發送PORT指令。 PORT指令包含了用戶端用什麼端口(一個大于1024的端口)接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20端口發送資料。 FTP server必須和用戶端建立一個新的連接配接用來傳送資料。

<b>PASV</b><b>模式(</b><b>被動方式)</b>

在建立控制通道的時候和PORT模式類似,當用戶端通過這個通道發送 PASV 指令的時候,FTP server打開一個位于1024和5000之間的随機端口并且通知用戶端在這個端口上傳送資料的請求,然後FTP server 将通過這個端口進行資料的傳送,這個時候FTP server不再需要建立一個新的和用戶端之間的連接配接傳送資料。

如果從C/S模型這個角度來說,<b>PORT</b><b>對于伺服器來說是OUTBOUND</b><b>,而PASV</b><b>模式對于伺服器是INBOUND</b>,這一點請特别注意,尤其是在使用防火牆的企業裡,這一點非常關鍵,如果設定錯了,那麼客戶将無法連接配接。

[root@localhost /]# <b>rpm -qa |grep vsftpd</b> 查詢是否安裝了vsftpd(提示無)

[root@localhost /]# <b>mkdir /mnt/cdrom</b> 建立挂載光驅目錄檔案

[root@localhost /]# <b>mount /dev/cdrom /mnt/cdrom/ </b>挂載光驅到剛建立目錄

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost /]# <b>cd /mnt/cdrom/Server/</b>

[root@localhost Server]# <b>rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm</b> 安裝vsftp RPM包

warning: vsftpd-2.0.5-12.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:vsftpd                 ########################################### [100%]

[root@localhost Server]# <b>rpm -qa |grep vsftpd</b>再查詢是否安裝了vsftpd

vsftpd-2.0.5-12.el5

[root@localhost ~]#<b> rpm -qi vsftpd</b> 查詢vsftpd詳細資訊

Name        : vsftpd                       Relocations: (not relocatable)

Version     : 2.0.5                             Vendor: Red Hat, Inc.

Release     : 12.el5                        Build Date: 2007年12月13日 星期四 19時35分37秒

Install Date: 2009年12月26日 星期六 00時35分03秒      Build Host: ls20-bc1-14.build.redhat.com

Group       : System Environment/Daemons    Source RPM: vsftpd-2.0.5-12.el5.src.rpm

Size        : 289673                           License: GPL

Signature   : DSA/SHA1, 2007年12月17日 星期一 23時43分34秒, Key ID 5326810137017186

Packager    : Red Hat, Inc. &lt;http://bugzilla.redhat.com/bugzilla&gt;

URL         : http://vsftpd.beasts.org/

Summary     : vsftpd - 非常安全 Ftp 守護程序

Description :

vsftpd 是一個非常安全 FTP 守護程序。它是完全從零開始編寫的。

[root@localhost ~]# <b>rpm -ql vsftpd </b>     列出vsftpd中包含檔案

/etc/logrotate.d/vsftpd.log             vsftpd的日志檔案

/etc/pam.d/vsftpd                    PAM認證檔案

/etc/rc.d/init.d/vsftpd                 啟動腳本

/etc/vsftpd                          vsftpd的配置檔案存放的目錄

/etc/vsftpd/ftpusers                  禁止使用vsftpd的使用者清單檔案

/etc/vsftpd/user_list                  禁止或允許使用vsftpd的使用者清單檔案

/etc/vsftpd/vsftpd.conf                主配置檔案

/etc/vsftpd/vsftpd_conf_migrate.sh      vsftpd操作的一些變量和設定

/usr/sbin/vsftpd                      vsftpd的主程式

其他一些說明文檔和手冊檔案略!

/var/ftp                            匿名使用者主目錄

/var/ftp/pub                        匿名使用者的下載下傳目錄

[root@localhost /]#<b> service vsftpd start</b> 啟動vsftpd

為 vsftpd 啟動 vsftpd:                                    [确定]

[root@localhost ~]# <b>chkconfig --level 3 vsftpd on</b>打開3級别随系統自動啟動vsftpd

    本文轉自viong 51CTO部落格,原文連結:http://blog.51cto.com/viong/261291,如需轉載請自行聯系原作者

繼續閱讀