使用vsftp搭建ftp服務(wù)器

服務(wù)器資源

服務(wù)器:阿里云CentOS 7.3

安裝部署

檢測是否已安裝

rpm -qa | grep vsftpd? ?//如果出現(xiàn)相應(yīng)版本信息表示已安裝如:vsftpd-3.0.2-25.el7.x86_64

否則執(zhí)行以下命令進行安裝:

yum install -y vsftpd

等待安裝結(jié)束執(zhí)行檢測命令查看到相應(yīng)版本信息表示安裝成功。

配置啟動

配置文件綜述:

vsftp的默認安裝目錄是:/etc/vsftpd/? 進入改目錄即可看到如下幾個文件:

/etc/vsftpd/vsftpd.conf? ? ?// vsftpd 的核心配置文件

/etc/vsftpd/ftpusers? ? //用于指定哪些用戶不能訪問FTP 服務(wù)器。?默認禁用登錄名單

/etc/vsftpd/user_list://自定義ftp登錄用戶名單,具體作用稍后講解

此外為了控制用戶登錄目錄權(quán)限,我們自己在次目錄下再新建一個以下文件:

/etc/vsftpd/chroot_list? //登錄用戶能否跳出其用戶家目錄的控制名單,具體作用稍后講解


創(chuàng)建ftp登錄用戶:

通常我們你推薦開放匿名用戶登錄而使用本地用戶(vsftp部署服務(wù)器的系統(tǒng)用戶),因此這里創(chuàng)建一個本地用戶,以備配置vsftp的相關(guān)用戶名單所用:

創(chuàng)建用戶:【useradd -d 用戶家目錄? 用戶名】

備注:執(zhí)行以下命令創(chuàng)建用戶seally,同時指定并創(chuàng)建家目錄為?/usr/local/ftpworkspace/seally

useradd? -d? /usr/local/ftpworkspace/seally seally

設(shè)定用戶密碼:【passwd?用戶名】

passwd seally? ?//跟著提示輸入密碼

備注:一般用于ftp的登錄賬號,最好禁用其登錄ssh,因此我們可以執(zhí)行以下命令,禁用制定的賬號登錄服務(wù)器:【chsh? 賬號? -s? /sbin/nologin】

chsh seally -s /sbin/nologin


開始配置:

\odot 編輯user_list,將賬號 seally 加入到該文件(如果原來有用戶列表,可先刪除所有默認用戶再加入,每個用戶獨占一行)

\odot 編輯ftpusers,清理掉原有所有默認用戶列表,該文件中的用戶是ftp黑名單用戶,加入其中的賬號默認不能夠登錄。特殊情況下要禁用某些賬號時才需要配置進去。

\odot 編輯vsftpd.conf,清理掉所有原有配置,將最核心的配置進去,如下貼出一個核心配置,拷貝過去適當修改即可:

#vsftp最核心的配置示例:/etc/vsftpd/vsftpd.conf

#允許本地用戶寫入文件 設(shè)置為YES

write_enable=YES

#開啟目錄限制名單可寫 一律設(shè)置為YES 否則啟動目錄限制功能的的用戶不能夠登錄

allow_writeable_chroot=YES

#啟用記錄上傳下載日志

xferlog_enable=YES

#設(shè)置日志目錄

xferlog_file=/var/log/xferlog

#啟用日志格式化

xferlog_std_format=YES

#開啟默認情況下的主動模式數(shù)據(jù)傳輸使用20端口

connect_from_port_20=YES

#設(shè)置空閑連接的超時時間

idle_session_timeout=6000

#設(shè)置數(shù)據(jù)傳輸?shù)某瑫r時間

data_connection_timeout=1200

#是否啟用獨立監(jiān)聽

listen=YES

#自定義服務(wù)監(jiān)聽端口

listen_port=21

pam_service_name=vsftpd

#啟用主機訪問控制機制,設(shè)置為YES

tcp_wrappers=YES?


#為了安全性,關(guān)閉匿名訪問 配置為NO

anonymous_enable=NO

#關(guān)閉匿名用戶上傳文件 設(shè)置為NO? 即使開啟也需?write_enable=YES

anon_upload_enable=NO

#關(guān)閉匿名用戶創(chuàng)建文件目錄 設(shè)置為NO

anon_mkdir_write_enable=NO

#開啟本地賬號登錄 配置為YES

local_enable=YES

#設(shè)置本地賬戶登錄后的主目錄,不設(shè)置或設(shè)置不存在路徑則登錄后會到各自家目錄

local_root=/usr/local/ftpworkspace/

#設(shè)備本地用戶上傳文件的默認文件掩碼(022代表最終文件權(quán)限為755)

local_umask=022


#使用限制所有用戶只能在自己的主目錄

chroot_local_user=YES

#是否啟用目錄切換限制排除名單功能

chroot_list_enable=YES

