ubuntu如何搭建vsftpd服務(wù)器
一、vsftpd是什么?
vsftpd 是very secure FTP daemon的縮寫(xiě),安全性是它的一個(gè)最大的特點(diǎn)。
vsftpd 是一個(gè) UNIX 類(lèi)操作系統(tǒng)上運(yùn)行的服務(wù)器的名字,它可以運(yùn)行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統(tǒng)上面,是一個(gè)完全免費(fèi)的、開(kāi)放源代碼的ftp服務(wù)器軟件。
二、搭建過(guò)程
1.查詢vsftpd是否存在和安裝成功
命令如下:
whereis vsftpd
vsftpd服務(wù)未安裝顯示如下:
2.安裝vsftpd
命令如下:
sudo apt-get install vsftpd
安裝過(guò)程:
再次查詢vsftpd服務(wù),如圖所示:
3.查詢vsftpd版本號(hào)
vsftpd -version
版本號(hào)顯示如下,說(shuō)明安裝成功。
4.其他命令
查詢vsftpd狀態(tài)
service vsftpd status
開(kāi)啟vsftpd
sudo service vsftpd start
重啟vsftpd
sudo service vsftpd restart
關(guān)閉vsftpd
sudo service vsftpd stop
該處使用的url網(wǎng)絡(luò)請(qǐng)求的數(shù)據(jù)。
5.使用匿名用戶登錄
1、修改vsftpd的配置文件
sudo vi /etc/vsftpd.conf
將配置文件中:anonymous_enable=YES
2、使用ftp工具連接到自己的服務(wù)器,輸入用戶名anonymous,密碼為空。
登錄成功后,應(yīng)該看到下面的提示信息:
3、ubuntu20.04匿名用戶的目錄是 /srv/ftp,不同版本的目錄不一樣。在該目錄下,創(chuàng)建空文件welcome。
sudo touch welcome
現(xiàn)在可以使用FTP客戶端看到這個(gè)文件了。
三、用戶設(shè)置
1.匿名用戶登錄
前面已經(jīng)配置完成,不再贅述。
2.本地用戶登錄
2.1本地用戶登錄配置
在一個(gè)網(wǎng)點(diǎn)內(nèi)部,F(xiàn)TP更多的情況下被配置為向授權(quán)用戶開(kāi)放。為此,用戶應(yīng)該在服務(wù)器上擁有自己的賬號(hào)。vsftpd把這樣的用戶成為本地用戶。
修改vsftpd的配置文件,重啟FTP服務(wù)器。
sudo vi /etc/vsftpd.conf
# Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES
出于安全性,有一些用戶不允許通過(guò)FTP登錄,vsftpd將這些用戶整理在 /etc/ftpusers中。
這是FTP黑名單,所有被列入其中的用戶都不能通過(guò)FTP登錄進(jìn)來(lái)。
2.2 限制用戶在本地目錄中
vsftpd提供了chroot(change root)系統(tǒng)調(diào)用,使其它目錄對(duì)使用者不可見(jiàn),也不可訪問(wèn)。
修改vsftpd的配置文件中以下配置。
# You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. chroot_local_user=YES
類(lèi)似的,也可以知道哪些用戶受限,通過(guò)配置文件chroot_list_file。
# You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that # the user does not have write access to the top level directory within the # chroot) chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd.chroot_list
3.使用虛擬用戶
3.1 創(chuàng)建虛擬用戶數(shù)據(jù)庫(kù)文件
安裝創(chuàng)建數(shù)據(jù)庫(kù)文件需要使用的db工具:
sudo apt-get install db-util
db工具通過(guò)讀取一個(gè)特定格式的文本文件來(lái)創(chuàng)建數(shù)據(jù)庫(kù)文件,這個(gè)文件為每個(gè)用戶預(yù)留2行,第一行為用戶名,第二行為密碼。
建立文件login_user,包含內(nèi)容:
fei 123456
運(yùn)行db_load 命令,通過(guò)~/login_user(由-f選項(xiàng)指定)創(chuàng)建數(shù)據(jù)庫(kù)文件/etc/vsftpd_login.db。
sudo db_load -T -t hash -f /home/xuzhanfei/login_user /etc/vsftpd_login.db
-T
:通過(guò)文本文件創(chuàng)建-t hash
:通過(guò)哈希表的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建數(shù)據(jù)庫(kù)
最后,更改權(quán)限,使其只對(duì)root用戶可見(jiàn):
sudo chmod 600 /etc/vsftpd_login.db
3.2 配置PAM驗(yàn)證
/etc/pam.d/vsftpd 是vsftpd 默認(rèn)使用的PAM驗(yàn)證文件,在該文件中加入以下兩行,其余內(nèi)容屏蔽:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
同時(shí),修改vsftpd的配置文件中以下配置。
# This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd
3.3 創(chuàng)建本地用戶映射
下面做一些配置,將登錄進(jìn)來(lái)的用戶映射到一個(gè)指定的非特權(quán)用戶,這里就使用ftp用戶。
修改vsftpd的配置文件中以下配置:
# 激活訪客身份 guest_enable=YES # 映射用戶 guest_username=ftp
3.4 設(shè)置用戶目錄和權(quán)限
將 fei 用戶目錄設(shè)置為 /home/ftp/fei,賦予讀寫(xiě)權(quán)限。
首先,為用戶創(chuàng)建主目錄,虛擬用戶登錄后自動(dòng)映射為本地ftp 用戶,因此,把目錄的屬主設(shè)置為 ftp 用戶:
sudo mkdir /srv/ftp/fei sudo chown ftp /srv/ftp/fei/ ##設(shè)置目錄的屬主
接下來(lái),配置用戶的目錄和權(quán)限,先創(chuàng)建路徑:
sudo mkdir /etc/vsftpd_user_conf
修改vsftpd的配置文件中以下配置:
# 存放用戶配置的目錄 user_config_dir=/etc/vsftpd_user_conf
添加 fei 的文本文件,增加以下內(nèi)容:
# 打開(kāi)vsftpd的全局寫(xiě)權(quán)限 write_enable=YES # 打開(kāi)文件上傳權(quán)限 anon_upload_enable=YES # 打開(kāi)建立目錄的權(quán)限 anon_mkdir_write_enable=YES local_root=/srv/ftp/fei/
重啟 vsftpd 服務(wù)。
注:未解決本地用戶和虛擬用戶登錄沖突的問(wèn)題
四、公網(wǎng)vsftpd服務(wù)器配置
1 服務(wù)器配置成被動(dòng)模式
PASV(被動(dòng))方式的連接過(guò)程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),服務(wù)器在命令鏈路上用PASV命令告訴客戶端:“我打開(kāi)了XXX端口,你過(guò)來(lái)連接我”。于是客戶端向服務(wù)器的XXX端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳送數(shù)據(jù)。
被動(dòng)模式也會(huì)存在防火墻的問(wèn)題,客戶端與服務(wù)端傳輸數(shù)據(jù)時(shí),在服務(wù)端也會(huì)有防火墻,但在服務(wù)端的防火墻有連接追蹤的功能,解決了防火墻的問(wèn)題。因此,一般使用被動(dòng)模式比較多。
修改vsftpd的配置文件中以下配置。
pasv_enable=YES (使能被動(dòng)連接) pasv_min_port=9981 (被動(dòng)連接服務(wù)器建立的端口XXX) pasv_max_port=9983 pasv_address=192.194.203.142 (路由器靜態(tài)IP地址)
2 路由器端口映射
(1)外網(wǎng)想要連接FTP服務(wù)器,需要知道數(shù)據(jù)傳輸?shù)亩丝?981-9983。
(2)數(shù)據(jù)端口是隨機(jī)的,那么服務(wù)器該如何將這些隨機(jī)數(shù)據(jù)端口映射到公網(wǎng)的路由器上呢???
(3)我們需要把命令端口21和隨機(jī)的數(shù)據(jù)端口映射到公網(wǎng)的端口(該端口需要開(kāi)通權(quán)限),例如:學(xué)校開(kāi)放公網(wǎng)端口為:9981-9983。
3 Linux服務(wù)器開(kāi)放上述用到的端口
驗(yàn)證端口開(kāi)放成功:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
FTP上傳文件經(jīng)常中斷或超時(shí)的三種解決方案
在進(jìn)行FTP上傳文件時(shí),經(jīng)常會(huì)出現(xiàn)中斷或超時(shí)的情況,本文就來(lái)介紹FTP上傳文件經(jīng)常中斷或超時(shí)的三種解決方案,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08windows10搭建FTP服務(wù)器的兩種實(shí)現(xiàn)方式
本文將詳細(xì)介紹如何在Windows?10系統(tǒng)上搭建一個(gè)FTP服務(wù)器,包括必要的配置步驟、安全設(shè)置以及一些實(shí)用的管理技巧,無(wú)論您是需要為小型辦公室設(shè)置一個(gè)內(nèi)部文件共享系統(tǒng),還是希望為遠(yuǎn)程團(tuán)隊(duì)提供一個(gè)便捷的文件上傳下載平臺(tái),本文都將為您提供詳盡的指導(dǎo)2024-10-10Windows?Server?2012下FTP服務(wù)器站點(diǎn)搭建程序
這篇文章主要為大家詳細(xì)介紹了Windows?Server?2012下FTP服務(wù)器站點(diǎn)搭建程序,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08FTP 550 Permission denied 只能建文件夾,沒(méi)法刪除及上傳文件的原因說(shuō)明
FTP 550 Permission denied 只能建文件夾,沒(méi)法刪除及上傳文件的解決方法,需要的朋友可以參考下。2011-03-03