歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> 用Linux架設FTP服務器(1)

用Linux架設FTP服務器(1)

日期:2017/3/2 16:56:38   编辑:Linux服務器
概述
    使用文件傳輸協議(FTP)來通過網絡在計算機之間傳輸文件是很普遍的一種方法。幾乎在所有的平台上面都有FTP 的客戶端和服務端的軟件,因此用FTP來傳送文件也是很方便的一個方法。
    有很多配置FTP服務器的不同方法。其中一種是把FTP配置成只對系統中的用戶開放的私有服務器,這也是FTP的默認配置。一個私有的FTP服務器只運行系統中的用戶訪問,而且可以對用戶進行訪問控制,這樣可以給予或拒絕特定用戶的訪問權限。
    另一種是把FTP服務器配置成匿名服務器。匿名FTP服務器允許任何人(不管有沒有帳號)訪問服務器並傳輸文件。因為可能存在潛在的安全問題,必須小心配置使得只允許訪問系統中特定的目錄。 在這一節裡,我們把FTP配置成“chrooted”的方式,這種配置運行用戶訪問,例如:Web站點的目錄,但是不允許他們訪問更高一層的目錄。
    注意事項
    下面所有的命令都是Unix兼容的命令。
    源路徑都為“/var/tmp”(當然在實際情況中也可以用其它路徑)。
    安裝在RedHat Linux 6.1下測試通過。
    要用“root”用戶進行安裝。
    wu-ftp的版本號是2.6.0。
    編譯和安裝
    把軟件包(tar.gz)解壓縮:
    [root@deep]# cp wu-ftpd-version.tar.gz /var/tmp
    [root@deep]# cd /var/tmp
    [root@deep]# tar xzpf wu-ftpd-version.tar.gz
    編譯和優化
    轉到wu-ftpd的新目錄下,運行下面的命令:
    編輯“ftpcount.c”文件(vi +241 src/ftpcount.c),改變下面這一行:
    #if defined (LINUX)
    改為:
    #if defined (LINUX_BUT_NOT_REDHAT_6_0)
    編輯“pathnames.h.in”文件(vi +42 src/pathnames.h.in),改變下面這一行:
    #define _PATH_EXECPATH "/bin/ftp-exec"
    改為:
    #define _PATH_EXECPATH "/usr/bin/ftp-exec"
    我們把“ftp-exec”從“/bin”目錄改到“/usr/bin”目錄下。
     先設置編譯器的編譯參數:
    CC="egcs"
    CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-
    pointer -fno-exceptions"
    ./configure
    --prefix=/usr
    --sysconfdir=/etc
    --localstatedir=/var
    --disable-dnsretry
    --enable-quota
    --enable-pam
    --disable-daemon
    --disable-newlines
    --disable-virtual
    --disable-plsm
    --disable-pasvip
    --disable-anonymous
    --enable-ls
    --enable-numericuid
    這些編譯參數告訴編譯器如何編譯wu-ftpd:
    不要用失敗的DNS查詢
    加入對定額(QUOTA)的支持(如果OS支持)
    加入對PAM的支持
    不允許作為單獨的daemon運行
    刪除過多的空行
    不支持虛擬服務器
    禁止PID加鎖睡眠消息(用於繁忙的站點)
    被動連接的時候不要求用同樣的IP
    不允許匿名ftp訪問
    使用內部的“ls”命令(試驗性的)
    內部的“ls”命令顯示UID而不顯示用戶名(為了提高速度)
    用下面的命令編譯和安裝軟件:
    make
    make install
    install -m 755 util/xferstats /usr/sbin
    touch /var/log/xferlog
    chmod 600 /var/log/xferlog
    cd /usr/sbin
    ln -sf in.ftpd /usr/sbin/wu.ftpd
    ln -sf in.ftpd /usr/sbin/in.wuftpd
    strip /usr/bin/ftpcount
    strip /usr/bin/ftpwho
    strip /usr/sbin/in.ftpd
    strip /usr/sbin/ftpshut
    strip /usr/sbin/ckconfig
    strip /usr/sbin/ftprestart
    上面的“make”和“make install”可以配置軟件以保證系統中有編譯所需要的函數庫,然後把所有的源文件都編譯成可執行的二進制文件,最後把二進制文件和配置文件安裝到相應的目錄裡。
  “install –m”安裝“xferstats”程序,用於統計傳輸了多少文件。“touch”命令為xferstats在“/var/log”目錄下創建日志文件。“chomod”把“xferlog”的權限改為只對超級用戶“root”可讀和可寫。接著,我們為“in.ftpd”二進制文件創建符號鏈接。最後,用“strip”命令減小所有二進制文件的大小以提高wu-ftpd的性能。
    清除不必要的文件
    [root@deep]# cd /var/tmp
    [root@deep]# rm -rf wu-ftpd-version/ wu-ftpd-version.tar.gz
   “rm”命令刪除所有編譯和安裝wu-ftpd所需要的源程序,並且把wu-ftpd軟件的壓縮包刪除掉。

Copyright © Linux教程網 All Rights Reserved