Linux安裝及配置vsftpd
來自: 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