創建基於虛擬用戶的vsftpd服務

一、創建虛擬用戶的用戶名和密碼數據庫文件
vsftpd服務的虛擬用戶數據庫是使用Berkeley DB格式的數據文件。創建該數據庫文件要用到db_load命令工具,從光盤安裝db4-utils-4.3.29-9.fc6.i386.rpm或yum進行安裝軟件包後可得到該工具。
密碼數據庫文件中奇數行爲用戶名,偶數行爲上一行中用戶所對應的密碼
# vi /etc/vsftpd/vusers.list
laya
123
test
456

二、生成vsftpd的認證文件
# cd /etc/vsftpd/
# db_load -T -t hash -f vusers.list vusers.db  //若是沒有db_load命令,請安裝db4*相關rpm包。
注意:
rhel5默認只安裝db4-4.3.29-9.fc6.i386.rpm和db4-devel-4.3.29-9.fc6.i386.rpm,
要使用db_load須要將db4-utils-4.3.29-9.fc6.i386.rpm包安裝上不然會出現錯誤:找不到db_load命令。

# file vusers.db
設置認證文件只對root用戶可讀可寫
# chmod 600 /etc/vsftpd/vusers.*   //下降文件權限以提升安全性
注意:每次步驟1中添加新內容,都要再次運行步驟2,不然新加用戶不生效
 
三、創建虛擬用戶所需的PAM認證文件
# vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so  db=/etc/vsftpd/vusers
account required  pam_userdb.so db=/etc/vsftpd/vusers
注意:以上2行中最後的2個文件名vusers和第2個步驟中的數據庫名字必須一致!

四、創建虛擬用戶所要訪問的目錄並設置相應權限
# mkdir -p /var/www
# useradd -d /var/www -s /sbin/nologin virtual(用戶名)  //創建映射帳號virtual
# chown virtual:virtual /var/www
# chmod 755 /var/www  //更改ftp根目錄權限
# ls -lh /boot > /var/www/vutest.file  //創建測試文件(可不建)

五、設置vsftpd.conf配置文件
anonymous_enable=NO
local_enable=YES  //使用虛擬用戶要啓用本地用戶
anon_umask=022  //設置虛擬用戶所上傳文件的默認權限掩碼,是anon_mask而不是local_mask
chroot_local_user=YES  //將全部本地用戶限制在家目錄中,NO則不限制
max_clients=300  //設置FTP服務器最大接入客戶端數爲300個
max_per_ip=10  //設置每一個IP地址最大鏈接數爲10個
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
guest_enable=YES //啓用用戶映射功能
guest_username=virtual  //將映射用戶指定爲virtual
pam_service_name=vsftpd.vu  //修改使用的PAM文件位置
userlist_enable=YES
tcp_wrappers=YES

六、設置主配置文件
修改vsftpd.conf主配置文件,添加用戶配置目錄支持
user_config_dir=/etc/vsftpd/vusers_dir  //添加此行配置項,指定用戶配置目錄位置
爲用戶laya、test創建獨立的配置目錄及文件
使用mkdir命令創建用戶配置目錄
# mkdir /etc/vsftpd/vusers_dir
爲虛擬用戶創建單獨的配置文件,用戶配置文件名稱與用戶名相同
vi /etc/vsftpd/vusers_dir/laya
vi /etc/vsftpd/vusers_dir/test

七、每一個FTP虛擬用戶均可以獨立設置其權限
anon_world_readable_only=NO  //容許匿名用戶瀏覽器整個服務器的文件系統
anon_upload_enable=YES  //可上傳
anon_mkdir_write_enable=YES  //可建立和刪除文件夾
anon_other_write_enable=YES  //可文件更名和刪除文件
anon_max_rate=50000:限定傳輸速率爲50KB/s
注意:
vsftpd對於文件傳輸速度限制並非絕對鎖定在一個數值上,而是在80%~120%之間變化,好比設置100KB/s則實際是速度在80KB/s~120KB/s之間變化。

local_root=/var/www/test  //指定test的宿主目錄
注意:請先到/var/www下面去建立test文件夾

八、從新啓動vsftpd服務
# service vsftpd restart

九、使用虛擬帳戶訪問FTP服務進行測試

因爲匿名FTP根目錄「/var/ftp/」的默認權限爲755,所以不要將該目錄的屬主改成ftp,不然匿名訪問時可能會報錯「500 OOPS:vsftd:refusing to run with writable anonymous root」,致使訪問失敗。

vsftp500錯誤簡單解決方法
cannot change directory:/home/***
ftp服務器鏈接失敗,錯誤提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
解決方法:
 # setsebool ftpd_disable_trans 1
  # service vsftpd restart

Linux默認字符編碼爲爲utf8,如出現亂碼可設置爲GBK
手動更改配置文件的命令:
vi /etc/sysconfig/i18n
將LANG="zh_CN.UTF-8"修改成:LANG="zh_CN.GBK"
註銷從新登陸圖形界面數據庫

相關文章
相關標籤/搜索