Linux下ftp服務

前期準備:
在虛擬機上
vim /etc/sysconfig/selinux ##關閉內核加強型火牆
SELINUX=disabled
在這裏插入圖片描述

reboot
getenforce ##確認內核加強型火牆已經關閉

在這裏插入圖片描述
hostnamectl 查看系統版本
yum install lftp -y

1.ftp的定義

ftp:// ##文本傳輸協議

2.ftp協議提供的軟件

在rhel7中:
vsftpd

3.部署ftp服務

ftp服務的基本信息
軟件安裝包: vsftpd
默認發佈目錄: /var/ftp
協議接口: 21/tcp
服務配置文件: /etc/vsftpd/vsftpd.conf

報錯id的解析:

530 #用戶認證失敗
500 #文件系統權限過大
553 #本地文件系統權限過小服務器的權限系統拒絕操操
550 #服務本身功能未開放

1)安裝ftp服務
yum install vsftpd -y
2)開啓ftp服務
systemctl start vsftpd
systemctl enable vsftpd

在這裏插入圖片描述
3)設置防火牆永久允許ftp服務運行

方法1:直接通過命令實現
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
在這裏插入圖片描述
方法2:通過圖形進行設置

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
在主機上測試是否成功開啓ftp服務

在這裏插入圖片描述

4.ftp服務的管理

編輯ftp配置文件
vim /etc/vsftpd/vsftpd.conf
注意:每次編輯配置文件後需要重啓ftp服務才能生效,編輯時每行後面不要加空格否則服務會起不來
在這裏插入圖片描述
匿名用戶
anonymous_enable=YES|NO ##匿名用戶是否可以登陸
當anonymous_enable=NO時
在這裏插入圖片描述
再次從真機上登陸時會發現無法使用匿名用戶登陸
在這裏插入圖片描述

本地用戶
local_enable=YES|NO ##本地用戶是否可以登陸

wirte_enable=YES|NO ##ftp是否對登陸用戶可寫

1)匿名用戶上傳
vim /etc/vsftpd/vsftpd.conf
wirte_enable=YES
anon_upload_enable=YES
在這裏插入圖片描述
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

測試:
在這裏插入圖片描述
如果你按着這個步驟來仍然報錯553那說明你前期準備沒做或者做了以後虛擬機reset了

2)匿名用戶家目錄修改
anon_root=/westos
在這裏插入圖片描述

systemctl restart vsftpd
mkdir /westos
touch /westos/westosfile

測試:
在這裏插入圖片描述

3)匿名用戶上傳文件默認權限修改
anon_umask=022
在這裏插入圖片描述
測試:
在這裏插入圖片描述

4)匿名用戶建立目錄
anon_mkdir_write_enable=YES|NO
在這裏插入圖片描述

測試:
在這裏插入圖片描述

5)匿名用戶下載
anon_world_readable_only=YES|NO ##設定參數值爲no表示匿名用戶可以下載
在這裏插入圖片描述
測試:

在這裏插入圖片描述

6)匿名用戶刪除
anon_other_write_enable=YES|NO
在這裏插入圖片描述

測試:

在這裏插入圖片描述

7)匿名用戶使用的用戶身份修改
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
在這裏插入圖片描述
測試:

在這裏插入圖片描述

在這裏插入圖片描述
上傳文件的所有人變爲了student,權限爲644

8)最大上傳速率
anon_max_rate=102400 ##100k
在這裏插入圖片描述
測試:

在這裏插入圖片描述

9)最大鏈接數
max_clients=2
在這裏插入圖片描述
測試:
第一個連接成功
在這裏插入圖片描述
第二個連接成功
在這裏插入圖片描述
第三個連接失敗

在這裏插入圖片描述

10)本地用戶家目錄的修改:
local_root=/westos

在這裏插入圖片描述

測試:

在這裏插入圖片描述
11)本地用戶上傳文件權限
local_umask=022
在這裏插入圖片描述
測試:

在這裏插入圖片描述

