FTP協議占用兩個端口號:
21端口:命令控制,用於接收客戶端執行的FTP命令。
20端口:數據傳輸,用於上傳、下載文件數據。、
FTP數據傳輸的類型:
主動模式:FTP服務端主動向FTP客戶端發起連接請求。
被動模式:FTP服務端等待FTP客戶端的連接請求。
vsftpd程序提供的FTP服務可選認證方式,分別為匿名訪問、本地用戶和虛擬用戶:
匿名訪問:任何人無需驗證口令即可登入FTP服務端。
本地用戶:使用FTP服務器中的用戶、密碼信息。
虛擬用戶:創建獨立的FTP帳號資料。
Vsftpd的程序與配置文件:
主程序 |
/usr/sbin/vsftpd |
用戶禁止登陸列表 |
/etc/vsftpd/ftpusers |
主配置文件 |
/etc/vsftpd/vsftpd.conf |
安裝vsftpd服務程序
[root@liuxuanke-hbza ~]# yum install vsftpd -y
清空默認的防火牆默認規則:
[root@liuxuanke-hbza ~]# iptables -F
保存清空后的防火牆規則表:
[root@liuxuanke-hbza ~]# service iptables save
一、匿名訪問模式
1、FTP匿名訪問模式是比較不安全的服務模式,尤其在真實的工作環境中千萬不要存放敏感的數據,以免泄露。
vsftpd程序默認已經允許匿名訪問模式,我們要做的就是開啟匿名用戶的上傳和寫入權限,寫入參數
[root@liuxuanke-hbza ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 允許匿名訪問模式
anon_umask=022 匿名用戶上傳文件的umask值
anon_upload_enable=YES 允許匿名用戶上傳文件
anon_mkdir_write_enable=YES 允許匿名用戶創建目錄
anon_other_write_enable=YES 允許匿名用戶修改目錄名或刪除目錄
2、確認填寫正確后保存並退出vsftpd.conf文件,然后重啟vsftpd服務程序並設置為開機自啟動。
[root@liuxuanke-hbza ~]# systemctl restart vsftpd
[root@liuxuanke-hbza ~]# systemctl enable vsftpd
3、在客戶機中添加ftp服務,ftp命令用於使用FTP服務,格式為:“ftp [參數] [FTP主機]”。
[root@bogon ~]# yum install ftp -y
[root@bogon ~]# ftp 192.168.10.100
上面操作中已經將防火牆規則清空,在vsftpd.conf文件中也已經允許匿名用戶創建目錄與寫入權限,那怎么會被拒絕了呢?
於是返回服務端匿名訪問模式的FTP根目錄為/var/ftp:
[root@liuxuanke-hbza ~]# ls -ld /var/ftp/pub
drwxr-xr-x 2 root root 6 8月 3 2017 /var/ftp/pub
原來匿名用戶的FTP根目錄所有者/組都是root,所以匿名用戶沒有寫入權限
[root@liuxuanke-hbza ~]# chown ftp /var/ftp/pub
再回到客戶端試試
完成這個需要恢復快照
二、本地用戶模式
1、本地用戶模式確實要比匿名訪問模式更加的安全,所以本實驗中會關閉匿名訪問模式。
vsftpd服務程序默認已經允許本地用戶模式,我們要做的是添加設置本地用戶模式權限的參數:
[root@liuxuanke-hbza ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 禁止匿名訪問模式
local_enable=YES 允許本地用戶模式
write_enable=YES 設置可寫入權限
local_umask=022 本地用戶模式創建文件的umask值
userlist_deny=YES 參數值為YES即禁止名單中的用戶,參數值為NO則代表僅允許名單中的用戶
userlist_enable=YES 允許“禁止登陸名單”,名單文件為ftpusers與user_list
2、確認填寫正確后保存並退出vsftpd.conf文件,然后重啟vsftpd服務程序並設置為開機自啟動。
[root@liuxuanke-hbza ~]# systemctl restart vsftpd
[root@liuxuanke-hbza ~]# systemctl enable vsftpd
3、我們先來看下ftpusers或user_list文件中禁止登陸用戶名單:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
vsftpd服務為了讓FTP服務更加的安全,默認禁止以root身份登入,那么創建個普通用戶吧:
[root@liuxuanke-hbza ~]# useradd liuxuanke
為liuxuanke用戶設置密碼:
[root@liuxuanke-hbza ~]# passwd liuxuanke
在客戶機中嘗試登入FTP服務