vsftp

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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章