#指定目錄切換限制排除名單文件路徑,即自己創(chuàng)建的chroot_list文件

chroot_list_file=/etc/vsftpd/chroot_list


#登錄名單限制類型 NO=user_list名單中的用戶可登錄? YES=名單中的用戶不可登錄

userlist_deny=NO

#是否啟用user_list登錄限制名單功能

userlist_enable=YES

#登錄名單文件路徑(每個用戶獨占一行)

userlist_file=/etc/vsftpd/user_list

備注:vsftpd.conf文件中兩個比較繞的配置說明如下:

1、關(guān)于登錄名單? 由3個配置項【userlist_deny、userlist_enable、userlist_file】共同決定,如果userlist_deny配置為NO表示允許userlist_file中的用戶登錄,如果userlist_deny設(shè)置為YES表示拒絕userlist_file中的用戶登錄,userlist_enable表示是否啟用userlist_file的自定義用戶用戶列表,開啟后即在userlist_deny=NO時控制userlist_file中的賬號能夠登錄,當userlist_deny=YES時userlist_file中的用戶不能夠登錄,因此通常我們會userlist_deny配置為NO,將分配的賬號添加到userlist_file中,以達到只有分配的用戶可登錄。

2、關(guān)于限制目錄切換名單 由4個配置項【allow_writeable_chroot、chroot_local_user、chroot_list_enable、chroot_list_enable、chroot_list_file】共同決定,allow_writeable_chroot一律設(shè)置為YES,否則在chroot_local_user開啟后用戶不能夠登錄(暫時不明原因,通過測試發(fā)現(xiàn)該現(xiàn)象),chroot_local_user表示是否限制所有用戶只能在主目錄切換,YES=表示所有用戶都只能在主目錄切換,NO=表示所有用戶都可在任意目錄切換,為了方便安全管理,通常設(shè)置為YES,chroot_list_enable表示是否添加為chroot_local_user的限制添加排除項用戶,如果設(shè)置為YES則表示chroot_list_file中的用戶不受chroot_local_user的限制,且剛好意義與其相反,即如果chroot_local_user=YES限制所有用戶,那么chroot_list_file中的用戶則不受限制可任意切換目錄,如果chroot_local_user=NO不限制所有用戶,那么chroot_list_file中的用戶則沒有這么自由,只能在主目錄切換。

綜上所述:

登錄控制通常情況下的組合設(shè)置為如下:

userlist_deny=NO、userlist_enable=YES、userlist_file中加入允許登錄的賬號。

目錄切換控制的組合設(shè)置為如下:

chroot_local_user=YES、chroot_list_enable=YES、chroot_list_file中加入允許跳出其主目錄的賬號。


啟動服務(wù),瀏覽器訪問測試:

執(zhí)行以下命令啟動服務(wù):

/bin/systemctl? restart? vsftpd.service

使用java客戶端登錄或是瀏覽器輸入地址?ftp://www.seally.cn/?其中www.seally.cn為部署vsftp服務(wù)器的域名或是ip,根據(jù)彈出的提示輸入seally用戶及其密碼即可登錄。

功能擴展

通常我們在創(chuàng)建新用戶同時指定好其家目錄之后,將該新用戶添加到ftp的登錄用戶列表文件中后,重啟ftp服務(wù)新的用戶便能夠進行登錄了,同時該用戶的ftp工作目錄也便限制在其家目錄里面,只能上傳文件至其指定的目錄,ftp的主配置文件中只能指定一個主目錄,因此我們只能把許多用戶的家目錄建立在此主目錄之下,這樣有個弊端,不同的用戶可以看到別人的目錄,因此我們進一步擴展為不同的用戶單獨指定其家目錄,來屏蔽它看到別人的目錄:

這里假如又新家了一個ftp用戶seally2

目前兩個用戶的家目錄情況是:

seally? -->??/usr/local/ftpworkspace/seally

seally2? -->??/usr/local/ftpworkspace/seally2

我們主配置文件vsftpd.conf中設(shè)置的本地用戶主目錄為:local_root=/usr/local/ftpworkspace/

因此賬號seally、seally2登錄后會進入/usr/local/ftpworkspace/ 即能夠互相看到彼此的家目錄,雖然不能上傳文件到彼此家目錄里面去,但是也不太合適,因此增加各自的家目錄配置來規(guī)避這個問題:

創(chuàng)建多用戶配置文件目錄:

mkdir??/etc/vsftpd/userconfig

進入該配置目錄,建立與用戶名相同的文件如此處需要為seally建立單獨的登錄目錄:

vi seally? 并輸入:local_root=/usr/local/ftpworkspace/seally? 然后保存。

vi seally2? 并輸入:local_root=/usr/local/ftpworkspace/seally2? 然后保存。

編輯主配置文件vsftpd.conf 加入以下配置項:

user_config_dir=/etc/vsftpd/userconfig/

重啟服務(wù)登錄驗證即可!

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

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

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