1. 程式人生 > >vsftpd 編譯安裝 及 隱藏版本號

vsftpd 編譯安裝 及 隱藏版本號

str 本地服務 沒有 版本號 取數據 賦值 其他 映射 自動啟動

環境:Redhat Enterprise Linux AS 4.0 update2(i386)

不提示,均表示以root權限執行。

[註:]//為註釋符,如“// 建立MySQL組”,即為一句註釋。

我有一塊硬盤160 G ,內存1G ,分區如下:

/ 文件格式:Ext3 容量大小:8G

(交換分區,無) 文件格式:Swap 容量大小:2 G (2G=2048M,約為內存值的2倍)

/home1 文件格式:Ext3 容量大小:剩余所有空間,約150G

所需軟件:

vsftpd-2.0.4.tar.gz

系統環境:

linux as4操作系統(註意!我這個是32位的操作系統!!!):不安裝自帶的apache和mysql,要安裝編輯器(很多地方要用到),Windows文件服務器和DNS服務器,開發那一組就裝個開發工具,其余全不安裝。

建議你把軟件包選擇.tar.gz的,並且統一放到/usr/local/src目錄下。

另外,我準備把所有軟件安裝到/home1/opt/下,ftp的存儲目錄在/home1/var/ftp下。

編譯參數(即./configure 。。。)可以設置多次,以最後一次的為準。

.tar.gz的包,用tar -zxvf xxxx.tar.gz 方式解壓;

.tar.bz或者.tar.bz2的包,用tar –xjvf

xxxx.tar.bz2方式解壓.

<!--[if !supportLists]-->一、 <!--[endif]-->安裝:

最高權限的系統用戶不能用root為用戶名,因為vsftpd從安全角度考慮,拒絕root。

建立的系統用戶均屬已有的ftp組。其權限各異。

我們安裝的vsftpd版本是2.0.4 ,可以在官方網站http://vsftpd.beasts.org/下載到這個版本的源碼包vsftpd-2.0.4.tar.gz。

編譯安裝vsftpd需要root權限。

默認配置下,vsftpd需要使用nobody用戶和目錄/usr/share/empty 。默認安裝Redhat Enterprise Linux 4.0時會自動創建nobody用戶。

<!--[if !supportLists]-->1. <!--[endif]-->使用以下命令驗證nobody用戶是否已經存在:

# useradd nobody

如果用戶已經存在,系統會出現“useradd:user nobody exists”的提示,如果用戶不存在,以上命令將創建nobody用戶。

<!--[if !supportLists]-->2. <!--[endif]-->使用以下命令驗證/usr/share/empty目錄是否存在或創建它:

# mkdir /usr/share/empty

<!--[if !supportLists]-->3. <!--[endif]-->編譯安裝

# cd /usr/local/src //進入此放軟件包的目錄

# tar –zxvf vsftpd-2.0.4.tar.gz //解壓

# cd vsftpd-2.0.4 //進入解開包的目錄

(解壓後,沒有configure這個東西,貌似不能指定安裝路徑……)

# make //編譯

# make install //安裝

# cp vsftpd.conf /etc/ //復制vsftpd配置文件到/etc下

# cp RedHat/vsftpd.pam /etc/pam.d/ftp //允許本地用戶登陸服務器,這個cp是為了ftp認證用的,即用戶登錄的時候是需要通過pm.d 這個認證的

安裝結束!看看安裝了些什麽。下面是make install命令的精簡輸出:

/usr/local/sbin/vsftpd //這是vsftpd的主程序,就是它提供了FTP服務

/usr/share/man/man8/vsftpd.8 //這是vsftpd的man手冊

/usr/share/man/man5/vsftpd.conf.5 //這是vsftpd的man手冊

/etc/xinetd.d/vsftpd //這是vsftpd的xinetd方式的啟動配置文件

# vi /etc/vsftpd.conf //我們需要在最後加入一句listen=YES ,這樣做的原因是讓服務器獨立的運行,讓服務器自己監聽,按Esc,:wq 保存並退出.

