Linux中Vsftpd服務的部署及優化

成果丨發表於2020-11-24

實驗環境

selinux關閉:(設定完成需重啟)
vim /etc/sysconfig/selinux
在這裡插入圖片描述

ftp介紹

ftp:file transfer proto(檔案傳輸通道)
網際網路中最老牌的檔案傳輸協議

vsftpd安裝及啟用

在server中:
dnf install vsftpd -y
在這裡插入圖片描述
systemctl enable --now firewalld
systemctl enable --now vsftpd
在這裡插入圖片描述
firewalld -cmd --permanent --add-service=ftp
firewalld -cmd --permanent --add-source=172.1.36.101 --zone=trusted
systemctl restart firewalld 或 firewalld-cmd --reload
在這裡插入圖片描述
在這裡插入圖片描述
vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 啟動匿名使用者的訪問功能
在這裡插入圖片描述
systemctl restart vsftpd
配置完成
在這裡插入圖片描述
550 ##程式本身拒絕
553 ##檔案系統許可權限制
500 ##許可權過大
530 ##認證失敗(密碼錯誤、匿名登入未開啟)

匿名使用者訪問控制

vim /etc/vsftpd/vsftpd.conf
第12行的NO改為YES
systemctl restart vaftp
此時所有使用者可訪問
在這裡插入圖片描述

家目錄控制

vim /etc/vsftpd/vsftpd.conf
寫入anon_root=/westos
systemctl restart vsftpd
在這裡插入圖片描述

上傳控制

vim /etc/vsftpd/vsftpd.conf
將29行的 anon_upload_enable=YES的註釋開啟
systemctl restart vsftpd
在這裡插入圖片描述

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
在這裡插入圖片描述
lftp 172.25.254.225
cd pub
put /etc/passwd
此時passwd就上傳了
在這裡插入圖片描述

目錄建立控制

vim /etc/vsftpd/vsftpd.conf
將33行的anon_mkdir_enable=YES的註釋開啟
systemctl restart vsftpd
在這裡插入圖片描述
此時可以建立目錄
lftp 172.25.254.225
cd pub
mkdir westos
在這裡插入圖片描述

匿名使用者可以下載不能讀的檔案刪除重命令控制

vim /etc/vsftpd/vsftpd.conf
在13行新增anon_other_write_enable=YES
systemctl restart vsftpd
在這裡插入圖片描述

此時可以刪除
lftp 172.25.254.225
cd pub
rm -fr passwd
在這裡插入圖片描述

下載控制

vim /etc/vsftpd/vsftpd.conf
寫入anon_world_readable_only=NO
systemtl restart vsftpd
在這裡插入圖片描述
lftp 172.25.254.225
cd pub
put /etc/passwd
get passwd
在這裡插入圖片描述

匿名使用者上傳檔案許可權設定

vim /etc/vsftpd/vsftpd.conf
anon_umask=022
systemctl restart vsftpd

在這裡插入圖片描述
在這裡插入圖片描述

匿名使用者上傳檔案的使用者身份設定

vim /etc/vsftpd/vsftpd.conf
chown_upload=YES
chown_username=westos ##所有匿名使用者在伺服器上生成的檔案都以westos的身份生成
chown_upload_mode=0644 ##設定檔案許可權
systemctl restart vsftpd
在這裡插入圖片描述

此時新上傳的檔案擁有者和許可權都已改變
在這裡插入圖片描述

登陸數量控制

vim /etc/vsftpd/vsftpd.conf
新增max_clients=2 ##最多同時允許兩臺登陸
systemctl restart vaftpd
在這裡插入圖片描述
在這裡插入圖片描述

上傳速率控制

vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400 ##最大上傳速率為100kb/s
systemctl restart vsftpd
在這裡插入圖片描述
此時上傳速率已被限制
在這裡插入圖片描述

本地使用者的訪問

建立新使用者
useradd linux
echo westos | passwd --stdin linux
su - linux
touch linuxfile
su - westos
touch westosfile
在這裡插入圖片描述

lftp 172.25.254.225 -u westos/linux 兩個使用者都可登陸
在這裡插入圖片描述

vim /etc/vsftpd/vsftpd.conf
將21行的local-enable=YES 改為NO
systemctl restart vsftpd
在這裡插入圖片描述
此時兩個使用者都不可登陸
在這裡插入圖片描述

家目錄控制

vim /etc/vsftpd/vsftpd.conf
local_root=/westosdir ##將家目錄修改為westosdir
systemctl restart vsftpd、
在這裡插入圖片描述
此時家目錄已經改變
在這裡插入圖片描述

