VSFTP FTP服務(wù)器安裝與配置(轉(zhuǎn)載)

1.?Vsftpd文件共享

1.1簡(jiǎn)介

Vsftpd是“very secure FTP daemon”的縮寫,是一款非常安全的FTP軟件。支持IPv6以及SSL加密。Vsftpd的安全性主要體現(xiàn)三個(gè)方面:進(jìn)程分離,處理不同任務(wù)的進(jìn)程彼此是獨(dú)立運(yùn)行的;進(jìn)程運(yùn)行均以最小權(quán)限運(yùn)行;多數(shù)進(jìn)程都使用chroot進(jìn)行了禁錮,防止客戶訪問(wèn)非法共享目錄。端口號(hào)為21端口

1.2特點(diǎn)

?1.它是一個(gè)安全、高速、穩(wěn)定的FTP服務(wù)器;可以做基于多個(gè)IP的虛擬FTP主機(jī)服務(wù)器

2.vsftpd是以一般身份啟動(dòng)服務(wù),并且用chroot進(jìn)行改換根目錄;匿名服務(wù)設(shè)置方便,根目錄不需要特殊的目錄結(jié)構(gòu)、系統(tǒng)程序或系統(tǒng)文件

????????????? 3.任何需要具有個(gè)較高權(quán)限的vsftpd指令均以一支特殊的上層程序(parent process)所控制,并且該上層程序享有的較高執(zhí)行權(quán)限功能已經(jīng)被限制的相當(dāng)?shù)汀?/b>

????????????? 3.所有的客戶端,想要使用這只上層程序所提供的較高執(zhí)行權(quán)限之vsftpd指令的需求,均被視為不可信任的要求來(lái)處理,必須要經(jīng)過(guò)相當(dāng)程度的身份確認(rèn)后方可利用該上層程序的功能。例如chown、login的要求等等

?????? ?????? 4.上層程序中依然使用chroot的功能來(lái)限制使用者的權(quán)限

 ?????????? 5.不執(zhí)行任何外部程序,從而減少了安全隱患;

  ?????? 6.支持虛擬用戶,并且每個(gè)虛擬用戶可以具有獨(dú)立的屬性配置;

  ?????? 7.可以設(shè)置從inetd中啟動(dòng),或者獨(dú)立的FTP服務(wù)器兩種運(yùn)行方式;

 ??? ?????? 8.支持兩種認(rèn)證方式:PAP或tcp_wrappers;

 ???  ??? 9.支持帶寬限制

?1.3?性能

安全性方面vsftpd服務(wù)只需一般用戶身份啟動(dòng),相對(duì) Linux 系統(tǒng)的使用權(quán)限較低。且任何來(lái)自想使用vsftpd較高執(zhí)行權(quán)限的指令請(qǐng)求, 均被視為不可信任的請(qǐng)求,需經(jīng)過(guò)一定身份認(rèn)證后方可使用。同時(shí),vsftpd 整合了大部分ftp會(huì)使用到的額外指令,因此減少了對(duì)系統(tǒng)功能的依賴。且應(yīng)用 chroot限定了使用者根目錄,限制使用者的執(zhí)行權(quán)限。

速度方面:?使用ASCII代碼的模式下載數(shù)據(jù)時(shí),VSFTP的速度是Wu-FTP的兩倍。如果Linux主機(jī)使用2.4的內(nèi)核,在千兆以太網(wǎng)上的下載速度可達(dá)86MB/S。

穩(wěn)定方面VSFTP在單機(jī)(非集群)上支持4000個(gè)以上的并發(fā)用戶同時(shí)連接,根據(jù)Red Hat的Ftp服務(wù)器(ftp.redhat.com)的數(shù)據(jù),VSFTP服務(wù)器可以支持15000個(gè)并發(fā)用戶。

1.4?缺點(diǎn)

?vsftp?沒(méi)有處理文件編碼轉(zhuǎn)換,從windows客戶端訪問(wèn)時(shí)有亂碼現(xiàn)象??梢赞D(zhuǎn)換服務(wù)器目錄文件編碼或者使用FTP客戶端工具來(lái)訪問(wèn)服務(wù)器解決亂碼現(xiàn)象。

2.?FTP工作方式

????2.1主動(dòng)FTP工作模式

????????主動(dòng)FTP模式的工作步驟如下:

a.?客戶端隨機(jī)開啟大于1024的X端口與服務(wù)器21端口建立連接通道,通道建立后,客戶端隨時(shí)可以通過(guò)該通道發(fā)送上傳或者下載命令。

