vsftp虛擬用戶配置


找了很久,終於找到像樣一點的文章,很詳細,參數方面懂英文基本能看懂,一個教程是否有用,關鍵在於細節。錯了一點點就不能配下去了。

------------------------------------------------------------------------------------------------


1. 查看是否安裝vsftp
rpm –qa|grep vsftpd
如果出現     vsftpd-2.0.5-16.el5_5.1  說明已經安裝 vsftp

安裝vsftp
yum -y install vsftpd


2. 測試是否安裝成功(ip 改成自己啊,不要用俺的此次登錄為匿名登錄 user: anonymous 密碼為空 如果成功登錄會有下面內容  這說明vsftpd安裝成功)如果沒有ftp命令,請運行yum install -y ftp

[root@localhost ~]#service vsftpd start

為 vsftpd 啟動 vsftpd:[確定]
[root@localhost ~]#ftp 127.0.0.1
Connected to127.0.0.1.
220 (vsFTPd 2.0.5)
530 Please loginwith USER and PASS.
530 Please loginwith USER and PASS.
KERBEROS_V4 rejectedas an authentication type
Name(127.0.0.1:root): anonymous
331 Please specifythe password.
Password:
230 Loginsuccessful.
Remote system typeis UNIX.
Using binary mode totransfer files.
ftp> bye
221 Goodbye.
[root@localhost ~]#
 

3. 修改配置文件/etc/vsftpd/vsftpd.conf

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf

取消下面內容前面的注釋或添加

anonymous_enable=YES/NO  是否允許匿名用戶訪問

chroot_list_enable=YES   限定用戶不可以離開主目錄

chroot_list_file=/etc/vsftpd/chroot_list 

loca_enable=YES/NO 本地用戶是否可以訪問 注:如果為NO 則所有虛擬用戶都將不能訪問原因:虛擬用戶訪問在主機上其實是以本地用戶訪問的

pam_service_name=vsftpd  pam認證文件名在/etc/pam.d/vsftpd

guest_enable=YES    啟用虛擬用戶功能

guest_username=ftp  指定虛擬用戶的宿主用戶 –centos 里面已經有內置的ftp用戶了(注:此用戶在chroot_list_file=/etc/vsftpd/chroot_list文件里所指定的用戶)

user_config_dir=/etc/vsftpd/vuser_conf 設置虛擬用戶個人vsftp的服務配置文件

(此文件后面不能出現空格)

 

4. 查看是否安裝 db4 db4-utils

[root@localhost ~]#rpm -qa|grep db4  運行后出現下面內容 說明已經安裝可以使用db_load命令(主要是 db4-utils)
db4-devel-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-devel-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-tcl-4.3.29-10.el5_5.2
db4-utils-4.3.29-10.el5_5.2
[root@localhost ~]#

如果沒安裝則要安裝db4-utils
4.1安裝db4-utils
[root@localhost ~]#yum -y install db4-utils


5. 創建 chroot_list_file=/etc/vsftpd/chroot_list文件

[root@localhost ~]#vi /etc/vsftpd/chroot_list (編輯文件把 /etc/vsftpd/vsftpd.conf 中guest_username的值寫到文件中本例中為 ftp)

 或者直接按下面進行操作

[root@localhost ~]#touch /etc/vsftpd/chroot_list

[root@localhost ~]# echoftp >> /etc/vsftpd/chroot_list  (此處ftp 也要是/etc/vsftpd/vsftpd.conf中的guest_username的值)


6. 創建虛擬用戶目錄(密碼文本)

[root@localhost ~]#vi /etc/vsftpd/vftpuser.txtx (奇數行為用戶名 ,偶數行為密碼)

本文中添加如下(用cat 命令查看)

[root@localhost ~]#cat /etc/vsftpd/vftpuser.txtx
hope
hope
aa
zzzzz
[root@localhost ~]#


7.生成虛擬用戶的db文件

[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txtx /etc/vsftpd/vftpuser.db

 
8. 生成虛擬用戶的認證文件

[root@localhostvsftpd]# vi /etc/pam.d/vsftpd
#%PAM-1.0

session    optional    pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=denyfile=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include     system-auth
session    include     system-auth
session    required    pam_loginuid.so

 

注釋掉/etc/pam.d/vsftpd中所有的內容 反正已經不要本地用戶的認證了

特別注意 以下區別
32位系統增加以下兩句:
auth      required     pam_userdb.so db=/etc/vsftpd/vftpuser
account   required     pam_userdb.so db=/etc/vsftpd/vftpuser
64位系統增加以下兩句:
auth   required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required    /lib64/security/pam_userdb.sodb=/etc/vsftpd/vftpuser

這里我發現加了db后綴以后就不識別數據庫了,51cto大大的一篇教程里面就是加了db,結果完全讀不了數據庫,當然也就不能認證啦。

注:db=/etc/vsftpd/vftpuser 中的vftpuser 是你生成的虛擬用戶的db文件

 

9. 創建每個虛擬用戶自己的配置文件,配置文件的路徑是/etc/vsftpd/vsftpd.conf中的

user_config_dir=/etc/vsftpd/vuser_conf路徑

在 /etc/vsftpd/vuser_conf/下面創建以用戶名為名稱的文件(名稱是/etc/vsftpd/vftpuser.txtx 下面的奇數行)

 

[root@localhostvsftpd]# cat /etc/vsftpd/vftpuser.txtx
hope
hope
aa
zzzzz

[root@localhostvsftpd]# mkdir vuser_conf

[root@localhostvsftpd]# vi /etc/vsftpd/vuser_conf/hope

 

內容如下

local_root=/var/www(虛擬用戶的根目錄根據實際修改)
write_enable=YES (可寫)
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022

 

10. 給文夾權限(否則不能上傳 權限可自定 本人給的是 777)

[root@localhostvsftpd]# chmod 777 /var/www/


11. 重啟vsftpd

[root@localhostvsftpd]# service vsftpd restart

到此安裝配置完成 如果出現連接被 同位體重置 或其它錯誤 請查看SELinux的當前模式

 

 

12. 登錄測試

[root@localhost vsftpd]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as anauthentication type

Name (127.0.0.1:root): hope

331 Please specify the password.

Password:

500 OOPS: cannot changedirectory:/var/www

Login failed.

ftp>

 

查看方法

[root@localhost vsftpd]# getenforce

Enforcing   如果出現(Enforcing )

關閉方法:[root@localhost vsftpd]#setenforce 0(0|1  開|關)

 

再次測試 登錄成功

[root@localhost vsftpd]# chmod 777/var/www/

[root@localhost vsftpd]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as anauthentication type

Name (192.168.1.107:root): hope

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

 

查看系統是多少位的命令

[root@bogon ~]# getconf LONG_BIT

64 (64|32)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM