1. 程式人生 > >Linux中搭建vsftp服務

Linux中搭建vsftp服務

vsftp簡介

安全性是編寫VSFTP的初衷,除了這與生俱來的安全特性以外,高速與高穩定性也是VSFTP的兩個重要特點。
在速度方面,使用ASCII程式碼的模式下載資料時,VSFTP的速度是Wu-FTP的兩倍,如果Linux主機使用2.4.*的核心,在千兆乙太網上的下載速度可達86MB/S。
在穩定方面,VSFTP就更加的出色,VSFTP在單機(非叢集)上支援4000個以上的併發使用者同時連線,根據Red Hat的Ftp伺服器的資料,VSFTP伺服器可以支援15000個併發使用者
特點:

1、它是一個安全、高速、穩定的FTP伺服器;
2、它可以做基於多個IP的虛擬FTP主機伺服器;
3、匿名服務設定十分方便;
4、匿名FTP的根目錄不需要任何特殊的目錄結構,或系統程式或其它的系統檔案;
5、不執行任何外部程式,從而減少了安全隱患;
6、支援虛擬使用者,並且每個虛擬使用者可以具有獨立的屬性配置;
7、可以設定從inetd中啟動,或者獨立的FTP伺服器兩種執行方式;
8、支援兩種認證方式(PAP或xinetd/ tcp_wrappers);
9、支援頻寬限制;

好了,以上就是官方的一些介紹,可以瞭解一下。我們平時的使用場景可能是公司需要,比如搭建一個vsftp服務,員工們上傳下載檔案,或者自己使用。主要就是用來做檔案上傳下載。

vsftp服務搭建

1.檢視自己的linux版本

有的屬於6系列,目前是最新版本是7系列。由於7系列在一些命令上有了變化,所以需要你確認自己是6/7系列。
比如:防火強命令firewall,systemctl命令等等

cat /etc/redhat-release

如圖:我的是7.3版本
這裡寫圖片描述

2.檢視是否安裝vsftp並使用yum安裝

看一下自己是否安裝了vsftp服務,如果安裝了,可以解除安裝或者繼續搭建

rpm -qa | grep vsftpd

使用yum安裝

yum -y install vsftpd

這裡寫圖片描述
這樣表示安裝成功。(圖例是找的一張,我安裝的是vsftpd-3.0.2-22.el7.x86_64版本)
驗證是否安裝成功

rpm -qa vsftpd
3.vsftp配置

安裝已經成功,接下來就需要進行配置了。
檢視vsftp相關的配置檔案

ll /etc/vsftpd/

這裡寫圖片描述
userconfig資料夾是我後來自己建立的。
下面說一下vsftpd.conf配置檔案的配置,我只說一下沒有註釋的和我新增的配置項:

anonymous_enable=NO #是否允許匿名使用者登入YES/NO
local_enable=YES #是否允許本地使用者登入YES/NO write_enable=YES #是否允許本地使用者對FTP伺服器檔案具有寫許可權YES/NO local_root=/home/wwwroot/ #為不同使用者設定不同的ftp根目錄 chroot_local_user=YES #鎖定使用者到各自目錄為其根目錄YES/NO allow_writeable_chroot=YES #各使用者是否可以上傳下載YES/NO user_config_dir=/etc/vsftpd/userconfig #使用者配置目錄,這就是我新建的那個資料夾 local_umask=022 #設定本地使用者的檔案掩碼為預設022,也可根據個人喜好將其設定為其他值 dirmessage_enable=YES # 是否啟用目錄歡迎資訊功能YES/NO xferlog_enable=YES #是否讓系統自動維護上傳和下載的日誌檔案預設情況該日誌檔案為/var/log/vsftpd.log,也可以通過下面的xferlog_file選項對其進行設定YES/NO connect_from_port_20=YES #是否設定FTP伺服器將啟用FTP資料埠的連線請求YES/NO xferlog_std_format=YES #是否以標準xferlog的格式書寫傳輸日誌檔案YES/NO ascii_upload_enable=YES #是否以ASCII方式上傳資料YES/NO ascii_download_enable=YES #是否以ASCII方式下載資料YES/NO listen=YES #是否允許監聽新的埠YES/NO #listen_ipv6=YES #此項很重要,記得註釋 pam_service_name=vsftpd # userlist_enable=YES #設定是否阻扯user_list檔案中的使用者登入FTP伺服器,預設為YES tcp_wrappers=YES #是否使用tcp_wrappers作為主機訪問控制方式 userlist_deny=NO #當userlist_enable為YES,userlist_deny為NO時,FTP伺服器僅允許user_list中的使用者訪問 listen_port=6666 #監聽一個新的埠6666 #修改ftp預設的21埠,數字隨意,只要在1024-65535之內就行(1024以下是系統保留的,從1024-65535是使用者使用的)

我們通常想要的是,某個使用者登入之後可以直接訪問到我們給他指定的目錄,也就是使用者自己的根目錄,所以我在上邊配置了不同使用者的根目錄。接下來需要配置使用者。
先建立一個使用者:

useradd testftp
passwd testftp

設定完密碼這個使用者就生成了,現在去配置vsftp中該使用者的根目錄

cd /etc/vsftpd/
mkdir userconfig
vim testftp

這個時候在裡面配置一下testftp使用者自己根目錄:

local_root=/home/wwwroot/testftp/

注意:你的/home/wwwroot/testftp/這個資料夾必須存在哦!
這個時候已經為testftp使用者設定好了自己連線後的根目錄,你還需要將:
/etc/vsftpd/user_list檔案中的其他使用者都刪除,只新增一個testftp

4.配置selinux

麻黃素那個就ok了,現在還需要配置一下selinux

vim /etc/sysconfig/selinux

將SELINUX=enforcing改為SELINUX=disabled
這裡寫圖片描述

5.配置防火牆

linux7系列中需要執行此步驟,配置防火牆

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload

如果你執行一條命令後是如下:FirewallD is not running
你的防火牆沒有開啟,請開啟或者你可以不開啟,就不需要這些配置了。(建議開啟)

6.啟動vsftp服務

還是因為7系列,所以啟動命令是:

 systemctl start vsftpd

如果你使用:

service start vsftpd

可能會出現以下報錯:
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

7.連線測試

ok,現在vsftp搭建和配置已經完成了,可以連線了。按照以上配置的話

ip:你的伺服器ip
埠:6666
使用者名稱:testftp
密碼:testftp

多說一句,如果你啟動的時候報錯:
Restarting vsftpd (via systemctl): Job for vsftpd.service failed because the control……
這個就是因為vsftpd.conf中的:listen_ipv6=YES沒有註釋造成,因為我們目前的網路環境還不支援ipv6,改為listen_ipv6=NO或者註釋,重啟即可。