1.ftp工做原理linux
FTP是一個客戶機/服務系統。用戶經過一個支持FTP協議的客戶機程序,鏈接到在遠程主機上的FTP服務器程序。用戶經過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。vim
2.安裝ftp服務bash
yum install vsftpd -y ##安裝服務服務器
systemctl start vsftpd ##啓動服務ide
systemctl stop firewalld ##關閉火牆ui
systemctl enable vsftpd ##開機自動啓動加密
setenforce 0 ##關閉selinux或者設置selinux否則會對試驗形成影響
spa
lftp ip ##能登錄而且顯示,表示安裝成功3d
vsftpd文件信息code
/var/ftp ##默認發佈目錄
/etc/vsftpd ##配置目錄
配置火牆策略
farewall-config ##使用圖形界面配置
@@配置的步驟爲:先選中permannent,勾上ftp,點擊options,選擇reload完成配置
改selinux的狀態爲disabled,由於selinux是內核級的增強型防火牆,若是他處於強制狀態,系統不少功能將不被容許。
@@更改完之後必定要記得重啓,由於它是內核級的,必須重啓才能從新加載
匿名用戶設定
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_local_user=YES
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
123
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
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
虛擬賬號身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser
虛擬賬號家目錄獨立設定)
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