CentOS 下vsftp 安裝--虛擬用戶

    

   FTP文件傳輸協議(File Transfer Protocol),即能夠讓用戶在互聯網中上傳、下載文件的文件協議,而FTP服務器就是支持FTP傳輸協議的主機,要想完成文件傳輸則需要FTP服務端和FTP客戶端的配合才行。

   

FTP協議佔用兩個端口號:

   21端口:命令控制,用於接收客戶端執行的FTP命令。

   20端口:數據傳輸,用於上傳、下載文件數據。


FTP數據傳輸的類型:

    主動模式:FTP服務端主動向FTP客戶端發起連接請求。

    被動模式:FTP服務端等待FTP客戶端的連接請求。


    下面介紹用虛擬用戶登錄ftp,因爲虛擬用戶模式的帳號口令都不是真實系統中存在的,所以相對於本地用戶要比較安全多了。


步驟:

1.查看系統版本

# uname -a
Linux node2 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

2.安裝vsftpd

#yum install vsftpd -y

3.備份配置文件

# cd /etc/vsftpd
# mv vsftpd.conf vsftpd.conf.bak
# egrep -v "^$|^#" vsftpd.conf.bak > vsftpd.conf

4.創建一個系統賬戶 (方便後面虛擬用戶映射使用)

# useradd -d /data/ -s /sbin/nologin virturl
#  chmod 755 /data

5.創建虛擬用戶並生成數據文件(這種方法比較麻煩,每次創建都需要重新生成數據庫文件,不過可以使用mysql來代替 這種方法。)

# cd /etc/vsftpd
# vim vip.list (文件一行用戶一行密碼)
blog
123567
cache
123456

使用db_load命令用HASH算法生成FTP用戶數據庫文件vip.db
# db_load -T -t hash -f vip.list vip.db

剛創建的vip.list這個文件就可以刪除了,不然被人發現就破解了,數據庫文件比較重要,更改權限。
# chmod 600 vip.db

6.使用系統上面的pam認證文件

# vim /etc/pam.d/vip (指定我們剛剛上面生成的數據庫文件,去掉後綴名就可以了)
auth required pam_userdb.so db=/etc/vsftpd/vip
account required pam_userdb.so db=/etc/vsftpd/vip

7.創建用戶權限的文件

# cd /etc/vsftpd
# mkdir vip_dir (在裏面用ftp賬戶命名創建文件,文件裏面配置權限,默認是沒有上傳,下載,刪除等權限的。)
# vim blog
anon_upload_enable=YES          #(上傳權限)
anon_mkdir_write_enable=YES       #(創建文件目錄)
anon_other_write_enable=YES       #(其他權限)

# vim cache
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

8.配置vsftpd配置文件

# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                   # (禁用匿名用戶)
local_enable=YES                     # (允許本地用戶登錄)
guest_enable=YES                     # (需要虛擬用戶登錄)
guest_username=virtual                  #  (映射的系統用戶)
pam_service_name=vip                   #  (pam認證文件)
allow_writeable_chroot=YES                  #  (允許禁錮的FTP根目錄可寫而不拒絕用戶登入請求)
user_config_dir=/etc/vsftpd/vip_dir                  #  (指定用戶權限的目錄)
 
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES

9.啓動vsftpd

# systemctl start vsftpd

10.防火牆允許 20,21端口通過

# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT

11.就可以用客戶端去登錄了。window軟件的我用了filezilla這個軟件,需要打開主動模式去連接,不會報錯。

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