1.安裝vsftpd伺服器
vsftpd是目前Linux最好的FTP伺服器工具之一,其中的vs就是“Very Secure”(很安全)的縮寫,可見它的最大優點就是安全,除此之外,它還具有體積小,可定製強,效率高的優點。
如果選擇完整安裝Red Hat Linux 9.0,則系統會預設安裝vsftpd伺服器。我們可以在終端命令視窗輸入以下命令進行驗證:
[root@ahpeng root] rpm -q agrep vsftpd
如果結果顯示為“vsftpd-1.1.3-8”,則說明系統已經安裝vsftpd伺服器。如果安裝Red Hat Linux 9.0時沒有選擇vsftpd伺服器,則可以在圖形環境下單擊“主菜單→系統設定→添加刪除應用程式”功能表項目,在出現的“軟體包管理”對話方塊裡確保選中 “FTP伺服器”選項,然後單擊“更新”按鈕,按照工具提示插入第3張安裝光碟片即可開始安裝。
另外,你也可以直接插入第3張安裝光碟片,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安裝包,然後在終端命令視窗運行以下命令即可開始安裝進程:
[root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm
2.啟動/重新啟動/停止vsftpd服務
從Red Hat Linux 9.0開始,vsftpd預設只採用standalone方式啟動vsftpd服務,方法是在終端命令視窗運行以下命令:
[root@ahpeng root] /etc/rc.d/init.d/vsftpd start
重新啟動vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart
關閉vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop
確認vsftpd服務已經啟動後,我們可以在任意一台Windows主機的DOS命令視窗裡輸入“ftp FTPAddres”(用實際的FTP伺服器IP地址或者網域名稱代替FTPAddres),注意使用者名稱、密碼都是ftp(ftp是匿名使用者的映射使用者帳號),如下所述:
Microsoft Windows XP [版本 5.1.2600]
(C) 著作權 1985-2001 Microsoft Corp.
F:/Peter>ftp FTPAddress
Connected to FTPAddress
220 (vsFTPd 1.1.3)//vsftpd的響應請求
User (FTPAddress:(none)): ftp//輸入使用者帳號ftp
331 Please specify the password.
Password://輸入密碼ftp
230 Login successful. Have fun.
ftp>
3.vsftpd的配置
在Red Hat Linux 9.0裡的vsftpd共有3個設定檔,它們分別是:
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些使用者賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該檔案裡的使用者賬戶在預設情況下也不能訪問FTP伺服器,僅當vsftpd .conf設定檔裡啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。它是一個文字檔,我們可以用Kate、Vi等文本編輯工具對它進行修改,以此來自訂使用者登入控制、使用者權限控制、逾時設定、伺服器功能選項、伺服器效能選項、伺服器響應訊息等FTP伺服器的配置。
(1)使用者登入控制
anonymous_enable=YES,允許匿名使用者登入。
no_anon_password=YES,匿名使用者登入時不需要輸入密碼。
local_enable=YES,允許本機使用者登入。
deny_email_enable=YES,可以建立一個檔案儲存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單儲存路徑(預設為/etc/vsftpd.banned_emails)。
(2)使用者權限控制
write_enable=YES,開啟全域上傳許可權。
local_umask=022,本機使用者的上傳檔案的umask設為022(系統預設是077,一般都可以改為022)。
anon_upload_enable=YES,允許匿名使用者具有上傳許可權,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp使用者可以讀寫的目錄(前面說過,ftp是匿名使用者的映射使用者帳號)。
anon_mkdir_write_enable=YES,允許匿名使用者有建立目錄的權利。
chown_uploads=YES,啟用此項,匿名上傳檔案的屬主使用者將改為別的使用者賬戶,注意,這裡建議不要指定root帳號為匿名上傳檔案的屬主使用者!
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主使用者帳號,此處的whoever自然要用合適的使用者帳號來代替。
chroot_list_enable=YES,可以用一個列表限定哪些本機使用者只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的使用者是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的儲存路徑(預設是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全使用者帳號,讓FTP伺服器用作完全隔離和沒有特權的獨立使用者。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,預設情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
注意:啟用ascii_download_enable選項會讓惡意遠端使用者們在ASCⅡ模式下用SIZE/big/file這樣的指令大量消耗FTP伺服器的I/O資源。
這些ASCⅡ模式的設定選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳指令碼等惡意檔案而導致崩潰),而不會遭受拒絕服務的攻擊的危險。
(3)使用者串連和逾時選項
idle_session_timeout=600,可以設定預設的空閑逾時時間,使用者超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定預設的資料連線逾時時間。
(4)伺服器日誌和歡迎資訊
dirmessage_enable=YES,允許為目錄配置顯示資訊,顯示每個目錄下面的message_file檔案的內容。
ftpd_banner=Welcome to blah FTP service,可以自訂FTP使用者登入到伺服器所看到的歡迎資訊。
xferlog_enable=YES,啟用記錄上傳/下載活動紀錄功能。
xferlog_file=/var/log/vsftpd.log,可以自訂記錄檔的儲存路徑和檔案名稱,預設是/var/log/vsftpd.log.