# vsftpd & //使vsftpd以後臺方式運行

現在,基本安裝就完成了。

測試一下:

# ftp localhost //連接本地服務器

提示輸入用戶名的時候,輸入:anonymous

提示輸入密碼,因為匿名用戶密碼默認為空,我們直接回車

發現不行,找不到/var/ftp目錄,為什麽?因為匿名用戶默認登入時的啟始目錄是/var/ftp ,而我們現在還沒有建立/var/ftp這個目錄!而且我也不打算ftp的目錄默認為/var/ftp ,我準備設置ftp的目錄位置為/home1/var/ftp .這個問題不要緊,我也沒打算讓匿名用戶能夠訪問。

如果你要允許虛擬用戶訪問的話,可以在主配置文件vsftpd.conf中指定“anon_root=目錄”。

Ok,既然不行,那麽,接著,在ftp提示符下

ftp>bye //退出

<!--[if !supportLists]-->二、 <!--[endif]-->配置

1.建立ftp主目錄

我要把ftp主目錄設在/home1/var/ftp

# mkdir /home1/var //創建var目錄

# mkdir /home1/var/ftp //創建ftp主目錄

# chown root.root /home1/var/ftp //將目錄所有者改為root,組也改為root

# chmod og-w /home1/var/ftp //權限設定為其他用戶和root組的人不能寫入,只能讀和進入

2.配置自動啟動

默認情況下,編譯安裝vsftpd會生成vsftpd的xinetd啟動方式的配置腳本/etc/xinetd.d/vsftpd(xinetd是inetd(通常稱為Internet超級服務程序,提供被動式的伺服服務)的一個擴展)。這個腳本會使vsftpd在開機時自動啟動,關機時自動關閉。但是xinetd方式不能應付FTP負載壓力很大的情況,所以我們需要獨立地控制vsftpd的運行。下面,我們要設置vsftpd為獨立方式啟動,即單獨方式(Standalone方式)。

# vi /etc/vsftpd.conf

在文件末尾添加:listen=YES //這步我們安裝的時候已經做過了,這句話的意思是讓vsftpd以單獨方式獨立地運行並監聽(在規定的端口提供服務。如果沒有這句話或者設置了“listen=NO”,那麽vsftpd只能以xinetd的方式來啟動,強行以單獨方式啟動會出現:“500 oops:vsftpd:not configured for standalone,must be started from inetd”的錯誤信息)。

# vi /etc/xinetd.d/vsftpd

把“disable=no”改成“disable=yes”,讓xinetd服務不再負責vsftpd的啟動。不然以單獨方式啟動時會出現“500 OOPS:could not bind listening IPv4 socket”的提示。

# service xinetd restart //重啟xinetd服務以使上面的修改生效

接下來,我們偷個懶,借用一下RPM包中的文件作為我們啟動、停止vsftpd的腳本。

將第1張安裝光盤放入光驅,

# mount /dev/cdrom /media/cdrom //掛載光驅

# cd /media/cdrom/RedHat/RPMS

# cp vsftpd-2.0.1-5.EL4.3.i386.rpm /tmp //復制rpm文件到tmp目錄中

然後,直接在文件管理器中瀏覽/tmp目錄,在rpm文件上右擊,在彈出的菜單中選擇“用“歸檔管理器”打開”命令,將RPM包中的文件/./etc/rc.d/init.d/vsftpd解壓縮到/etc/rc.d/init.d目錄中。註意,歸檔管理器中的文件路徑是“/./etc/…”。

我們借用的這個文件就是RedHat提供的控制腳本文件。由於編譯安裝和RPM包安裝的文件路徑不同,所以還需要做一點輔助工作:

# cd / //回到/提示符下

# mkdir /etc/vsftpd //創建/etc/vsftpd目錄

# ln -s /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf //vsftpd主配置文件的軟連接

# ln -s /usr/local/sbin/vsftpd /usr/sbin/vsftpd //vsftpd主程序的軟連接

現在測試一下這個腳本:

# /etc/rc.d/init.d/vsftpd start //開始

