利用Vsftpd 搭建虛擬用戶FTP服務器

 利用Vsftpd 搭建虛擬用戶FTP服務器

概述:所謂虛擬用戶,就是指客戶端登錄時所使用的FTP用戶名和密碼在系統裏並不真實存在;實際上每個虛擬用戶是通過一個真實的本地用戶來登錄FTP服務器的。這樣做可以有效的控制服務器的安全,因爲用戶並不真實存在,所以該用戶不能遠程登錄,也不能從物理上登錄該系統,從而達到了保護服務器的目的。

軟件來源:http://vsftpd.beasts.org
軟件版本:vsftpd-2.0.5.tar.gz
操作系統:RedHat Enterprise Linux AS3

1.vsftpd軟件的安裝
# tar –zxvf vsftpd-2.0.5.tar.gz //解壓軟件包
# cd vsftpd-2.0.5               //進入解壓後的目錄
# make && make install             //編譯並安裝
# cp vsftpd.conf /etc/             //拷貝主配置文件到/etc目錄下
# chkconfig vsftpd off             //關閉進程守護模式

2.添加一個本地用戶,並且禁止其SSH方式登錄
# useradd -s /sbin/nologin wjc

3.編輯vsftpd主配置文件
# vi /etc/vsftpd/vsftpd.conf
local_enable=YES     //打開本地用戶
local_umask=022   //本地用戶創建文件夾和上傳文件的權限,實際值=777-umask

connect_from_port_20=YES    //連接端口爲20

max_per_ip=4         //每個IP最多連接4個客戶端
max_clients=200      //FTP最多支持200個用戶

listen=YES        //打開監聽模式,否則需要用守護模式啓動服務

guest_enable=YES //開啓虛擬用戶訪問功能
guest_username=wjc   //虛擬用戶實際用wjc用戶來登錄
pam_service_name=ftp.vu     //密碼驗證方式
user_config_dir=/etc/vsftpd_user_conf //虛擬用戶的配置文件所在的目錄

注:,因爲主配置文件是被先讀的,然後再讀用戶的配置文件。所以
在主配置文件中給的權限越低,在後面用戶管理的時候對用戶的權限劃分的空間就越大

4.編輯驗證方式文件 
# vi /etc/pam.d/ftp.vu 
auth     required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

5.編輯虛擬用戶和密碼
# vi /tmp/login.txt
test1   //用戶名
test1   //密碼
test2   
test2

6.虛擬用戶的權限控制
# mkdir /etc/vsftpd_user_conf
在/etc/vsftpd_user_conf目錄下用虛擬用戶的登錄名來命名其配置文件
給用戶test1添加配置文件
# vi /etc/vsftpd_user_conf/test1
local_root=/var/ftpvu/testftp      //限制虛擬用戶登錄的主目錄
anon_world_readable_only=no     //准許虛擬用戶可以瀏覽
write_enable=yes              //開放寫的權限
anon_upload_enable=yes      //開放上傳權限
anon_mkdir_write_enable=yes //開放創建目錄的權限
anon_other_write_enable=yes //其他寫權限,如:重命名

同樣你可以創建test2文件,給test2用戶創建不同的權限,以達到控制虛擬用戶不同的訪問權限的目的

7.建立訪問者的口令庫文件,然後修改其權限
# db_load -T -t hash -f /tmp/login.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db

8.開啓FTP服務
# /usr/local/sbin/vsftpd &

9. 驗證服務是否開啓
//查看進程
# ps -x | grep vsftpd       
//查看端口 
# netstat –tln

10.關閉FTP服務
# ps –x | grep vsftpd
# kill -9 PID     //-9這個參數爲強制,可不加;PID爲進程號,可以用ps來查看
目前沒有更好的辦法來停止FTP服務,所以只能殺進程來關閉了

11.可能出現的問題
500 OOPS: could not bind listening IPv4 socket
有可能FTP服務器是運行的;
也有可能是因爲沒有關閉守護狀態 

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