一、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 & 即可。