vsftpd 編譯安裝 及 隱藏版本號

 

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

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

[注:]//爲註釋符,如「// 創建MySQL組」,即爲一句註釋。mysql

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

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

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

/home1              文件格式:Ext3           容量大小:剩餘全部空間,約150Gweb

 

所需軟件:sql

vsftpd-2.0.4.tar.gz數據庫

系統環境:apache

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]-->1、             <!--[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]-->2、             <!--[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模式不一樣

1、什麼是PASV和PORT方式

(1)PORT實際上是Standard模式的另外一個名字,又稱爲Active模式。中文意思是「主動模式」。

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

2、二者不一樣

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

3、常見的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
相關文章
相關標籤/搜索