1.什麼是ftp
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱爲“文傳協議”。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。VSFTP 是一個基於GPL發佈的類Unix系統上使用的FTP服務器軟件,它的全稱是Very Secure FTP 從此名稱可以看出來,編制者的初衷是代碼的安全。
2.安裝ftp
需要提前配置好yum源,如果沒有可參考之前的博客
軟件安裝
yum install vsftpd -y
systemctl start vsftpd
systemctl stop firewalld
systemctl enable vsftpd
lftp ip ##能登陸並且顯示,表示安裝成功
@@如果不能登陸輸入以下命令並修改參數爲SELINUX=disabled@@
vim /etc/sysconfig/selinux
3.vsftpd文件信息
/var/ftp ##默認發佈目錄
/etc/vsftpd ##配置目錄
/etc/vsftpd/vsftpd.conf ##配置文件
4.vsftpd服務的配置參數
首先先來了解以下vsftp報錯id的解析
500 #文件系統權限過大服務不允許,/var/ftp 權限不能爲777
530 #認證失敗,密碼錯誤
550 #權限不夠,服務本身不允許
553 #本地文件系統對你不可寫
1)匿名用戶設定
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
anonymous_enable=YES|NO ##匿名用戶登陸限制
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<匿名用戶上傳>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub名用戶家目錄修改>##注意這裏不能給777權限否則會報錯500
anon_root=/direcotry
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<匿名用戶家目錄修改> ##這個做完之後註釋掉不然影響後面的實驗
anon_root=/direcotry
<匿名用戶上傳文件默認權限修改>
anon_umask=xxx ##這裏給022,那麼建立出來的權限應該是777-111-022=644
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<匿名用戶建立目錄>
anon_mkdir_write_enable=YES|NO
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<匿名用戶下載>
anon_world_readable_only=YES|NO ##設定參數值爲no表示匿名用戶可以下載
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#<匿名用戶刪除>
anon_other_write_enable=YES|NO
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#<匿名用戶使用的用戶身份修改>
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#<最大上傳速率>
anon_max_rate=204800
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#<最大鏈接數>
max_clients=1
2)本地用戶設定
local_enable=YES|NO ##本地用戶登陸限制
write_enable=YES|NO ##本地用戶寫權限限制
從上圖可以看出本地用戶訪問服務的入口爲student的家目錄
<本地用戶家目錄修改> ##和之前匿名用戶一樣記得做完註釋掉
local_root=/directory
<本地用戶上傳文件權限>
local_umask=xxx 這裏設置爲000 文件系統權限爲666
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<限制本地用戶瀏覽/目錄>
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES
chmod u-w /home/*
用戶黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
<限制本地用戶登陸>
vim /etc/vsftpd/ftpusers ##用戶黑名單
vim /etc/vsftpd/user_list ##用戶臨時黑名單
用戶白名單設定
userlist_deny=NO
/etc/vsftpd/user_list ##參數設定,此文件變成用戶白名單,只在名單中出現的用戶可以登陸ftp
<ftp虛擬用戶的設定>
創建虛擬帳號身份)
vim /etc/vsftpd/redhat ##文件名稱任意
ftpuser1
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/redhat redhat.db
vim /etc/pam.d/redhat ##文件名稱任意
account required pam_userdb.so db=/etc/vsftpd/redhat
auth required pam_userdb.so db=/etc/vsftpd/redhat
vim /etc/vsftpd/vsftpd.conf
pam_service_name=redhat 指定pam配置文件
guest_enable=YES 啓用虛擬帳號支持
虛擬帳號身份指定)
guest_username=ftp 映射虛擬用戶身份
chmod u-w /home/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}
虛擬帳號配置獨立)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中設定配置文件中的所有參數,此文件的優先級搞