天天看點

vsftpd安裝、配置詳解

一、vsftpd 簡介

    Vsftpd是一個基于GPL釋出的類UNIX系統的ftp伺服器軟體。其全稱是Very Secure FTP Deamon,在安全性、速度和穩定性都有着不俗的表現。在安全性方面,vsftpd針對程式的權限來設計,以一般身份啟動服務,對Linux系統的使用 權限較低;在千兆以太網上,vsftpd的速度可以達到86MB/s;在穩定性上更是優秀,資料表明,完全工作24小時,傳輸資料達2.6TB,平均并發 連接配接為1500使用者,峰值達4000使用者,而這些還是在單機上實作的。此外,vsftpd 還包括以下特性:

    基于IP的虛拟伺服器

    虛拟使用者,結合資料庫的使用者驗證

    每個使用者獨立配置檔案

    速率限制

    IPV6支援

    支援SSL加密傳輸

    ……

哪些站點在使用vsftpd

    以下站點一直在使用vsftpd(這僅僅是很少很少的一部分站點)

ftp.redhat.com

ftp.suse.com

ftp.debian.org

ftp.openbsd.org

ftp.freebsd.org

ftp.gnu.org

ftp.gnome.org

ftp.kde.org

ftp.kernel.org

    rpmfind.net

ftp.linux.org.uk

ftp.gimp.org

    ftp-stud.fht-esslingen.de

    gd.tuwien.ac.at

ftp.sunet.se

ftp.ximian.com

ftp.engardelinux.org

ftp.sunsite.org.uk

ftp.isc.org

    以上内容摘自vsftpd官方網站

http://vsftpd.beasts.org/

二、軟體安裝和解除安裝

  //檢視是否安裝了vsftpd和anonftp

[[email protected] local]# rpm -qa|grep vsftpd

[[email protected] local]# rpm -qa|grep anonftp

獲得軟體

    vsftpd目前最新版本為vsftpd-2.3.2,下載下傳位址:

ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.2.tar.gz

