1.ftp工作原理
FTP是一個客戶機/服務系統。使用者通過一個支援FTP協定的客戶機程式,連接配接到在遠端主機上的FTP伺服器程式。使用者通過客戶機程式向伺服器程式發出指令,伺服器程式執行使用者所發出的指令,并将執行的結果傳回到客戶機。
2.安裝ftp服務
yum install vsftpd -y ##安裝服務

systemctl start vsftpd ##啟動服務
systemctl stop firewalld ##關閉火牆
systemctl enable vsftpd ##開機自動啟動
setenforce 0 #<code>#關閉selinux或者設定selinux不然會對試驗造成影響</code>
lftp ip ##能登陸并且顯示,表示安裝成功
vsftpd檔案資訊
/var/ftp ##預設釋出目錄
/etc/vsftpd ##配置目錄
配置火牆政策
farewall-config ##使用圖形界面配置
@@配置的步驟為:先選中permannent,勾上ftp,點選options,選擇reload完成配置
改selinux的狀态為disabled,因為selinux是核心級的加強型防火牆,如果他處于強制狀态,系統很多功能将不被允許。
@@更改完以後一定要記得重新開機,因為它是核心級的,必須重新開機才能重新加載
vsftpd服務的配置參數
匿名使用者設定
anonymous_enable=YES|NO ##匿名使用者登陸限制,設定為NO時匿名不能登入
匿名使用者上傳
vim /etc/vsftpd/vsftpd.conf
write_enable=YES ##設為YES匿名使用者可以上傳
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub ##修改權限
匿名使用者家目錄修改
anon_root=/direcotry ##修改以後,登陸進入以後都在修改的家目錄下
匿名使用者上傳檔案預設權限修改
anon_umask=xxx
匿名使用者建立目錄
anon_mkdir_write_enable=YES|NO ##設定為NO表示可以建立
匿名使用者下載下傳
anon_world_readable_only=YES|NO ##設定參數值為no表示匿名使用者可以下載下傳
匿名使用者删除
anon_other_write_enable=YES|NO
匿名使用者使用的使用者身份修改
chown_uploads=YES
chown_username=student
最大上傳速率
anon_max_rate=102400 ##機關為kb,102400表示100M
最大連結數
max_clients=2 ##最多允許兩台主機接入
本地使用者設定
local_enable=YES|NO ##本地使用者登陸限制
write_enable=YES|NO ##本地使用者寫權限限制
本地使用者家目錄修改
local_root=/directory
本地使用者上傳檔案權限
local_umask=xxx
限制本地使用者浏覽/目錄
所有使用者被鎖定到自己的家目錄中
chroot_local_user=YES
chmod u-w /home/*
使用者黑名單建立
chroot_local_user=NO ##無法浏覽
chroot_list_enable=YES ##啟用名單
chroot_list_file=/etc/vsftpd/chroot_list ##寫入名單的使用者無法浏覽
使用者白名單建立
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##使用者白名單建立後,隻有在名單中出現的使用者才能登入ftp
#<限制本地使用者登陸>
vim /etc/vsftpd/ftpusers ##使用者黑名單
vim /etc/vsftpd/user_list ##使用者臨時黑名單
使用者白名單設定
userlist_deny=NO
/etc/vsftpd/user_list ##參數設定,此檔案變成使用者白名單,隻在名單中出現的使用者可以登陸ftp
ftp虛拟使用者的設定
(建立虛拟帳号身份)
vim /etc/vsftpd/xxx ##檔案名稱任意
ftpuser1 ##使用者名
123 ##密碼
ftpuser2
123
ftpuser3
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
##hash加密
vim /etc/pam.d/xxx ##檔案名稱任意
accountrequiredpam_userdb.sodb=/etc/vsftpd/loginusers
authrequiredpam_userdb.sodb=/etc/vsftpd/loginusers
pam_service_name=ckvsftpd
guest_enable=YES
虛拟帳号身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser
虛拟帳号家目錄獨立設定)
local_root=/ftpuserhome/$USER
user_sub_token=$USER
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
虛拟帳号配置獨立)
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1