VSFTPD虛擬用戶實戰配置

FTP是文件傳輸協議,正是因爲這種協議使得主機間能夠共享文件。 FTP 使用TCP生成一個虛擬鏈接用於控制信息,而後再生成一個單獨的 TCP 鏈接用於數據傳輸。
數據庫

      vsftpd是一款在LINUX發行版中最主流的FTP服務器程序;特色是小巧輕快,安全易用;能讓其自身特色得發發揮和掌握。若是使用系統用戶登陸FTP,是比較危險的,因此咱們主要採用vsftpd虛擬用戶登陸FTP服務器進行常見的操做,固然配置就相對複雜一點。(centos7安裝)vim

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

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

建立並生成vsftpd數據庫文件vim /etc/vsftpd/vuser_passwd.txt,內容以下:安全

第一行爲FTP虛擬用戶,登陸用戶名,第二行爲密碼,第三行爲用戶名,依次類推。服務器

[root@server vsftpd]# cat /etc/vsftpd/vuser_passwd.txt 
test1
123456
test2
456789

二、生成數據庫文件命令app

[root@server vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
[root@server vsftpd]# chmod 700 /etc/vsftpd/vuser_passwd.db

三、配置PAM驗證文件tcp

       將配置文件vim /etc/pam.d/vsftpd 改成以下兩行認證語句:(若是是32位,lib64需改爲lib,若是RedHat,加入的語句不同,需注意)ide

[root@server 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

四、建立vsftpd映射本地用戶測試

       全部的FTP虛擬用戶須要使用一個系統用戶,這個系統用戶不須要密碼,也不須要登陸。主要用來作虛擬用戶映射使用。ui

[root@server vsftpd]# useradd -s /sbin/nologin ftpuser

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

[root@server 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目錄上傳下載。

六、若是想使用本身獨立的目錄,能夠在/etc/vsftpd/vsftpd_user_conf目錄建立各自的配置文件,如給

test1建立獨立的配置文件:

[root@server 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     //表示用戶具備文件更名和刪除文件的權限
[root@server 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

[root@server vsftpd]# mkdir -p /home/ftpuser/{test1,test2}
[root@server vsftpd]# chown -R ftpuser:ftpuser /home/ftpuser
若是啓用vsftpd日誌需手動創建日誌文件
[root@server vsftpd]# touch /var/log/xferlog
[root@server vsftpd]# touch /var/log/vsftpd.log

重啓,使用客戶端登陸FTP,測試便可。

七、配置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服務器了~
相關文章
相關標籤/搜索