Linux安裝及配置vsftpd

BoyceNussba 8年前發布 | 31K 次閱讀 FTP服務器

來自: http://my.oschina.net/kolbe/blog/625468


vsftpd(Very Secure FTP Daemon)是一款流行的Linux系統FTP服務器程序。下面講解一下vsftpd的安裝、配置及使用。

一、vsftpd的安裝

1、使用 yum install vsftpd 安裝ftp服務器程序

[root@aliyun ~]# yum install vsftpd

2、使用 yum install ftp 安裝ftp客戶端程序

[root@aliyun ~]# yum install ftp

3、啟動 vsftpd

[root@aliyun ~]# service vsftpd start

4、使用 ftp 客戶端連接登陸 vsftpd 服務器

[root@aliyun ~]# ftp
ftp > open localhost
Name (localhost:root): anonymous
Password:
230 Login successful
ftp > ls
drwxr-xr-x 2 0 0 4096 Nov 20 19:22 pub

注:

1)安裝 vsftpd 時默認允許匿名登陸,所以在使用客戶端連接到 vsftpd 服務器時,可以使用登陸名為 ftp 或 anonymous,口令為空的方式登陸。

2)匿名用戶不能離開匿名用戶的家目錄 /var/ftp/pub,且只能下載,不能上傳

3)如果使用service vsftpd start無法啟動 vsftpd 服務的話,可以使用 /etc/rc.d/init.d/vsftpd start 來啟動

 

二、vsftpd的配置

1、默認配置詳解

# 允許匿名用戶登陸,登陸時登陸名為 ftp 或 anonymous,口令為空
anonymous_enable=YES
# 允許本地用戶登陸,登陸名為本地用戶名,口令為本地用戶的口令
local_enable=YES
# 允許本地用戶寫擁有FTP服務器文件的寫權限
write_enable=YES
# 本地用戶的文件默認掩碼022,文件的默認最大權限為666,也就是上傳文件的默認權限為644
local_umask=022
# 激活目錄的歡迎信息功能
dirmessage_enable=YES
# 啟用上傳和下載日志功能,該日志文件默認的存放位置為 /var/log/xferlog
xferlog_enable=YES
# 指定FTP使用20端口進行數據傳輸(默認FTP工作模式為被動模式,也就是PASV FTP,服務器將使用20端口與客戶端進行數據傳輸)
connect_from_port_20=YES
# 啟用xferlog的標準格式輸出
xferlog_std_format=YES
# 設置vsftpd服務器不以standalone模式運行
listen=NO
# 支持ipv6
listen_ipv6=YES
# 設置PAM使用的名稱,默認值為 /etc/pam.d/vsftpd
pam_service_name=vsftpd
# 啟動user_list文件(該選項需與userlist_deny選項配合使用,userlist_deny默認為YES,也就是說默認請況下user_list表中的用戶將被阻止登陸ftp服務器)
userlist_enable=YES
# 設置vsftpd與tcp wrapper組合來進行訪問控制,YES的情況下,vsftpd將檢查/etc/hosts.allow以及/etc/hosts.deny中的設置,來進行主機的訪問控制
tcp_wrappers=YES

注:

1)在默認的配置中,我們可以看到,/etc/vsftpd/user_list文件中的用戶是無法訪問vsftpd服務器的,另外需要特別注意的是 /etc/vsftpd/ftpusers文件中的用戶也是無法訪問vsftpd服務器的,至于為何要分兩個文件,因為user_list指定的是本地用戶,而ftpusers指定的是虛擬用戶。

 

三、vsftpd的本地測試用戶

1、添加本地ftp測試用戶 ftptest,并將該測試用戶的家目錄設置為 /home/ftptest

[root@aliyun ~]# useradd -d /home/ftptest ftptest

2、為ftptest用戶設置密碼

[root@aliyun ~]# passwd ftptest

3、限制ftptest使用telnet登陸

[root@aliyun ~]# usermod -s /sbin/nologin ftptest

 

四、限制本地測試用戶只能訪問家目錄

在 /etc/vsftpd/vsftpd.conf 配置文件中添加如下信息:

# 限制指定用戶只能訪問家目錄
chroot_list_enable=YES
# 設置受限制的用戶配置文件
chroot_list_file=/etc/vsftpd/chroot_list

新建 chroot_list 文件,并將受限制的用戶添加進去

[root@aliyun vsfptd]# touch chroot_list
[root@aliyun vsftpd]# echo ftptest >> chroot_list

設置成功后,重啟 vsftpd

[root@aliyun vsftpd]# service vsftpd restart

注:

1)當我們限制用戶不能跳出其家目錄之后,使用該用戶登陸FTP時會報錯:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

原因是因為,如果該用戶被限制在其家目錄下,則該用戶對家目錄不能再擁有寫權限,修復這個錯誤,可以使用

[root@aliyun ~]# chmod 500 /home/ftptest

來去掉ftptest對家目錄的寫權限,這時可能有人會問,去掉了寫權限,那ftptest用戶該怎么使用ftp來上傳文件呢?其實可以通過在ftptest家目錄下新建文件夾,再將文件上傳到家目錄的子目錄下即可

當然還有一種解決方式是在vsftpd.conf中添加一行:

allow_writeable_chroot=YES

 

 

 

 

 

 

 

 

 

 

 

 本文由用戶 BoyceNussba 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!