1. 程式人生 > >VSFTPD虛擬用戶實戰配置

VSFTPD虛擬用戶實戰配置

vsftp 虛擬用戶

FTP是文件傳輸協議,正是由於這種協議使得主機間可以共享文件。 FTP 使用TCP生成一個虛擬連接用於控制信息,然後再生成一個單獨的 TCP 連接用於數據傳輸。

vsftpd是一款在LINUX發行版中最主流的FTP服務器程序;特點是小巧輕快,安全易用;能讓其自身特點得發發揮和掌握。如果使用系統用戶登錄FTP,是比較危險的,所以我們主要采用vsftpd虛擬用戶登錄FTP服務器進行常見的操作,當然配置就相對復雜一點。(centos7安裝)

1、首先安裝FTP以及虛擬用戶需要用到的軟件及認證模塊

yum  install   vsftpd   -y
yum  install  pam*  libdb4-utils  libdb4  --skip-broken  –y

創建並生成vsftpd數據庫文件vim /etc/vsftpd/vuser_passwd.txt,內容如下:

第一行為FTP虛擬用戶,登錄用戶名,第二行為密碼,第三行為用戶名,依次類推。

[[email protected] vsftpd]# cat /etc/vsftpd/vuser_passwd.txt 
test1
123456
test2
456789

2、生成數據庫文件命令

[[email protected] vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
[[email protected]
/* */ vsftpd]# chmod 700 /etc/vsftpd/vuser_passwd.db

3、配置PAM驗證文件

將配置文件vim /etc/pam.d/vsftpd 改為如下兩行認證語句:(如果是32位,lib64需改成lib,如果RedHat,加入的語句不一樣,需註意)

[[email protected] vsftpd]# vim /etc/pam.d/vsftpd 
#%PAM-1.0
auth       required           /lib64/security/pam_userdb.so       db=/etc/vsftpd/vuser_passwd 
account      required       /lib64/security/pam_userdb.so       db=/etc/vsftpd/vuser_passwd

4、創建vsftpd映射本地用戶

所有的FTP虛擬用戶需要使用一個系統用戶,這個系統用戶不需要密碼,也不需要登錄。主要用來做虛擬用戶映射使用。

[[email protected] vsftpd]# useradd -s /sbin/nologin ftpuser

5、修改完整版vsftpd.conf配置文件

[[email protected] vsftpd]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO        //禁止匿名用戶訪問
local_enable=YES              // 允許本地用戶登錄FTP        
write_enable=YES             //允許用戶在FTP目錄有寫入的權限
local_umask=022             //設置本地用戶的文件生成掩碼為022,默認是077
dirmessage_enable=YES             //激活目錄信息,當遠程用戶更改目錄時將出現提示信息
xferlog_enable=YES             //啟用上傳和下載日誌功能
connect_from_port_20=YES             //啟用FTP數據端口的連接請求
xferlog_file=/var/log/xferlog         
xferlog_std_format=YES             //是否使用標準的ftpd xferlog日誌文件格式
ascii_upload_enable=YES             //設定支持ASCII模式的上傳功能
ascii_download_enable=YES             //設定支持ASCII模式的下載功能
listen=YES             //使用vsftpd處於獨立啟動監聽端口模式
guest_enable=YES             //設定啟用虛擬用戶功能
guest_username=ftpuser             //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftpuser用戶了
pam_service_name=vsftpd             //設置PAM認證服務配置文件名,文件存放在/etc/pam.d/目錄
userlist_enable=YES       //用戶列表中的用戶是否允許登錄FTP服務器,默認是不允許
tcp_wrappers=YES       //使用tcp_wrappers作為主機訪問控制方式
user_config_dir=/etc/vsftpd/vsftpd_user_conf             //設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)
virtual_use_local_privs=YES       //虛擬用戶和本地用戶有相同的權限
vsftpd_log_file=/var/log/vsftpd.log

保存重啟,service vsftpd restart 即可使用虛擬用戶登錄,這時候所有的虛擬用戶共同使用/home/ftpuser目錄上傳下載。

6、如果想使用自己獨立的目錄,可以在/etc/vsftpd/vsftpd_user_conf目錄創建各自的配置文件,如給

test1創建獨立的配置文件:

[[email protected] vsftpd]# vim /etc/vsftpd/vsftpd_user_conf/test1   //內容如下,建立自己的FTP目錄。
local_root=/home/ftpuser/test1     //鎖定虛擬wugk用戶登錄FTP後的目錄
write_enable=YES                   //表示用戶具有創建和刪除的權限
anon_world_readable_only=YES    //表示用戶可以瀏覽FTP目錄及下載文件
anon_upload_enable=YES          //表示用戶可以上傳文件
anon_mkdir_write_enable=YES     //表示用戶有創建和刪除目錄的權限
anon_other_write_enable=YES     //表示用戶具有文件改名和刪除文件的權限
[[email protected] vsftpd]# vim /etc/vsftpd/vsftpd_user_conf/test2   //內容如下,建立自己的FTP目錄。
local_root=/home/ftpuser/test2
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

要創建/home/ftpuser/test1和/home/ftpuser/test2

[[email protected] vsftpd]# mkdir -p /home/ftpuser/{test1,test2}
[[email protected] vsftpd]# chown -R ftpuser:ftpuser /home/ftpuser
如果啟用vsftpd日誌需手動建立日誌文件
[[email protected] vsftpd]# touch /var/log/xferlog
[[email protected] vsftpd]# touch /var/log/vsftpd.log

重啟,使用客戶端登錄FTP,測試即可。

7、配置PASV模式(可選)

vsftpd默認沒有開啟PASV模式,現在FTP只能通過PORT模式連接,要開啟PASV默認需要通過下面的配置。


打開/etc/vsftpd/vsftpd.conf,在末尾添加

#開啟PASV模式

pasv_enable=YES

#最小端口號

pasv_min_port=61000

#最大端口號

pasv_max_port=61200
pasv_promiscuous=YES

#在防火墻配置內開啟40000到40080端口

-A INPUT -m state --state NEW -m tcp -p -dport 40000:40080 -j ACCEPT

#重啟iptabls和vsftpd

service iptables restart

service vsftpd restart

現在可以使用PASV模式連接你的FTP服務器了~

本文出自 “MQ_douer” 博客,請務必保留此出處http://douer.blog.51cto.com/6107588/1929469

VSFTPD虛擬用戶實戰配置