b.?當(dāng)客戶端需要與服務(wù)器進(jìn)行數(shù)據(jù)傳輸時(shí),客戶端回再開啟一個(gè)大于1024的隨機(jī)端口Y,并將Y端口號(hào)通過(guò)之前的命令通道傳送給服務(wù)器的21端口

c.?服務(wù)器獲取到客戶端的第二個(gè)端口后會(huì)主動(dòng)連接客戶端的該端口,通過(guò)三次握手后,完成服務(wù)器與客戶端數(shù)據(jù)通道的建立,所有的數(shù)據(jù)均通過(guò)該數(shù)據(jù)通道進(jìn)行傳輸。

2.2被動(dòng)FTP工作模式

?被動(dòng)FTP模式的工作過(guò)程如下:

a.?客戶端你隨意開啟大于1024的X端口與服務(wù)器的21端口建立連接通道

b.?當(dāng)客戶端需要與服務(wù)器進(jìn)行數(shù)據(jù)傳輸時(shí),客戶端從命令通道發(fā)送數(shù)據(jù)請(qǐng)求要求上傳或下載數(shù)據(jù)

c.?服務(wù)器收到數(shù)據(jù)請(qǐng)求后會(huì)隨機(jī)開啟一個(gè)端口Y,并通過(guò)命令通道將該端口信息傳送給客戶端

d.?客戶端在收到服務(wù)器發(fā)送過(guò)來(lái)的數(shù)據(jù)端口Y的信息后,將在客戶端本地開啟一個(gè)隨機(jī)端口Z,此時(shí)客戶端再主動(dòng)通過(guò)本機(jī)的Z端口與服務(wù)器的??? Y端口進(jìn)行連接,通過(guò)三次握手連接完成后,即可進(jìn)行數(shù)據(jù)傳輸。

3.?配置文件解析

賬戶類型設(shè)置參數(shù)

功能

全局設(shè)置lsten=YES是否監(jiān)聽端口

lsten_port=21監(jiān)聽端口號(hào)

write_enable=YES是否允許寫操作

download_enable=YES是否允許用戶下載

dirmessage_enable

進(jìn)入目錄是否顯示消息

xferlog_enable=YES

是否開啟xferlog日志功能

xerlog_std_format=YES

xferlog日志文件格式

connect_from_port_20=YES使用主動(dòng)模式連接,端口20

pasv_enable=YES是否啟用被動(dòng)模式連接,默認(rèn)為被動(dòng)模式

pasv_max_port=24600被動(dòng)模式連接的最大端口號(hào)

pasv_min_port=24500

被動(dòng)模式連接的最小端口號(hào)

userlist_enable=YES

是否啟用userlist用戶列表

userlist_deny=YES

是否禁用userlist文件中額賬戶訪問(wèn)FTP

max_clents=2000

最大允許同事2000客戶端連接,0代表無(wú)限制

max_per_ip=0

每個(gè)客戶端的最大連接限制,0代表無(wú)限制

tcp_wrappers=YES

是否啟用tcp_wrappers

guest_enable=YES

所有的非匿名登錄都映射為guest_username指定的賬戶

guest_username=ftp

anonymous_enable=YES

是否開啟匿名訪問(wèn)功能,默認(rèn)開啟

設(shè)定來(lái)賓用戶

user_config_dir=/etc/vsftpd/conf

指定用戶設(shè)置獨(dú)立配置文件與選項(xiàng)的目錄

dual_log_enable=NO否啟用雙日志功能,生成兩個(gè)日志文件

anonymous_enable=YES是否開啟匿名訪問(wèn)功能,默認(rèn)開啟

匿名賬戶anon_max_rate=0

匿名數(shù)據(jù)傳輸率(B/s)

anon_root=/var/ftp匿名訪問(wèn)FTP根目錄

anon_upload_enbale=YES

是否允許匿名賬戶上傳,默認(rèn)禁止

anon_mkdir_write_enable=YES

是否允許匿名賬戶創(chuàng)建目錄,默認(rèn)禁止

anon_other_write_enable=YES

是否允許匿名賬戶進(jìn)行其他的所有寫操作

anon_umask=077

匿名上傳權(quán)限掩碼

本地賬

local_enable=YES是否啟用本機(jī)賬戶FTP功能

local_max_rate=0

本地賬戶數(shù)據(jù)傳輸率(B/s)

local_umask=077

本地賬戶權(quán)限掩碼

chroot_local_user=YES是否禁錮本地賬戶根目錄,默認(rèn)為NO

local_root=/ftp/common

本地賬戶訪問(wèn)FTP根路徑

1.?Vsftpd案例

4.1本地賬戶FTP

?案例背景:一公司搭建本地FTP服務(wù)器為公司員工使用,初定3位員工:Tom、Jack、Mary

(1)?安裝vsftpd

