ftp文件傳輸協議
1.ftp://文件傳輸協議2.ftp協議提供的軟件 在rhel7中是vsftpd
3.服務端部署ftp服務
[root@server Desktop]# yum install vsftpd -y
[root@server Desktop]# systemctl start vsftpd.service
[root@server Desktop]# systemctl enable vsftpd.service #設置開機自動啓動
[root@server Desktop]# firewall-cmd --permanent --add-service=ftp
將ftp服務添加至火牆策略
[root@server Desktop]# firewall-cmd --reload #重新加載,讓策略生效
如下圖,該策略生效後,可以查看到
如下圖,將ftp服務在服務端部署好後,客戶端主機可以與其建立連接,下圖ip爲server端主機ip
軟件安裝包 vsftpd
默認發佈目錄: /var/ftp/
協議接口: 21/tcp
服務配置文件:/etc/vsftpd/vsftpd.conf
注意:該默認路徑是不能打開所有權限的,即不能爲這個目錄授予777的權限,否則在服務端連接會出現下列報錯:
vim /etc/vsftpd/vsftpd.conf
(1)匿名用戶(匿名用戶使用的身份是ftp用戶)
<匿名用戶登陸>
anonymous_enable=YES|NO #匿名用戶是否可以登陸
<匿名用戶上傳本地文件>
匿名用戶上傳:必須自己再/var/ftp目錄下建立一個目錄,如pub。再給這個目錄授予某個身份的滿權限,這裏將ftp匿名用戶的登陸身份加入到這個/var/ftp/pub目錄的組裏。
write_enable=YES
anon_upload_enable=YES
如果設爲YES,則允許匿名登入者有上傳文件(非目錄)的權限,只有在write_enable=YES時,此項纔有效。當然,匿名用戶必須要有對上層目錄的寫入權。默認值爲NO
[root@server ftp]# chgrp ftp /var/ftp/pub/[root@server ftp]# chmod 775 /var/ftp/pub/
[root@server ftp]# systemctl restart vsftpd.service #重啓服務
測試
客戶端建立連接並上傳本地文件
服務端的/var/ftp/pub目錄查看是否成功上傳
anon_root=/目錄名 <匿名用戶家目錄修改>
anon_umask=xxx <匿名用戶上傳文件默認權限修改>
anon_mkdir_write_enable=YES <匿名用戶建立目錄>
如果設爲YES,則允許匿名登入者有新增目錄的權限,只有在write_enable=YES時,此項纔有效。當然,匿名用戶必須要有對上層目錄的寫入權。默認值爲NO。
anon_world_readable_only=NO
<匿名用戶下載>
anon_other_write_enable=YES <匿名用戶刪除文件>
如 果設爲YES,則允許匿名登入者更多於上傳或者建立目錄之外的權限,譬如刪除或者重命名。(如果anon_upload_enable=NO,則匿名用戶 不能上傳文件,但可以刪除或者重命名已經存在的文件;如果anon_mkdir_write_enable=NO,則匿名用戶不能上傳或者新建文件夾,但 可以刪除或者重命名已經存在的文件夾。)默認值爲NO。
chown_username=student
anon_max_rate=102400 <匿名用戶最大上傳速率>
max_clients=2 <匿名用戶最大鏈接數>
Tips:文件傳輸時候的報錯
550:服務本身功能未開放
530:用戶認證失敗
553:本地文件權限過小
500:文件系統權限過大
(2)本地用戶的相關配置
local_enable=YES/NO(YES)
控制是否允許本地用戶登入,YES 爲允許本地用戶登入,NO爲不允許。默認值爲YES。
local_root=/home/username
當本地用戶登入時,將被更換到定義的目錄下。默認值爲各用戶的家目錄。
是否允許登陸用戶有寫權限。屬於全局設置,默認值爲YES。
local_umask=022
本地用戶新增檔案時的umask 值。默認值爲077。
chroot_local_user=YES <限制本地用戶瀏覽/目錄 所有用戶都鎖到自己家中>
chmod u-w /home/*
設置前:
設置後:
用戶黑名單的建立
chroot local user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
student
用戶白名單的建立
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 參數設定,此文件變成用戶白名單,只有名單內的人可以登錄