歡迎您光臨本站 註冊首頁

vsftp配置大全---已完成

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

vsftp配置大全---已完成

最近心血來潮,想搭建一個FTP空間,就選vsftp把,這不是非常安全的嗎?網上隨處能看到文章,但看來看去,都是老版本,現在的都已經
Mar. 2005 - vsftpd-2.0.3 released

好吧,啃了一天,恩,把匿名、本地用戶、資料庫虛擬用戶 等登陸方式都實現了一個遍,今天晚上去寫文檔!!

作品已完成,請大家看后提出寶貴意見,轉載請聯繫我,MSN:xu1701@hotmail.com
《解決方案》

vsftp配置大全---已完成

明天給大家寫過來!西西!省得大家費時間看那些過時的資料!
《解決方案》

vsftp配置大全---已完成

支持一下..高手能不能抽空去看看俺的問題>;_<
http://bbs.chinaunix.net/forum/viewtopic.php?t=558676&show_type=
《解決方案》

vsftp配置大全---已完成

答完了!
《解決方案》

vsftp配置大全---已完成

明天等你的好消息
《解決方案》

vsftp配置大全---已完成

好,先給大家個匿名的,本來覺得不多,可越寫越多!很多概念之前就得搞明白,要不以後會受罪的!

一、前言
Vsftp(Very Secure FTP)是一種在Unix/Linux中非常安全且快速穩定的FTP伺服器,目前已經被許多大型站點所採用,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org.等。Vsftpd的實現有三種方式
1、匿名用戶形式:在默認安裝的情況下,系統只提供匿名用戶訪問
2、本地用戶形式:以/etc/passwd中的用戶名為認證方式
3、虛擬用戶形式:支持將用戶名和口令保存在資料庫文件或資料庫伺服器中。相對於FTP的本地用戶形式來說,虛擬用戶只是FTP伺服器的專有用戶,虛擬用戶只能訪問FTP伺服器所提供的資源,這大大增強系統本身的安全性。相對於匿名用戶而言,虛擬用戶需要用戶名和密碼才能獲取FTP伺服器中的文件,增加了對用戶和下載的可管理性。對於需要提供下載服務,但又不希望所有人都可以匿名下載;既需要對下載用戶進行管理,又考慮到主機安全和管理方便的FTP站點來說,虛擬用戶是一種極好的解決方案。
   
二、獲取最新版的Vsftp程序
Vsftp官方下載:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已經到2.0.3版本。假設我們已經將vsftpd-2.0.3.tar.gz文件下載到伺服器的/home/xuchen目錄
# cd /home/xuchen
# tar xzvf vsftpd-2.0.3.tar.gz //解壓縮程序
# cd vsftpd-2.0.3

三、三種方式的實現
1、匿名用戶形式實現
# vi builddefs.h  \\編輯builddefs.h 文件,文件內容如下:

#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
將以上undef的都改為define,支持tcp_wrappers,支持PAM認證方式,支持SSL

# make  //直接在vsftpd-2.0.3里用make編譯
# ls -l vsftpd
-rwxr-xr-x  1 root root 86088 Jun  6 12:29 vsftpd  //可執行程序已被編譯成功

創建必要的帳號,目錄:
# useradd nobody  //可能你的系統已經存在此帳號,那就不用建立
# mkdir /usr/share/empty  //可能你的系統已經存在此目錄,那就不用建立
# mkdir /var/ftp  //可能你的系統已經存在此目錄,那就不用建立
# useradd -d /var/ftp ftp  //可能你的系統已經存在此帳號,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
請記住,如果你不想讓用戶在本地登陸,那麼你需要把他的登陸SHELL設置成/sbin/nologin,比如以上的nobody和ftp我就設置成/sbin/nologin

安裝vsftp配置文件,可執行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf
這樣就安裝完成了,那麼我們開始進行簡單的配置

# vi /etc/vsftpd-ano.conf ,將如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES
anon_root=/var/ftp //設置匿名用戶本地目錄,和ftp用戶目錄必須相同
listen=YES的意思是使用standalone啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式)
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf &  //以後台方式啟動vsftpd
注意:每行的值都不要有空格,否則啟動時會出現錯誤,舉個例子,假如我在listen=YES后多了個空格,那我啟動時就出現如下錯誤:
500 OOPS: bad bool value in config file for: listen

測試搭建好的匿名用戶方式
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
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.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>; pwd
257 "/"
ftp>; quit
221 Goodbye.
#
OK,已經完成了,very nice.

高級配置
細心的朋友可能已經看出來我們只在默認配置文件增加了四行,就實現了FTP連接(也證明了vsftpd的易用性),那麼讓我們傳個文件吧,呀!!傳輸失敗了(見圖1)
為什麼呢?因為 vsftpd 是為了安全需要,/var/ftp目錄不能把所有的許可權打開,所以我們這時要建一個目錄pub,當然也還是需要繼續修改配置文件的。
# mkdir /var/ftp/pub
# chmod -R 777 /var/ftp/pub

為了測試方便,我們先建立一個名為kill-ano的腳本,是為了殺掉FTP程序的
#!/bin/bash
a=`/bin/ps -A | grep vsftpd-ano | awk '{print $1}'`
kill -9 $a

那麼現在大家看看我的匿名伺服器配置文件吧
anonymous_enable=YES  //允許匿名訪問,這是匿名伺服器必須的
write_enable=YES  //全局配置可寫
anon_umask=077  //匿名用戶上傳的文件許可權是-rw----
anon_upload_enable=YES  //允許匿名用戶上傳文件
anon_mkdir_write_enable=YES  //允許匿名用戶建立目錄
anon_other_write_enable=YES  //允許匿名用戶具有建立目錄,上傳之外的許可權,如重命名,刪除
dirmessage_enable=YES  //當使用者轉換目錄,則會顯示該目錄下的.message信息
xferlog_enable=YES   //記錄使用者所有上傳下載信息
xferlog_file=/var/log/vsftpd.log  //將上傳下載信息記錄到/var/log/vsftpd.log中
xferlog_std_format=YES   //日誌使用標準xferlog格式
idle_session_timeout=600  //客戶端超過600S沒有動作就自動被伺服器踢出
data_connection_timeout=120  //數據傳輸時超過120S沒有動作被伺服器踢出
ftpd_banner=Welcome to d-1701.com FTP service.  //FTP歡迎信息
anon_max_rate=80000  //這是匿名用戶的下載速度為80KBytes/s
check_shell=NO  //不檢測SHELL

現在再測試,先kill掉再啟動FTP程序
# ./kill-ano
# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf &
上傳一個文件測試一下,怎麼樣?OK了吧,下載剛上傳的那個文件,恩?不行,提示
550 Failed to open file.
傳輸已失敗!
傳輸隊列已完成
1 個文件傳輸失敗

沒有關係,你記得咱們設置了anon_umask=077了嗎?所以你下載不了,如果你到伺服器上touch 一個文件(644),測試一下,是可以被下載下來的,好了,匿名伺服器就說到這裡了。
《解決方案》

vsftp配置大全---已完成

圖是要慢慢傳的!所以我就一個一個圖來
《解決方案》

vsftp配置大全---已完成

眼睛睜不開了,明天繼續寫吧!!
《解決方案》

vsftp配置大全---已完成

期待下文;)
《解決方案》

vsftp配置大全---已完成

新舊差別不大,就是用mysql來認證時,新的pam不能用,不知現在是否出了新版本

[火星人 ] vsftp配置大全---已完成已經有660次圍觀

http://coctec.com/docs/service/show-post-25491.html