Table of Contents
1.FTP協議
FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一
FTP協議包括兩個組成部分,其一爲FTP服務器,其二爲FTP客戶端
其中FTP服務器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP服務器上的資源
在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web服務器上
由於FTP傳輸效率非常高,在網絡上傳輸大的文件時,一般也採用該協議
默認情況下FTP協議使用TCP端口中的 20和21這兩個端口,其中20用於傳輸數據,21用於傳輸控制信息
但是,是否使用20作爲傳輸數據的端口與FTP使用的傳輸模式有關
如果採用主動模式,那麼數據傳輸端口就是20;如果採用被動模式,則具體最終使用哪個端口要服務器端和客戶端協商決定
2.實驗環境
首先我們決定用server虛擬機作爲ftp服務端,所以首先我們要檢查他的網絡配置
然後我們配置對應版本的yum源
內核及防火牆關閉
3.ftp服務的基本信息
/var/ftp 默認發佈目錄
/var/ftp/pub/ 默認發佈目錄的子目錄
/etc/vsftpd/vsftpd.conf 服務配置文件
報錯id:
500 | 文件系統權限過大 |
530 | 用戶認證失敗 |
550 | 服務本身功能爲開放 |
553 | 本地文件系統權限過小 |
3.1 搭建ftp服務器
一臺主機可以同時做客戶端,也可以做服務端
第一步:安裝 ftp服務
第二步:打開ftp服務
第三步:查看該服務的安裝目錄
第四步:查看該服務的配置文件
第五步:防火牆通過ftp服務
3.2 ftp服務測試
3.2.1匿名用戶
1)匿名用戶登陸限制
anonymous_enable=YES|NO
2)匿名用戶上傳
anon_upload_enable=YES|NO
3)匿名用戶家目錄修改
anon_root=/westos
4)匿名用戶上傳文件默認權限修改
anon_umask=xxx
5)匿名用戶建立目錄
anon_mkdir_write_enable=YES|NO
6)匿名用戶下載
anon_world_readable_only=YES|NO 設定參數值爲no表示匿名用戶可以下載
7)匿名用戶刪除
anon_other_write_enable=YES|NO
8)匿名用戶使用的用戶身份修改
chown_uploads=YES
chown_username=student
9)最大上傳速率
anon_max_rate=102400
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1000 截取一個1G大的文件
10)最大鏈接數
max_clients=2最多鏈接兩臺主機
3.2.2 本地用戶
1)本地用戶限制登陸
local_enable=YES|NO
2)本地用戶寫權限
write_enable=YES|NO
3)本地用戶家目錄更改
local_root=/westos 將本地用戶登陸家目錄更改爲/westos
4)本地用戶上傳文件權限
local_umask=xxx
5)限制本地用戶瀏覽目錄
chroot_local_user=YES
chmod u-w /home/*
6)本地用戶黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
7)本地用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
8)限制本地用戶登陸黑名單
vim /etc/vsftpd/ftpusers 只能爲黑名單
9)用戶臨時黑名單
vim /etc/vsftpd/user_list
10)用戶臨時白名單
userlist_deny=NO
vim /etc/vsftpd/user_list
4.ftp虛擬用戶的設定
1)給ftp服務器創建虛擬帳號身份,更加安全。
vim /etc/vsftpd/loginusers (虛擬賬戶名單)
2)虛擬用戶帳號身份指定
guest_username=ftpuser
chmod u-w /home/ftpuser
3)虛擬賬戶家目錄獨立設定
使虛擬用戶的登陸進去不再是ftp用戶的默認家目錄
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1…3}
驗證:lftp 172.25.254.111 -u user1
ls 可以看到此時user1的家目錄是他自己的家目錄