12)限制本地用戶瀏覽/目錄
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES #禁止用戶訪問/目錄
在這裏插入圖片描述
chmod u-w /home/*
注意:ftp的家目錄不能有寫權限
看到500報錯 將w權限去除即可

測試:

在這裏插入圖片描述

用戶黑名單的建立 #黑白名單的建立取決於默認權限chroot_local_user=是禁止還是允許,
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

在這裏插入圖片描述

systemctl restart vsftpd

touch /etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list #編輯後立即生效
在這裏插入圖片描述

測試:
用戶student被所在自己的家目錄中
在這裏插入圖片描述

其他用戶可以訪問/目錄

在這裏插入圖片描述

用戶白名單的建立
chroot_local_user=YES
chroot_list_ecable=YES
chroot_list_file=/etc/vsftpd/chroot_list

在這裏插入圖片描述
vim /etc/vsftpd/chroot_list在這裏插入圖片描述

測試:
student用戶登陸可以訪問/目錄

在這裏插入圖片描述

其他用戶登陸被鎖在自己家目錄下

在這裏插入圖片描述

13)限制本地用戶登陸
vim /etc/vsftpd/ftpusers ##用戶永久黑名單,只要出現在此黑名單你就永遠是黑的
在這裏插入圖片描述

測試:
使用student用戶身份連接失敗
在這裏插入圖片描述

使用其他用戶身份連接成功

在這裏插入圖片描述

vim /etc/vsftpd/user_list ##用戶臨時黑名單

用戶白名單設定
userlist_deny=NO
在這裏插入圖片描述

/etc/vsftpd/user_list ##參數設定,此文件變成用戶白名單,只有在名單中出現的用戶可以登陸ftp

在這裏插入圖片描述
測試:

使用student用戶身份可以成功登陸

在這裏插入圖片描述

使用其他用戶身份無法登陸

在這裏插入圖片描述

14)虛擬用戶的設定:
創建虛擬帳號身份
vim /etc/vsftpd/guestfile ##文件名稱任意

在這裏插入圖片描述

db_load -T -t hash -f /etc/vsftpd/guestfile /etc/vsftpd/guestfile.db ##對文件指定hash加密

ls /etc/vsftpd/ ##可以看到加密文件生成

在這裏插入圖片描述

vim /etc/vsftpd/vsftpd.conf

在這裏插入圖片描述
pam_service_name=vsftpd ##編輯vsftpd配置文件我們可以看到認證的名稱爲pam,認證方式爲vsftpd

rpm -ql vsftpd ##查看vsftpd的安裝目錄,找到管理認證方式的文件/etc/pam.d/vsftpd

在這裏插入圖片描述
vim /etc/pam.d/vsftpd ##查看其書寫格式

在這裏插入圖片描述

vim /etc/pam.d/westos ##手動編寫一個認證管理文件文件名稱任意

account required pam_userdb.so db=/etc/vsftpd/guestfile
帳號 認證方式 認證插件 讀取文件
auth required pam_userdb.so db=/etc/vsftpd/guestfile
認證

在這裏插入圖片描述

注意:該文件內文件後綴會自動補齊,如果你輸入db=/etc/vsftpd/guestfile.db 退出保存後就會被識別爲db=/etc/vsftpd/guestfile.db.db,產生報錯

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##設定認證方式
guest_enable=YES ##開啓虛擬用戶認證
guest_username=ftp ##虛擬帳號身份指定

在這裏插入圖片描述
systemctl restart vsftpd

測試:
成功使用虛擬用戶身份登陸
在這裏插入圖片描述

15)虛擬用戶家目錄的修改
mkdir /var/ftpuserdir/westos{1…3} -p ##創建虛擬用戶家目錄
vim /etc/vsftpd/vsftpd.conf
指定虛擬用戶家目錄:

在這裏插入圖片描述
systemctl restart vsftpd.service

mkdir /var/ftpuserdir/westos{1…3}/pub ##在各個目錄下創建文件以示區別
touch /var/ftpuserdir/westos1/westos1file
touch /var/ftpuserdir/westos2/westos2file
touch /var/ftpuserdir/westos3/westos3file

測試:

在這裏插入圖片描述

16)虛擬帳號配置獨立
chmod 775 /var/ftpuserdir/westos*/pub/ ##不改報錯553
chgrp ftp /var/ftpuserdir/westos*/pub/

vim /etc/vsftpd/vsftpd.conf
將匿名用戶權限全部屏蔽

在這裏插入圖片描述

user_config_dir=/etc/vsftpd/userconf

在這裏插入圖片描述

mkdir -p /etc/vsftpd/userconf ##目錄創建和你在user_config_dir=後面寫的一樣,寫錯報錯550
vim /etc/vsftpd/userconf/westos1
anon_upload_enable=YES

在這裏插入圖片描述

systemctl restart vsftpd.service

測試:
只有虛擬用戶westos1可以上傳文件
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章