您好,登錄后才能下訂單哦!
FTP 文件共享服務 基于tcp協議 端口:tcp 21(三次握手建立連接);tcp 20(數據傳輸)
工作模式 應用層
根據客戶端的角度劃分的:
[主動模式]
客戶端開啟一個1024以上的動態端口如:(2000)
--》連接服務器21號端口進行三次握手建立連接,三次握手的過程中會有延遲,延遲過程中:
客戶端再次開啟一個比上一個端口大1的端口(2001),監聽
--》客戶端給服務器發送命令Port2001,告知服務器,客戶端的數據傳輸端口的2001
--》服務器端開啟20端口與客戶端的2001號端口建立連接進行數據通信
[被動模式]
客戶端開啟一個動態端口(2000)
--》連接服務器21號端口進行三次握手建立連接,三次握手的過程中會有延遲,延遲過程中:
客戶端再次開啟一個比上一個端口大1的端口(2001),監聽
--》客服端給服務器端發送pasv命令,告知服務器,客戶端現在處于被動模式,等待服務器端主動連接客戶端
--》服務器端給客戶端發送Port3000命令,告知給客戶端,服務器端的數據傳輸端口的3000
--》客戶端拿著2001號端口與服務器端的3000號端口建立連接進行數據通信
實驗準備
兩臺服務器linux系統 centos 7.1
關閉防火墻
systemctl stop firewalld 臨時關閉
systemctl disable firewalld 永久關閉
關閉selinux
setenforce 0 臨時關閉
sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config 永久關閉
yum -y install ftp 客戶端安裝FTP服務
yum -y install vsftpd 服務端安裝vsftp服務
啟動服務
systemctl enable vsftpd 開啟自動啟動服務
systemctl restart vsftpd 重啟服務
systemctl stop vsftpd 停止服務
主配置文件 /etc/vsftpd/vsftpd.conf
#12 開啟匿名訪問
#16 允許本地的實體賬戶登陸
#19 允許實體賬戶有寫權限
#23 創建文件的權限644(實體用戶)
#29 允許匿名用戶上傳(只能上傳文件不能上傳目錄)
#33 匿名創建目錄的權限
#37 記錄訪問開啟
#40 開啟日志記錄功能
#43 開啟20號端口數據傳輸
#48、49 改變上傳文件的屬主
#53 日志所在的路徑及文件名
#57 日志記錄時是否采用標準格式
#60 會話連接超時時間600s
#63 數據傳輸超時時間120s
#82 上傳數據傳輸模式
#90 不允許匿名用戶的郵箱地址作為其密碼
#92 記錄文件的郵箱地址
#100 實體賬戶只讓其在默認登錄的位置活動
#101 開啟其列表功能
#103 列表的存放位置及路徑
#114 拒絕監聽(ipv4)
#123 ipv6監聽,能幫助監聽ipv4
#125 用戶認證 映射認證列表
#126 只要在用戶列表中的用戶都不能登錄ftp
實驗一
在配置文件中的特殊設置(實體用戶切換目錄限制)
【不允許實體用戶切換路徑,只能在默認訪問位置活動】
vim /etc/vsftpd/vsftpd.conf
100行 解注釋(即將#號去掉) 開啟實體用戶切換目錄功能
chroot_local_user = yes
手動添加
allow_writeable_chroot = yes 允許用戶進行登陸
101行 解注釋
chroot_list_enable = YES 開啟用戶列表功能,在該列表中的用戶可以切換路徑
103行 解注釋
chroot_list_file = /etc/vsftpd/chroot_list
指定用戶列表所在路徑及文件名,手動創建
vim /etc/vsftpd/chroot_list
加入到列表中的用戶可以切換路徑,列表外的用戶不可以
重啟服務驗證
實驗二
vim etc/vsftpd/vsftpd.conf
在配置文件中特殊權限設置 (允許匿名用戶使用權限)
【實現匿名用戶上傳、創建目錄、刪除等權限】
29行 解注釋
anon_upload_enable = YES 開啟匿名用戶上傳功能,只能上傳文件
33行 解注釋
anon_mkdir_write_enable = YES 創建目錄權限
34行 解注釋
anon_other_write_enable = YES 手動添加,開啟匿名用戶的其他寫權限
重啟服務驗證
客戶端驗證
用戶名:ftp
密碼:任意
修改匿名用戶默認登陸位置的安全權限(屬主、屬組)
chown -R ftp.ftp /var/ftp/pub
重啟服務驗證
客戶端:可以上傳、創建目錄、刪除等
實驗三
用戶限制配置文件 /etc/vsftpd
【限制實體系統用戶的登陸】
用戶列表文件:ftpusers、user_list
ftpusers:
只要在給列表中的用戶都拒絕訪問
user_list:
在主配置文件中設置
userlist_enable = yes/no
若該項值為YES -》 開啟用戶列表功能,在user_list中用戶拒絕登錄
若該項值為NO -》 user_list列表失效
userlist_enable = yes
若userlist_deny = YES 表示列表內用戶不允許登陸,列表外用戶只能命令行登陸
若userlist_deny = NO 只有在列表中用戶可以登錄
實驗四
虛擬用戶:w
思想:客戶端需要通過賬號和密碼登錄,但是該賬戶不是系統中的實體賬號,而是一個虛擬賬號
在服務器端創建一個實體賬戶,將該賬戶映射到多個虛擬賬號上
1.新創建虛擬賬號文本文件 /etc/vsftpd
vim vftpuser (奇數行寫用戶名,偶數行寫密碼)
snow
123
lisa
321
不能有多余的空行
保存退出
2.將文本文件制作數據庫文件
命令:db_load -T -t hash -f /vftpuser /etc/vsftpd/vftpuser.db
-T :將文本文件中內容導入到數據庫文件中
-t :指定加密算法為hash
-f :指定文本文件,生成的庫文件所在路徑及文件名
3.配置驗證文件 /etc/pam.d/vsftpd
將原驗證文件備份
cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd 拷貝模板驗證文件
vim /etc/pam.d/vsftpd
auth required pam_userdb.so db = /etc/vsftpd/vftpuser
account required pam_userdb.so db = /etc/vsftpd/vftpuser
執行數據庫文件的位置及文件名,注意不需要加.db
4.創建實體賬戶,將其映射到多個虛擬賬戶
#useradd -d /var/ftp/vftp test 創建新賬戶test 并指定家目錄路徑
#chmod 777 /var/ftp/vftp
修改主配置文件 vim /etc/vsftpd/vsftpd.conf
在最下面一行添加
guest_enable = yes 開啟虛擬用戶
guest_username = test 映射的實體賬號
5.重啟服務驗證
[注]開啟虛擬用戶功能后,所有實體賬戶都不能登錄
若要實體賬戶登錄,需將實體用戶加入到~/vftpuser中
systemctl status vsftpd -l 顯示詳細狀態
實驗五:
限制虛擬用戶的權限
vim /etc/vsftpd/vsftpd.conf
【將所有的匿名功能關閉】
在最下一行添加
user_config_dir = /etc/vsftpd/vftp
【設置所有虛擬用戶的權限限制文件的路徑】
#cd /etc/vsftpd/vftp
vim snow
anon_world_readable_only = yes 開啟讀權限
write_enable = yes 開啟寫權限
anon_upload_enable = yes 上傳
anon_mkdir_write_enable = yes 創建目錄
anon_other_write_enable = yes 其它寫權限
保存退出,重啟服務驗證
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。