# /etc/rc.d/init.d/vsftpd restart //重啟

# /etc/rc.d/init.d/vsftpd stop //停止

# /etc/rc.d/init.d/vsftpd status //狀態查詢

都看到綠色的[確定]就可以了。

下面,設置服務的自動開停:

# chkconfig --level 3 vsftpd on //配置/etc/rc.d/init.d/vsftpd在運行級別為3的時候(3:代表完全多用戶模式)由系統來控制啟動。這個命令會在/etc/rc3.d目錄中創建一個連接文件S60vsftpd 。其中“S”是“start”,表示系統在啟動時運行此連接。

# chkconfig --level 5 vsftpd on //同上理,(5:代表X11)

# ll /etc/rc3.d/ | grep vsftpd //查看是否已創建連接文件

# ll /etc/rc5.d/ | grep vsftpd //查看是否已創建連接文件

3.日誌文件的配置

查看一下日誌,日誌文件vsftpd.log應該已經存在了:

# cat /var/log/vsftpd.log

<!--[if !supportLists]-->4. <!--[endif]-->配置用戶訪問權限(我使用虛擬用戶)

我的FTP的目錄結構如下:

/home1/var/ftp

|--pub //管理員目錄

|--incoming //收入,雜項

|--www //網站目錄

|--pub1 //公司目錄

|--pub2 //員工目錄

創建目錄:

# mkdir /home1/var/ftp/pub //創建管理員目錄

# mkdir /home1/var/ftp/incoming //創建收入目錄

# mkdir /home1/var/ftp/www //創建網站目錄

# mkdir /home1/var/ftp/pub1 //創建公司目錄

# mkdir /home1/var/ftp/pub2 //創建員工目錄

創建真實用戶vsftpdVU,以後的虛擬用戶就用這個用戶來映射(比如:vsftpdVU是我們創建的真實用戶,而zhangsan是為ftp創建的虛擬用戶,當用zhangsan訪問ftp時,ftp服務器會把該用戶映射成vsftpdVU用戶):

//創建真實的系統用戶vsftpdVU,-s /sbin/nologin是讓其不能登陸系統,-g ftp將其加入ftp組,-d /home1/var/ftp指定用戶登入時的啟始目錄為/home1/var/ftp ,-M不自動建立用戶的登入目錄

# useradd -s /sbin/nologin -g ftp -d /home1/var/ftp -M vsftpdVU

//設定密碼(這個密碼好像不管設不設置,以後直接用這個用戶登錄ftp都不行…)

# passwd vsftpdVU //輸完敲回車,然後輸入兩次密碼,再回車即設定

//設置/home1/var/ftp目錄及其子目錄的屬主為vsftpdVU,參數-R別忘記,循環設定子目錄屬主的

# chown vsftpdVU.ftp /home1/var/ftp/ -R

//設置/home1/var/ftp目錄及其子目錄的讀寫權限為僅所有者可讀、寫、執行

# chmod 700 /home1/var/ftp –R

-------------------------------------------------------------------------------

//下面這兩句要設一下權限,不然你的PHP網站沒法運行,會顯示一個空白背景的頁面,告訴你“Forbidden”,就是禁止訪問

# chmod 755 /home1/var/ftp //更改ftp目錄權限為所有者可讀、寫、執行,同組用戶可讀和執行

# chmod 755 /home1/var/ftp/www //更改網站目錄權限為所有者可讀、寫、執行,同組用戶和其他用戶可讀和執行

-------------------------------------------------------------------------------

# finger vsftpdVU //確認一下該用戶

<!--[if !supportLists]-->5. <!--[endif]-->使用虛擬用戶

# vi /etc/vsftpd/vsftpd.conf //修改主配置文件

設置如下:

anonymous_enable=NO //禁止匿名用戶訪問

local_enable=YES //允許本地用戶訪問

write_enable=NO //禁止寫權限

anon_upload_enable=NO //禁止匿名用戶上傳文件

anon_mkdir_write_enable=NO //禁止匿名用戶創建目錄