[root@vsftpd /]# yum -y install vsftpd

[root@vsftpd /]# service vsftpd start

[root@vsftpd /]# chkconfig vsftpd on

(2)?修改配置文件(注意一下配置文件每行最后不能有一個(gè)空格多不然會(huì)報(bào)錯(cuò)

[root@vsftpdetc]# vim vsftpd/vsftpd.conf

anonymous_enable=NO? #是否允許匿名訪問(wèn)????

local_enable=YES???? #是否啟用本機(jī)賬戶FTP功能

write_enable=YES???? #是否允許寫操作 ????????????????

local_umask=022???? #本地賬戶權(quán)限umask?????????

dirmessage_enable=YES#用戶進(jìn)入目錄是否顯示信息

xferlog_enable=YES??? #是否開啟xferlog日志功能

xferlog_std_format=YES #xferlog日志格式???????????

listen=YES???????????????????????? #是否開啟監(jiān)聽??????????????????

pam_service_name=vsftpd #?指定pam的配置文件為vsftpd

userlist_enable=YES???? #啟用userlist用戶文件列表

tcp_wrappers=YES????? #是否啟用tcp_wrappers???

(3)?創(chuàng)建系統(tǒng)賬戶與測(cè)試文件????

[root@vsftpd /]# useradd -s/sbin/nologin Tom

[root@vsftpd /]# useradd -s/sbin/nologin Jack

????????? ? ?????[root@vsftpd /]# useradd -s/sbin/nologin Mary

?????????? ? ????[root@vsftpd /]# touch/home/{Tom,Jack,Mary}/test.txt

????????????(4)? 關(guān)閉防火墻SELINUX和設(shè)置自啟動(dòng)

????[root@vsftpd /]# setenforce 0

? ? [root@vsftpd /]# service iptables stop

? ? [root@vsftpd /]# service vsftpd start

? ? [root@vsftpd /]# chkconfig vsftpd on

????????????(5)? 訪問(wèn)ftp客戶端

在訪問(wèn)客戶端之前需要修改下用戶的密碼(這是必須滴,養(yǎng)成習(xí)慣)

[root@vsftpd /]# passwd Tom

[root@vsftpd /]# passwd Jack

[root@vsftpd /]# passwd Mary

在瀏覽器中輸入?ftp://ip就成功了。。。

4.2虛擬賬戶FTP

?案例背景:滿足大量的賬戶訪問(wèn)需求

(1)?創(chuàng)建虛擬用戶數(shù)據(jù)庫(kù)

創(chuàng)建明文密碼文件:明文文件奇數(shù)行為用戶名,偶數(shù)行為密碼。

使用db_load工具將其轉(zhuǎn)換為數(shù)據(jù)庫(kù)文件

db_load是通過(guò)安裝db4-utils獲得

???[root@vsftpd ~]# yum -yinstall db4-utils???

?[root@vsftpd ~]# vim /etc/vsftpd/vlogin

???????????????????? tomcat

???????????????????? 123456

???????????????????? jerry

???????????????????? 654321

???????????????????? [root@vsftpd~]# db_load –T –t hash –f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db

???????????????????? [root@vsftpd~]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

(2)?創(chuàng)建PAM文件,這是虛擬賬戶驗(yàn)證

Linux一般通過(guò)PAM文件設(shè)置賬戶驗(yàn)證機(jī)制,通過(guò)創(chuàng)建新的PAM文件,使用新的數(shù)據(jù)文件進(jìn)行登錄驗(yàn)證

PAM文件中的db選項(xiàng)于指定并驗(yàn)證賬戶和密碼的數(shù)據(jù)庫(kù)文件,數(shù)據(jù)庫(kù)文件無(wú)需.db的名稱后綴

authrequired /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

account required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vlogin

(3)?設(shè)置虛擬賬戶共享目錄

[root@vsftpd~]# useradd -s /sbin/nologin -d /home/ftp virtual

[root@vsftpd ~]# cp /etc/redhat-release/home/ftp

(4)?修改主配置文件(注意一下配置文件每行最后不能有一個(gè)空格多不然會(huì)報(bào)錯(cuò)

[root@vsftpd /]# vim/etc/vsftpd/vsftpd.conf

anonymous_enable=NO????????????? #是否開啟開啟匿名訪問(wèn)功能

local_enable=YES????????????????????????????????? ?#是否開啟本機(jī)賬戶FTP功能

write_enable=YES???????????????????????????????? #是否允許寫操作???????? ???

anon_upload_enable=YES??????????? #是否允許默認(rèn)上傳功能????

anon_mkdir_write_enable=NO??????? #是否允許匿名賬戶創(chuàng)建目錄功能

anon_other_write_enable=NO??????? #是否允許匿名賬戶其他寫入功能

chroot_local_user=YES??????????????? #是否禁錮本地賬戶根目錄????

guest_enable=YES??????????????????????????????? ?#啟用則所有非匿名登錄都映射為guest_username指定的賬戶

guest_username=virtual ??????????????????? ??#指定來(lái)賓用戶

listen=YES????????????????????????????????????????????? ?? #是否監(jiān)聽端口

listen_port=21???????????????????????????????????????????? #監(jiān)聽端口為21端口

pasv_enable=YES???????????????????????????????????????? #是否啟用被動(dòng)連接模式

pasv_min_port=30000??????????????????????????????? #被動(dòng)連接最小端口號(hào)

pasv_max_port=30999?????????????????????????????? #被動(dòng)連接最大端口號(hào)

pam_service_name=vsftpd.pam??????????????? #指定PAN驗(yàn)證機(jī)制的配置文件

user_config_dir=/etc/vsftpd_user_conf??? #用戶配置文件和選項(xiàng)所在目錄

user_sub_token=$USER???????????????? #為每個(gè)虛擬用戶創(chuàng)建家目錄?

(5)?為每個(gè)用戶設(shè)置獨(dú)立的共享路徑

[root@vsftpd/]# mkdir /etc/vsftpd_user_conf

[root@vsftpd/]# mkdir -p /home/ftp/tomcat

[root@vsftpd /]# service vsftpd restart

(6)?客戶端訪問(wèn)

在瀏覽器中輸入?ftp://ip就成功了。。。

2.?常見問(wèn)題分析

1.??提示錯(cuò)誤代碼: 530 Login incorrect

以上錯(cuò)誤說(shuō)明登錄驗(yàn)證賬戶失敗??赡苁鞘褂?4位系統(tǒng),而pam文件中庫(kù)文件使用的是/lib/ 而不是/lib64/ 還有可能是用戶名和密碼輸入錯(cuò)誤

也可能是vsftpd主配置文件中設(shè)置的pam_servcie_name設(shè)置的pam文件名稱和/etc/pam.d中創(chuàng)建的pam文件名稱不一致導(dǎo)致無(wú)法驗(yàn)證成功。

2.??提示錯(cuò)誤代碼: 500 OOPS: cannot changedirectory: /home/ftp/$USER

該提示代表目錄不存在或無(wú)權(quán)限導(dǎo)致無(wú)法切換至目錄,也可能是由于SELinux導(dǎo)致無(wú)法共享賬戶家目錄,默認(rèn)SELinux不允許共享家目錄

3.??登錄后無(wú)法上傳數(shù)據(jù)

匿名賬戶和虛擬賬戶檢查以anon_開頭的權(quán)限設(shè)置,本地賬戶檢查以local_開頭的權(quán)限設(shè)置,并且要確保全局write_enable設(shè)置為YES

另外,文件系統(tǒng)目錄的權(quán)限也需要修改,確??蛻舳速~戶有權(quán)限訪問(wèn)該目錄。

4.??啟動(dòng)服務(wù)時(shí)報(bào)錯(cuò): 500 OPPS: bad bool valueconfig file

Vsftpd配置文件設(shè)置錯(cuò)誤,檢查配置文件。配置文件要求每個(gè)設(shè)置項(xiàng)占用獨(dú)立的一行,并且不可以有多余的空格

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 概述 工作中,需要搭建ftp服務(wù)器來(lái)實(shí)現(xiàn)資源的共享。本文將通過(guò)腳本實(shí)現(xiàn)自動(dòng)化安裝ftp服務(wù)器,并進(jìn)行相關(guān)配置,...
    ghbsunny閱讀 3,275評(píng)論 0 2
  • 圖片更清晰,文字在最下面 FTP是TCP/IP的一種應(yīng)用,使用TCP而不是UDP,所以是可靠的,面向連接的。 FT...
    停下浮躁的心閱讀 1,812評(píng)論 0 4
  • ftp 文件傳輸協(xié)議 跨平臺(tái) 上傳下載文件 vsftpd 工具:非常安全的文件傳輸協(xié)議;默認(rèn)的命令端口21號(hào),數(shù)據(jù)...
    柒夏錦閱讀 4,226評(píng)論 1 9
  • #################匿名權(quán)限控制############### anonymous_enable=Y...
    牧民閱讀 4,710評(píng)論 2 4
  • 2017.06.19 親愛的未來(lái)的伴侶,今天起開始用這種方式來(lái)給你寫信。我知道我會(huì)等到這樣的你,我知道你會(huì)...
    唯有源頭活水來(lái)閱讀 278評(píng)論 0 0

友情鏈接更多精彩內(nèi)容