vsftpd(Very Secure FTP Daemon)是一款流行的Linux系統FTP服務器程序。下面講解一下vsftpd的安裝、配置及使用。
shell
1、vsftpd的安裝服務器
一、使用 yum install vsftpd 安裝ftp服務器程序app
[root@aliyun ~]# yum install vsftpd
二、使用 yum install ftp 安裝ftp客戶端程序tcp
[root@aliyun ~]# yum install ftp
三、啓動 vsftpdide
[root@aliyun ~]# service vsftpd start
四、使用 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
注:
spa
1)安裝 vsftpd 時默認容許匿名登錄,因此在使用客戶端鏈接到 vsftpd 服務器時,能夠使用登錄名爲 ftp 或 anonymous,口令爲空的方式登錄。rest
2)匿名用戶不能離開匿名用戶的家目錄 /var/ftp/pub,且只能下載,不能上傳日誌
3)若是使用service vsftpd start沒法啓動 vsftpd 服務的話,能夠使用 /etc/rc.d/init.d/vsftpd start 來啓動code
2、vsftpd的配置
一、默認配置詳解
# 容許匿名用戶登錄,登錄時登錄名爲 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指定的是虛擬用戶。
3、vsftpd的本地測試用戶
一、添加本地ftp測試用戶 ftptest,並將該測試用戶的家目錄設置爲 /home/ftptest
[root@aliyun ~]# useradd -d /home/ftptest ftptest
二、爲ftptest用戶設置密碼
[root@aliyun ~]# passwd ftptest
三、限制ftptest使用telnet登錄
[root@aliyun ~]# usermod -s /sbin/nologin ftptest
4、限制本地測試用戶只能訪問家目錄
在 /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