新添加以下幾句:

anon_other_write_enable=NO //禁止匿名用戶除上傳和創建目錄外其他權限,比如刪除和重命名

chroot_local_user=YES //本地用戶登錄後將被限制在其家目錄中

guest_enable=YES //允許虛擬用戶(即:所有非匿名用戶都以guest身份登錄,guest通過guest_username設定,來映射到一個指定用戶)

guest_username=vsftpdVU //把虛擬用戶映射成系統用戶vsftpdVU

按Esc,鍵入:wq保存退出。

//創建虛擬用戶的用戶帳號文件,這是一個格式文件:奇數行是用戶名,偶數行是用戶密碼

# cd /home1/var/ftp //進入ftp目錄,就在此目錄下生成帳號文件login.txt

# cat <<! >login.txt

>webdesman

>用戶密碼

>download

>用戶密碼

>webadmin

>用戶密碼

>upload1

>用戶密碼

>upload2

>用戶密碼

>!

#

//下面進行哈希加密一下,生成口令庫文件

# db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db

//修改口令庫權限

# chmod 600 /etc/vsftpd/vsftpd_login.db

為防萬一,把login.txt文件copy到u盤一份,然後刪除本機的login.txt

//接下來,要修改一些vsftpd的PAM設置,好讓我們新建的虛擬帳號生效

# vi /etc/pam.d/ftp

//把auth打頭的全都用#號註釋掉,以account打頭的那句也註釋掉,然後插入如下兩行

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

按Esc,鍵入:wq保存退出。

# service vsftpd restart //重啟vsftpd

隨便用一個虛擬用戶名測試登陸ftp:

# ftp 127.0.0.1

應該沒問題的。

<!--[if !supportLists]-->6. <!--[endif]-->對不同的虛擬用戶進行不同的權限的配置

5個虛擬用戶,計劃配置如下:

/home1/var/ftp

|--/ //超級管理員目錄(虛擬用戶:ftproot)

|--pub //管理員目錄(虛擬用戶:webdesman)

|--incoming //收入,雜項(虛擬用戶:download)

|--www //網站目錄(虛擬用戶:webadmin)

|--pub1 //公司目錄(虛擬用戶:upload1)

|--pub2 //員工目錄(虛擬用戶:upload2)

各自登陸後只能看到自己的目錄,同時權限分配如下:

ftproot 具有瀏覽全部ftp目錄、上傳、下載、文件改名和刪除文件、創建目錄、刪除目錄的權限

webdesman 具有瀏覽自家目錄、上傳、下載、文件改名和刪除文件、創建目錄、刪除目錄的權限

download 具有瀏覽自家目錄和下載的權限

webadmin 具有瀏覽自家目錄、上傳、下載、文件改名和刪除文件、創建目錄、刪除目錄的權限

upload1 具有瀏覽自家目錄、上傳和下載的權限

upload2 具有瀏覽自家目錄、上傳和下載的權限

//首先,編輯主配置文件/etc/vsftpd.conf

//激活對不同的虛擬用戶進行不同權限配置的配置語句

# vi /etc/vsftpd.conf

//在文件中添加如下的配置行

user_config_dir=/etc/vsftpd_user_conf //指定虛擬用戶的配置文件的存放路徑

按Esc,鍵入:wq保存退出。

//接下來創建此目錄

# mkdir /etc/vsftpd_user_conf

//每個虛擬用戶都有一個以用戶名為文件名的配置文件

//創建虛擬用戶ftproot的配置文件,指定其登陸後的起始目錄,並開放ftproot的讀寫權限、其他權限(如文件改名和刪除文件的權限)

# cat <<! >/etc/vsftpd_user_conf/ftproot

>local_root=/home1/var/ftp

>anon_world_readable_only=NO

>write_enable=YES

>anon_upload_enable=YES

>anon_mkdir_write_enable=YES

>anon_other_write_enable=YES

>virtual_use_local_privs=YES

//創建虛擬用戶webdesman的配置文件,指定其登陸後的起始目錄,並開放webdesman的讀寫權限、其他權限(如文件改名和刪除文件的權限)

