Vsftp虛擬用戶配置
取自 MonitorWiKi
跳轉到: 導航, 搜索
VSFTPD虛擬用戶配置
目前機器上安裝的vsftpd一般是rpm而不是源碼編譯,建議使用命令:yum install vsftpd 。配置虛擬用戶有2種方法,一種是用mysql,另一種是用Berkeley DB的db_load工具實現,現在用db_load實現虛擬用戶的。具備這2個主要的程序後就可以開始配置了
1. 生成虛擬用戶口令庫文件:
爲了建立此口令庫文件,先要生成一個文本文件logins.txt該文件的格式如下,單數行爲用戶名,偶數行爲口令:
Kwol
Kwol
Admin
admin
2. 生成口令庫文件,並修改其權限:
yum install db4-utils*
setsebool -P ftpd_disable_trans 1
#db_load -T -t hash -f ./logins.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
3.新建一個虛擬用戶的PAM文件。加上如下兩行內容:
#vi /etc/pam.d/ftp
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/account
注意:如果是32位的系統把lib64改爲lib,即
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account
4.建立虛擬用戶,設置該用戶所要訪問的目錄,並設置虛擬用戶訪問的權限:
#useradd kwolftp
5.編輯/etc/vsftpd/vsftpd.conf文件,使文件內容中有關的選項如下所示:
user_config_dir=/etc/vsftpd/
local_enable=YES
write_enable=NO
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log 指定日誌文件路徑
xferlog_std_format=YES
pasv_enable=YES
ftpd_banner=Welcome to blah FTP service kwolftp.
chroot_local_user=NO
listen=YES
tcp_wrappers=YES
guest_enable=YES 激活虛擬用戶
guest_username=kwolftp 虛擬用戶在linux裏的用戶名
pam_service_name=ftp 判斷虛擬用戶的數據文件
use_localtime=YES 時間設置成與系統時間一致上面代碼中
另外,user_config_dir=/etc/vsftpd 這個選項表示當虛擬用戶登錄成功後(也許是在登陸時)就會讀取這個目錄下的與虛擬用戶名一直的配置文件,注意user_config_dir的值是目錄的名稱,而且此目錄下要有和虛擬用戶名稱一樣的配置文件,在第6小結中,以虛擬用戶kwolftp的配置文件做例子;guest_enable=YES表示啓用虛擬用戶;guest_username=kwolftp則是將虛擬用戶映射爲本地用戶;pam_service_name=ftp指定PAM的配置文件爲ftp。
6. 配置虛擬用戶的權限
新建/etc/vsftpd/kwolftp文件,加入以下內容:
local_root=/data/ftpdir 設置虛擬用戶登錄後的主目錄,對改目錄要給予相應的用戶權限,如chown kwolftp /data/ftpdir
anon_world_readable_only=no 匿名是否允許下載可閱讀的文件
write_enable=yes 允許上傳
anon_upload_enable=yes 匿名用戶允許上傳
anon_other_write_enable=yes 匿名用戶其它的寫權利
此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的權限
7. 開放防火牆
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 920 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9981:10281 -j ACCEPT
8.重新啓動VSFTP:
service vsftpd restart
然後就可以使用虛擬用戶登錄。
補充
配置文件的其他參數可以到一下的網站查看
http://www.chuhu.com/thread-83-1-1.html
http://vsftpd.beasts.org/
當出現500 OOPS: cannot change directory:/home/xxxx的情況,可以常試一下命令
setsebool ftpd_disable_trans 1
cd /etc/vsftp/
vim winenice
local_root=/data/update/
anon_world_readable_only=yes
write_enable=yes
anon_upload_enable=yes
virtual_use_local_privs=yes
#anon_mkdir_write_enable=YES
#anon_world_readable_only=YES
service vsftpd restart
最新版本啓動方式爲 /usr/sbin/vsftpd