VSFTP虛擬用戶的配置

VSFTP虛擬用戶的配置

環境:rhel6.5-x64

方法一:使用預設配置

首先安裝vsftpd軟件包 yum -y install vsftpd //有可用的yum源

然後cd  /usr/local/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS

然後查看README按步驟即可完成設

#######簡單的操作是將設置好的配置文件全部拷貝到相應的目錄重啓服務即可

方法二:自己手動配置

1、創建一個本地的用戶,用於虛擬用戶的授權

useradd -d /home/ftpsite -s /sbin/nologin virtual   //指定ftp站點和本地用戶名

目錄會自動創建,注意指定的ftp站點virtual必須有完全權限

可以在下面創建一個文件便於一會測試使用,文件virtual需有權限

 2、建立虛擬用戶的數據庫文件

首先先建立一個用戶名和密碼的文本文件,用戶名和密碼各佔一行,如:login.txt

tom

123

zhangsan

456

然後生成數據庫文件(前提是必須安裝了db4-utils-4.7.25-18.el6_4.x86_64,某些系統是db3

db_load -T -t hash -f login.txt /etc/vsftpd/login.db   //這裏-f後面的文件必須是前面的用戶名和密碼文件,後面生成數據庫文件下面設置PAM模塊的時候會使用

chmod 600 /etc/vsftpd/login.db   //在生成數據庫後就可以將前面的使用過的文本刪除了

3、設置pam模塊,認證虛擬用戶

cp vsftpd.pam /etc/pam.d/ftp   //直接拷貝軟件文檔所給模版時,需要將pam_userdb.so前面的路徑去掉或者改成正確的或者直接刪除pam_userdb.so前面的路徑

或者修改/etc/pam.d/vsftpd,在文件中添加如下兩行

auth required pam_userdb.so db=/etc/vsftpd/login

account required pam_userdb.so db=/etc/vsftpd/login 

###db就是指定虛擬用戶數據庫文件所在的路徑,不需要加後綴.db

###FTP服務默認識別名爲ftppam文件,如果名稱不是ftp,則需要修改配置文件添加

pam_service_name=vsftpd   //vsftpd就是pam文件的名稱

4、修改配置文件

直接拷貝模版中的配置文件cp vsftpd.conf /etc/vsftpd/

###如果上述pam文件不是ftp,需要拷貝之後修改模版

或者是在原有的配置文件中修改一下主要參數

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES   /禁錮家目錄,就是前面設置的/home/ftpsite

guest_enable=YES     //啓用來賓用戶,必須打開

guest_username=virtual  //設置用於虛擬授權的本地用戶名稱,本次爲vritual

listen=YES

listen_port=10021    //設置監聽的端口,默認爲21

pasv_min_port=30000   

pasv_max_port=30999   //設置用於傳輸數據的臨時端口的範圍

#pam_service_name=vsftpd  //設置pam認證的文件名稱,如果爲ftp則可以不寫這項

5、啓服務

Service vsftpd start

6、測試

ftp localhost 10021

然後輸入虛擬用戶測試下載

7拓展:可以爲每個用戶設置單獨的配置文件

在配置文件中添加下面這行,指定用戶配置文件所在目錄

user_config_dir=/etc/vsftpd_user_conf

 

然後創建這個目錄mkdir /etc/vsftpd_user_conf

 

設置tom可以列出目錄,在/etc/vsftpd_user_conf目錄下創建文件tom

tom文件中添加屬於tom的配置

anon_world_readable_only=NO

設置zhangsan有查看,和上傳的權限,在/etc/vsftpd_user_conf目錄下創建文件zhangsan

zhangsan配置文件中添加

anon_world_readable_only=NO

write_enable=YES

anon_upload_enable=YES

 

這樣的優勢就是可以分別設置用戶的權限,靈活,而且易於控制。

 

 

 

常見錯誤:

1、login fail

檢測pam文件的名稱看是否與配置文件中的一致,或者是看來賓用戶是否開啓

2500 OOPS: cannot change directory:/home/virtual

這是因爲開啓了selinux後,ftp的布爾值沒有開啓

解決方法:要不關閉selinux

要不就設置setsebool -P ftpd_disable_trans 1

          setsebool -P ftp_home_dir 1

###-P是永久生效的參數

然後查看getsebool -a | grep ftp

看上面修改的兩項是否爲on狀態

然後重啓服務

3、查看後報出一下錯誤

ls

227 Entering Passive Mode (192,168,4,150,120,110).

150 Here comes the directory listing.

226 Transfer done (but failed to open directory).

###列取目錄失敗,但是下載沒有任何問題

解決方法:

在配置文件中添加一行anon_world_readable_only=NO,但可能涉及到安全問題


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