# cat <<! >/etc/vsftpd_user_conf/webdesman

>local_root=/home1/var/ftp/pub

>anon_world_readable_only=NO

>write_enable=YES

>anon_upload_enable=YES

>anon_mkdir_write_enable=YES

>anon_other_write_enable=YES

>virtual_use_local_privs=YES //(虛擬用戶擁有同本地用戶一樣的權限)這句重要啊!不然你用webdesman新建一個目錄沒法改權限!比如,你原本設置的www目錄權限是700,那你的php程序就運行不了,這個時候你要是沒有這句,你用webdesman這個帳號登陸ftp服務器之後,新建一個目錄就還是700的權限!就算你已經用root在本地更改了網站目錄www及其子目錄的權限為755,你用這個虛擬用戶webdesman登錄ftp服務器後在www下新建一個子目錄,其權限還是700!!!這個是管理員我用的,當然權限要高啊,連目錄權限都不能改,那哪行啊!當然這是特殊,要都這樣搞,那設置虛擬用戶就沒有什麽意義了,都設成本地用戶不就行了!還有,沒有這一句,這個虛擬用戶沒法刪除非空目錄(可以刪除空目錄)!!加了這一句,就可以在客戶端用cuteftp之類的第三方軟件刪除非空目錄了!但是我在服務器端字符界面登陸ftp上去,還是刪不了非空目錄,奇怪中…

>! //執行

//創建虛擬用戶download的配置文件,指定其登陸後的起始目錄,並開放download的讀權限

# cat <<! >/etc/vsftpd_user_conf/download

>local_root=/home1/var/ftp/incoming

>anon_world_readable_only=NO

>!

//創建虛擬用戶webadmin的配置文件,指定其登陸後的起始目錄,並開放webadmin的讀寫權限、其他權限(如文件改名和刪除文件的權限)

# cat <<! >/etc/vsftpd_user_conf/webadmin

>local_root=/home1/var/ftp/www

>anon_world_readable_only=NO

>write_enable=YES

>anon_upload_enable=YES

>anon_mkdir_write_enable=YES

>anon_other_write_enable=YES

>virtual_use_local_privs=YES //同webdesman帳號意義,有時會更改網站目錄結構,如果沒法改目錄權限,那php程序就運行不了,甚至htm頁面都看不了!

>!

//創建虛擬用戶upload1和upload2的配置文件,指定其登陸後的起始目錄,開放upload1和upload2的讀寫權限

# cat <<! >/etc/vsftpd_user_conf/upload1

>local_root=/home1/var/ftp/pub1

>anon_world_readable_only=NO

>write_enable=YES

>anon_upload_enable=YES

>!

# cat <<! >/etc/vsftpd_user_conf/upload2

>local_root=/home1/var/ftp/pub2

>anon_world_readable_only=NO

>write_enable=YES

>anon_upload_enable=YES

>!

//重新啟動vsftpd

# service vsftpd restart

//配置結束

測試,略。

<!--[if !supportLists]-->7. <!--[endif]-->限制用戶的訪問

現在,我們已經能提供不錯的FTP服務了。不過有些用戶經常要傳送一些較大卻不重要的文件,他們使用網絡快車、網絡螞蟻之類的工具,建立了大量的連接,占用了大量的服務資源,造成了其他用戶的訪問困難。看來我們需要對FTP服務做一些限制,讓一個用戶最多只能建立4個連接,而且每個用戶的下載帶寬不能超過500 KB。為了安全起見,我們再修改默認端口號21為2121

//修改主配置文件/etc/vsftpd.conf

# vi /etc/vsftpd.conf

在文件末尾添加如下語句:

max_clients=100 //限制同時最多用戶連接數為100

max_per_ip=4 //限制一個用戶最多連接數為4

local_max_rate=512000 //限制下載帶寬不能超過500KB

按Esc,鍵入:wq保存退出。

# service vsftpd restart //重新啟動vsftpd