寫許可權控制

vim /etc/vsftpd/vsftpd.conf
將25行的write_enable=YES改為NO
systemctl restart vsftpd
在這裡插入圖片描述
此時將不能寫(上傳等操作不能執行)
在這裡插入圖片描述

上傳檔案許可權控制

vim /etc/vsftpd/vsftpd.conf
local_umask=077 ##此時上傳的檔案許可權為777-077=600
systemctl restart vsftpd
在這裡插入圖片描述
此時上傳的檔案許可權變為600
在這裡插入圖片描述

鎖定使用者到自己的家目錄中(不可瀏覽/目錄)

沒做任何操作之前可以任意瀏覽/目錄
在這裡插入圖片描述
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES ##此時所有使用者都被鎖定到自己的家目錄中,為NO時解鎖
systemctl restart vsftpd
chmod u-w /home/*
在這裡插入圖片描述
在這裡插入圖片描述

此時無法瀏覽/目錄
在這裡插入圖片描述

鎖定使用者到白名單

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在這裡插入圖片描述
然後在/etc/vsftpd/chroot_list中寫入westos
systemctl restart vsftpd
在這裡插入圖片描述
此時除了westos其他使用者都不能訪問/目錄
在這裡插入圖片描述
在這裡插入圖片描述

鎖定使用者到黑名單

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在這裡插入圖片描述
然後在/etc/vsftpd/chroot_list中寫入westos
systemctl restart vsftpd
在這裡插入圖片描述
此時除了westos其他使用者都可以訪問/目錄
在這裡插入圖片描述
在這裡插入圖片描述

使用者登陸控制

/etc/vsftpd/ftpusers ##永久黑名單
在此配置檔案中寫入的使用者不管做什麼操作都不能登陸
在這裡插入圖片描述
在這裡插入圖片描述
/etc/vsftpd/user_list ##預設黑名單
在此配置檔案中寫入的使用者不能登陸
在這裡插入圖片描述
在這裡插入圖片描述

使用者白名單

vim /etc/vsftpd/vsftpd.conf
新增 user_list_deny=NO ##寫入此命令後/etc/vsftpd/user_list就變成了白名單
systemctl restart vsftpd
在這裡插入圖片描述
此時只有在/etc/vsftpd/user_list這個配置檔案裡的使用者才能登陸
在這裡插入圖片描述
westos使用者可以登入
在這裡插入圖片描述
Linux使用者不能登入
在這裡插入圖片描述

虛擬使用者訪問

1.建立虛擬使用者
vim /etc/vsftp/auth_file
user1
123
user2
123
user3
123
在這裡插入圖片描述
2.加密檔案
db_load -T -t hash -f auth_file auth_file.db
在這裡插入圖片描述
3.vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/auth_file
auth required pam_userdb.so db=/etc/vsftpd/auth_file
在這裡插入圖片描述
4.vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES
guest_username=ftp
systemctl restart vsftpd
在這裡插入圖片描述
此時lftp 172.25.254.225 -u westos 不能登陸
在這裡插入圖片描述
lftp 172.25.254.225 -u user1
lftp 172.25.254.225 -u user2
lftp 172.25.254.225 -u user3
都可以登陸
在這裡插入圖片描述

虛擬使用者家目錄獨立

mkdir -p /ftpuserdir/ftpuser{1…3}
touch /ftpuserdir/ftpuser1/user1file
touch /ftpuserdir/ftpuser2/user2file
touch /ftpuserdir/ftpuser3/user3file
在這裡插入圖片描述
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/ U S E R u s e r s u b t o k e n = USER user_sub_token= USERusersubtoken=USER
systemctl restart vsftpd在這裡插入圖片描述
lftp 172.25.254.225 -u user1
lftp 172.25.254.225 -u user2
登陸時虛擬使用者家目錄獨立

使用者配置獨立

vim /etc/vsftpd/vsftpd.conf
註釋anon_upload_enable=YES
新增user_config_dir=/etc/vsftpd/westos_conf
systemctl restart vsftpd
在這裡插入圖片描述
mkdir /etc/vsftpd/westos_conf
touch /etc/vsftpd/westos_conf/user1
在這裡插入圖片描述
vim /etc/vsftpd/westos_conf/user1
在這裡插入圖片描述
lftp 172.25.254.225 -u user1
lftp 172.25.254.225 -u user2
lftp 172.25.254.225 -u user3
此時,只有user1可以上傳,其餘兩個不能上傳
在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

相關文章