軟體安裝

  1. 解壓軟體,

    [[email protected] local]# tar -zxvf vsftpd-2.3.2.tar.gz    //解壓vsftp source檔案

    [[email protected] local]# cd vsftpd-2.3.2    //進入解壓後的目錄

    [r[email protected] vsftpd-2.3.2]# more INSTALL //看看安裝說明。比如要做什麼工作。是個英文文檔.

  2. 提供安裝vsftpd服務的前提條件(根據上面more INSTALL的安裝說明)

    [[email protected] vsftpd-2.3.2]# useradd nobody //這裡需要加一個nobody使用者。大家可以使用finger nobody檢視下。看是否有這個使用者,如果有就不需要加了.

        useradd: user nobody exists

    [[email protected] vsftpd-2.3.2]# mkdir /usr/share/empty/    //這一步同上。伺服器 需要一個empty的空目錄放在/usr/share/下。可以使用ls /usr/share/empty檢視。如果存在就不需要了,這步也可以跳過。

        mkdir: 無法建立目錄 `/usr/share/empty': 檔案已存在

    如果需要開啟匿名使用者通路,需要做下面幾步工作

    [[email protected] vsftpd-2.3.2]# mkdir /var/ftp/    //建立供匿名使用者使用的目錄

  [[email protected] vsftpd-2.3.2]# useradd -d /var/ftp ftp //建立ftp使用者并且指定家目錄為/var/ftp,這個步驟一般的系統也有。如果建立提示:user ftp exists(FTP使用者存在)就表示此使用者已經存在。

    (即使"ftp"使用者已經存在,接下來的兩步也是很有用).

    [[email protected] vsftpd-2.3.2]# chown root.root /var/ftp     //設定/var/ftp,也就是ftp使用者的家目錄屬組和屬主都是root,為了安全。這步還是需要的

    [[email protected] vsftpd-2.3.2]# chmod og-w /var/ftp     //更改權限,去掉屬組和其他人的寫權限 ,上面這寫工作做完了。

  3. 編譯源代碼及安裝

    [[email protected] vsftpd-2.3.2]# make    //編譯二進制檔案

    [r[email protected] vsftpd-2.3.2]# make install    //安裝,安裝的時候可以看到安裝的相關檔案。

  4. 安裝、編輯配置

    [[email protected] vsftpd-2.3.2]# cp vsftpd.conf /etc/    //将預設配置檔案考貝到/etc/               

    [[email protected] vsftpd-2.3.2]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd     //為了讓vsftpd支援本地使用者登入,我們将身份認證子產品檔案(PAM安全驗證檔案)拷貝到驗證檔案所在的目錄。

    [[email protected] vsftpd-2.3.2]# vi /etc/vsftpd.conf

  然後按,跳到行尾。設定 pam_server_name=vsftpd(要與你的PAM檔案同名);userlist_enable=YES(使用者清單的使用者不允許登入伺服器)。然後:wq儲存退出

    [[email protected] vsftpd-2.3.2]# cp vsftpd.conf.5 /usr/local/man/man5

  [[email protected] vsftpd-2.3.2]# cp vsftpd.8 /usr/local/man/man8

  基本到這裡。所有工作就做完了。

軟體解除安裝

    如果需要解除安裝,使用如下指令:

    # rm /usr/local/sbin/vsftpd

    # rm /usr/local/man/man5/vsftpd.conf.5

    # rm /usr/local/man/man8/vsftpd.8

    # rm /etc/xinetd.d/vsftpd

    # rm -rf /etc/vsftpd

三、配置vsftpd服務

服務的啟動與停止

    啟動服務之前,我們先編輯配置檔案/etc/vsftpd.conf. 打開配置檔案後可以看到許多以“#”開始的行,這些行都是注釋行,大多是幫助資訊,可以仔細閱讀。vsftpd.conf檔案的所有項目都是以“參數=值 ”來設定的,對格式要求比較嚴格,必須嚴格區分大小寫,等号兩邊不能有空格,每行的最後也不能有空格。每個參數都有一個預設值,沒有在配置檔案中明确指定 的參數就會使用預設值。我們這裡不理會配置檔案本來的資訊,把所有内容都删掉或注釋掉,最後加上下面四行,每行右邊的//及後的文字是含義說明,不要輸入 到檔案中:

    listen=yes                        //vsftpd工作在standalone 模式下

    anonymous_enable=yes                //允許匿名使用者登陸伺服器

    local_enable=yes                    //允許本地使用者登入到伺服器

    pam_service_name=vsftpd            //使用PAM認證

    vsftpd有兩種工作模式,standalone模式和xinetd守護程序模式,第1行就是讓其工作在standalone模式下。此種模式中,每次 修改配置檔案必須重新啟動vsftpd服務才能生效,關于兩種模式在後面有詳細介紹。我們安裝時還把 Redhat 目錄下的 vsftpd.pam 檔案複制成了/etc/pam.d/vsftpd 檔案。這個檔案就是本地使用者登陸的 pam 驗證配置檔案。關于這個檔案我們會在後面具體介紹。這裡我們要知道,必須得有這個配置檔案,而且主配置檔案裡要加上 pam_service_name=vsftpd語句,我們才能讓本地使用者登陸。用以下指令啟動服務:

    [[email protected] vsftpd-2.3.2]# /usr/local/sbin/vsftpd &    //背景啟動vsftp

我們可以通過pgrep vsftpd 來檢視vsftpd伺服器是否運作起來;

    [[email protected] vsftpd-2.3.2]#

pgrep vsftpd

     4248

上面顯示vsFTPd伺服器運作起來了,您可以通過ftp指令、lftp工具或gftp或其它的FTP用戶端來測試連接配接;

    為保證服務确實啟動,我們用如下指令檢測:

    [[email protected] vsftpd-2.3.2]# netstat -an |grep 21

    tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN

    我們看到伺服器已經打開了tcp21端口,表明ftp确實已經啟動。再登入伺服器:

    [[email protected] vsftpd-2.3.2]# ftp 127.0.0.1

    Connected to 127.0.0.1.

    220 (vsFTPd 2.0.5)

    530 Please login with USER and PASS.

    530 Please login with USER and PASS.

    KERBEROS_V4 rejected as an authentication type

    Name (127.0.0.1:root): ftp

    331 Please specify the password.

    Password:

    230 Login successful.

    這時我們已經用匿名使用者(使用者名ftp或anonymous,密碼任意)登入到伺服器了,還可以用本地使用者登入。我們做測試時建議使用如上所示的ftp命 令(windows、Linux及Unix都帶這個指令,用法都是一樣的)來登入伺服器,這樣可以看到更詳細的資訊,對于我們調試伺服器是非常有幫助的。 最簡單的ftp伺服器就已經達建起來了。

使用如下指令關閉ftp服務:

    [[email protected] vsftpd-2.3.2]# killall vsftpd    //或是 pkill vsftpd

    [[email protected] vsftpd-2.3.2]# pgrep vsftpd   //檢視vsftpd伺服器是否已經關閉

四、 開機自啟動

            用vi打開etc/rc.local在裡面加入/usr/local/bin/vsftpd & 即可。

繼續閱讀