<!--[if !supportLists]-->8. <!--[endif]-->開啟PASV模式(被動模式)

先了解一下相關知識:

-------------------------------------------------------------------------------

FTP服務器PASV和PORT模式不同

一、什麽是PASV和PORT方式

(1)PORT其實是Standard模式的另一個名字,又稱為Active模式。中文意思是“主動模式”。

(2)PASV也就是Passive的簡寫。中文就是“被動模式”。

二、兩者不同

不同之處是由於PORT(主動)這個方式需要在接上TCP 21端口後,服務器通過自己的TCP 20來發出數據。並且需要建立一個新的連接來傳送檔案。而PORT的命令包含一些客戶端沒用的資料,所以有了PASv的出現。而PASV模式擁有PORT 模式的優點,並去掉一些PORT的缺點。PASV運行方式就是當服務器接收到客戶端連接請求時,就會自動從端口1024到5000中隨機選擇一個和客戶端建立連接傳遞數據。由於被動且自動建立連接,容易受到攻擊,所以安全性差。

三、常見的FTP客戶端軟件PORT方式與PASV方式的切換方法

大部分FTP客戶端默認使用PASV方式。IE默認使用PORT方式。在大部分FTP客戶端的設置裏,常見到的字眼都是“PASV”或“被動模式”,極少見到“PORT”或“主動模式”等字眼。因為FTP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味著使用PORT方式。

(1)IE:工具 -> Internet選項 -> 高級 -> “使用被動FTP”(需要IE6.0以上才支持)。

(2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左邊選中站點 -> Edit -> “Use PASV mode” 。

(3)FlashGet:工具 -> 選項 -> 代理服務器 -> 直接連接 -> 編輯 -> “PASV模式”。

(4)FlashFXP:選項 -> 參數選擇 -> 代理/防火墻/標識 -> “使用被動模式” 或 站點管理 -> 對應站點 -> 選項 -> “使用被動模式”或快速連接-> 切換 -> “使用被動模式”。

Linux防火墻的關閉和開啟

1) 重啟後生效

開啟: chkconfig iptables on

關閉: chkconfig iptables off

2) 即時生效,重啟後失效

開啟: service iptables start

關閉: service iptables stop

需要說明的是對於Linux下的其它服務都可以用以上命令執行開啟和關閉操作。

在開啟了防火墻時,做如下設置,開啟相關端口,

修改/etc/sysconfig/iptables 文件,添加以下內容:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-------------------------------------------------------------------------------

我配置完後,ftp默認是主動模式的(port),有些用戶是通過路由什麽的訪問外網的ftp服務器的,而且還有防火墻什麽的,這個時候,使用主動模式就不行!就必須要用被動模式(PASV),當然,主動模式比被動模式要好,要安全一些。現在,我們編輯主配置文件/etc/vsftpd.conf

# vi /etc/vsftpd.conf

在文件末尾添加如下語句:

pasv_enable=YES //允許使用pasv模式,雖然說默認是YES,但我在配置文件裏沒有找到這一句,還是添上吧,小心無大錯

//為安全性考慮,我們設置PASV模式端口範圍為63000 - 63100

pasv_min_port=63000 //為PASV方式數據連接指派的最小端口

pasv_max_port=63100 //為PASV方式數據連接指派的最大端口

port_enable=YES //允許使用端口模式獲取數據連接。這句我在配制文件裏也沒找到,添上吧。如果你要在數據連接時取消主動模式(PORT模式)時,設此選項為NO。默認值為YES。

accept_timeout=60 //超時,以秒計,用於遠程客戶端以PASV模式建立數據連接

connect_timeout=60 //超時,以秒計,用於遠程客戶端以PORT模式建立數據連接

hide_ids=YES //所有目錄中的用戶和組信息在列取時都將顯示“ftp”

如果你的服務器linux系統啟用了防火墻iptables,還需要添加允許開放的端口,也就是我們上面添加的PASV模式的端口範圍63000 – 63100

# vi /etc/sysconfig/iptables

添加如下:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 63000:63100 -j ACCEPT

