ftp是早期網絡協議之一,在至今的網絡中仍然有着強大的作用,但是ftp的數據傳輸時明文的,所以說傳輸過程可能存在一些風險
ftp時基於CS模型的服務,其控制連接使用TCP21號端口,數據連接使用TCP20號端口。數據傳輸模式有.主動模式、被動模式。
常見的FTP服務器程序有很多,在linux上我們通常使用vsftpd(Very Secure FTP Daemon)
FTP的用戶類型有三種
1.匿名用戶: anonymous 或者 ftp
2.本地用戶:
3.虛擬用戶: 使用獨立的賬號/密碼數據文件。
常見的FTP客戶端:
ftp命令
lftp命令
gftp (linxu上圖形化的ftp工具)
CuteFTP
FlashFTP(號稱是最快的FTP)、
Ftps 會有通過ssl加密的機制。
安裝vsftpd 服務器
vsftpd服務默認用ftp這的身份來運行的。vsftpd受到selinux的控制,我們首先禁用selinux。
yum install vsftpd
vsfptd裝在/usr/sbin目錄中叫做vsftpd
配置文件保存在/etc/vsftpd目錄下
默認文件保存在/var/ftp中
配置vsftpd
/etc/vsftpd目錄下的
ftpusers :定義禁止登陸的用戶
user_list 文件: 提供FTP用戶列表,而這個文件是否能生效,取決於主配置文件的設置
/etc/vsftpd.conf:主配置文件,詳細的定義了所有的規則:
常用的規則:
local_enable=YES 是否允許以本地用戶身份訪問,本地用戶默認通過ftp登陸默認在家目錄
write_enable 是否允許本地用戶登錄後可寫?(只創建文件)
anon_mkdir_write_enable=YES 允許本地用戶登錄後可創建文件夾
anon_upload_enable=YES 是否允許匿名用戶上傳
chown_upload=YES 對匿名用戶上傳的文件進行一次自動的更改屬主
chown_username=root 定義更改的屬主
dirmessage_enable=YES 給當前目錄增加一個歡迎信息
message_file=.message 你的歡迎文件的位置。
xferlog_enable=YES 是否開啓日誌信息
xferlog_file=/var/log/vsftpd.log配置日誌文件在哪
idle_session_timeout=600 會話的響應時間
data_connection_timeout=120 數據響應時間
ftpd_banner=Welcome to bash FTPservice. FTP的歡迎信息。
chroot_list_enable=YES 這項的作用是是否把用戶鎖在它的家目錄中。
chroot_list_file=/etc/vsftpd/chroot_list通過這個表,你可以定義到底限制哪些用戶。
listen=YES 讓FTP以獨立進程運行在我們的機子上的。
pam_service_name=vsftpd 基於pub認證
userlist_enable=YES 是否開啓列表的控制 user_list 文件:
userlist_deny=YES 他默認是拒絕的,只要你想進去,則會立刻拒絕。如果我們改成NO,則僅能這個列表中的用戶訪問。
lftp-u student 172.16.100.1 則可以進行驗證
啓動服務:service vsftpd start
構建基於虛擬用戶的vsftpd服務器認證:
建立虛擬FTP用戶的賬號數據庫文件
建立虛擬用戶的賬號名、密碼列表
vim/etc/vsftpd/vusers.list
aaa
123
Bbb
456
奇數行行用戶,偶數行是密碼
我們需要用db4-utils進行一次哈希的轉換。
db_load-T -t hash -f vusers.list vusers.db
更改其權限爲600 chmod 600 /etc/vsftpd/vusers.*
創建FTP根目錄及虛擬用戶映射的系統用戶,虛擬出來的用戶可以自定義虛擬家目錄。