概述
使用文件傳輸協議(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軟件的壓縮包刪除掉。