按Esc,鍵入:wq保存退出,就生效了,不用重啟防火墻或者系統。

好了,現在我們在客戶端使用PASV模式就可以連上ftp服務器了,並且使用的是63000到63100之間的端口號。

===============================================================================

以下是為Ftp添加新的用戶的步驟

1.在lognis.txt中添加用戶名和密碼(註意logins.txt是自定義的,要是有這個文件並且直接用該文件,該文件中以前的內容可以去掉不要。經過我試驗,我發現你就是把這個login.txt刪掉了,在添加用戶的時候你再建一個login.txt,加新的用戶和密碼,再哈希生成vsftpd_login.db,結果是不影響之前建的用戶訪問的。)

2.運行如下命令,將用戶名和密碼添加到數據庫中

db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db

3.在/home/ftpsite中新建一個文件夾,與用戶名相同

4.在/etc/vsftpd_user_conf目錄下新建和用戶名(我們下面用xxx表示)相同的文件,並在其中加入

vi /etc/vsftp_user_conf/xxx

local_root=/home/ftpsite/xxx

anon_world_readable_only=NO

write_enable=YES

anon_upload_enable=YES

5,直接用ftp工具訪問即可,不用重啟ftp服務器.

===============================================================================

到此,基本上就完全配置結束了。

來自:http://www.cnblogs.com/lsdb/p/6706386.html?utm_source=itdadao&utm_medium=referral

1.rpm包更新

類似以下更新即可

rpm -Uvh vsftpd-2.2.2-24.el6.x86_64.rpm

2.源碼更新

不懂為什麽對於新版本可能只有源碼包而沒有rpm等包,如此只能以源碼更新了。

tar -zxf nginx-1.10.3.tar.gz
cd vsftpd-3.0.3
make
make install
service vsftpd restart

3.INSTALL文件說明

vsftpd源碼包內有INSTALL文件,該文件是安裝的說明文檔。

該文件最關鍵的步驟仍是make和make install其他內容是前置條件和以xinted方式啟動的說明。

其實完全可以先裝個rpm包這樣前置條件就不用自己操心了,正常起動即可xinted不用管。

4.出現的錯誤

make報錯:make: gcc: Command not found

解決:yum install gcc-c++

說明:直接安裝gcc也是可以的;gcc-c++只是c++的編譯器,gcc是包括c++在內的多種語言的編譯器

make報錯:/usr/bin/ld: cannot find -lcap

解決:yum install libcap-devel

說明:對於/usr/bin/ld: cannot find -lxxx類問題,只要類似地安裝libxxx-devel(CentOS)或libxxx-dev(Ubuntu)即可

啟動報錯:Starting vsftpd for vsftpd: 500 OOPS: config file not owned by correct user, or not a file

/etc/vsftpd/vsftpd.conf文件屬主不對:chown -R root:root /etc/vsftpd

5.修改banner信息(隱藏版本號)

最新的vsftpdvsftpd-2.2.2-24.el6.x86_64.rpm也沒有解決‘ls.c‘ 遠程拒絕服務漏洞(CVE-2011-0762),而3.0版本又沒有對應rpm包只能以源碼安裝

在實際操作發現,有些機器以源碼形式升級後版本號不知何故並沒有改變,為此需手動修改版本號以避免掃描器誤報(由此如果只是要躲避掃描器掃描可以不用升級直接修改版本號即可)

vsftpd的banner中默認有當前版本號,可通過/etc/vsftpd/vsftpd.conf中的ftpd_banner項來自定義banner信息

但如果只是將ftpd_banner賦為隨意語句,測試發現掃描器還是可以猜出大致版本號;為此我們將其值以默認banner信息的格式賦值

sed -i ‘s/ftpd_banner=/#ftpd_banner=/‘ /etc/vsftpd/vsftpd.conf sed -i ‘/ftpd_banner=/a\ftpd_banner=(vsFTPd 3.3.3)‘ /etc/vsftpd/vsftpd.conf

vsftpd 編譯安裝 及 隱藏版本號