天天看點

vsftpd服務的部署及優化

vsftpd服務的部署及優化

    • 實驗環境
    • 1.ftp 介紹
    • 2.vsftpd 安 裝 及 啟 用
    • 3.vsftpd 基 本 信 息
    • 4.匿名使用者通路控制
    • 凡是涉及目錄的操作,如上傳,看上傳目錄是否有寫權限,更改目錄權限,及組身份,
    • 5.本地使用者的通路
    • 6.虛拟使用者通路
    • 6.1虛拟使用者的建立
    • 6.2虛拟使用者家目錄的獨立設定
    • 6.3使用者配置獨立

實驗環境

server主機 :localhost192.168.3.15 client主機 :foudation 66:192.168.3.14
selinux 關閉 火牆開啟 dnf 安裝設定完成 ,安裝vsftpd服務,添加火牆政策firewall-cmd --permanent --add-service=ftp,firewall-cmd --reload 火牆開啟 selinux 關閉 dnf 安裝設定完成,安裝 lftp #ftp 協定文本浏覽器

1.ftp 介紹

ftp:file transfer proto

互聯阿中最老牌的檔案傳輸協定

FTP(File Transfer Protocol,檔案傳輸協定) 是 TCP/IP 協定組中的協定之一。FTP協定包括兩個組成部分,其一為FTP伺服器,其二為FTP用戶端。其中FTP伺服器用來存儲檔案,使用者可以使用FTP用戶端通過FTP協定通路位于FTP伺服器上的資源。在開發網站的時候,通常利用FTP協定把網頁或程式傳到Web伺服器上。此外,由于FTP傳輸效率非常高,在網絡上傳輸大的檔案時,一般也采用該協定。
預設情況下FTP協定使用TCP端口中的 20和21這兩個端口,其中20用于傳輸資料,21用于傳輸控制資訊。但是,是否使用20作為傳輸資料的端口與FTP使用的傳輸模式有關,如果采用主動模式,那麼資料傳輸端口就是20;如果采用被動模式,則具體最終使用哪個端口要伺服器端和用戶端協商決定。
           

2.vsftpd 安 裝 及 啟 用

dnf install vsftpd -y ##安裝vsftpd服務:在服務端

關閉 selinux diable 狀态 ##服務端和用戶端均設定為disabled狀态

systemctl enable --now firewalld ###服務端和用戶端的火牆均打開

systemctl enable --now vsftpd ##設定vsftpd服務開機自啟動 :服務端

firewall-cmd --permanent --add-device=ftp

firewall-cmd --reload

firewalld -cmd --permanent --add-source=192.168.3.15 --zone=trusted

systemctl restart firewalld

vim /etc/vsftpd/vsftpd.conf ##服務端編輯vsftpd服務的主配置檔案,進行設定,編輯完需要重新開機服務

anonymous_enable=YES ##啟動匿名使用者的通路功能

systemctl restart vsftpd

測試安裝釋出: firefox ftp://ip

lftp ip ##此通路方式必須能列出資源才算通路成功##在使用完成後請輸入 exit 推出 lftp

3.vsftpd 基 本 信 息

服務名稱 vsftpd.service
配置目錄: /etc/vsftpd
主配置檔案: /etc/vsftpd/vsftpd.conf
預設釋出目錄: /var/ftp
報錯資訊: 550 ##程式本身拒絕 553##檔案系統權限限制 500##權限過大 530##認證失敗
[[email protected]_rh124_111 ftp]# ss -antlupe | grep vsftpd
tcp   LISTEN   0        32                       *:21                   *:*      users:(("vsftpd",pid=8688,fd=3)) ino:170973 sk:11 v6only:0 <->                 
[[email protected]_rh124_111 ftp]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf   ##主配置檔案
           

4.匿名使用者通路控制

編輯主配置檔案的資訊,重新開機服務==

lftp 192.168.3.15 ##當通路 ftp 服務時沒有加入使用者認證為匿名通路

lftp 192.168.3.15 -u westos ##本地使用者通路

登陸控制

server

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO
systemctl restart vdftpd
           
vsftpd服務的部署及優化

家目錄控制

anon_root=/westos

server

vsftpd服務的部署及優化
vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

凡是涉及目錄的操作,如上傳,看上傳目錄是否有寫權限,更改目錄權限,及組身份,

上傳控制

server:

anon_upload_enable=YES|NO

vim /etc/vsftpd/vsftpd.conf 
systemctl restart vsftpd
           
vsftpd服務的部署及優化
vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

目錄建立控制

server:

anon_mkdir_write_enable=YES|NO

vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

下載下傳控制

anon_world_readable_only=NO ##匿名使用者可以下載下傳不能讀的檔案

删除重指令控制

anon_other_write_enable=YES|NO

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

anon_umask=xxx

anon_umask=022 ##當設定 chown_username 之後上傳文權限将不是用此參數設定

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

chown_upload=YES chown_username=westos chown_upload_mode=0644

vsftpd服務的部署及優化

登陸數量控制: max_clients=2

client

vsftpd服務的部署及優化

上傳速率控制

anon_max_rate=102400 ###上傳速率在100k每秒左右

server

vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

5.本地使用者的通路

登陸控制

useradd westos useradd lee

echo lee | passwd --stdin westos echo lee | passwd --stdin lee

lftp 192.168.3.15 -u westos

server

vim /etc/vsftpd/vsftpd.conf

local_enable=NO|YES 本地使用者可以登入

systemctl restart vsftpd

client

vsftpd服務的部署及優化

家目錄控制

server

vim /etc/vsftpd/vsftpd.conf

local_root=/westos

systemctl restart vsftpd

vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

寫權限控制

server

修改配置檔案

write_enable=NO|YES

client

vsftpd服務的部署及優化

上傳檔案權限控制

local_umask=077

使用者登陸控制

/etc/vsftpd/ftpusers ##永久黑

/etc/vsftpd/user_list ##預設黑 —>/etc/vstpd/vsftpd.conf中

userlist_deny=YES時|預設就是yes

使用者登陸白名單

server

userlist_deny=NO #設定/etc/vsftpd/user_list 位白名單

#不在名單中的使用者不能登陸 ftp

vsftpd服務的部署及優化

重新開機服務

vsftpd服務的部署及優化
vsftpd服務的部署及優化

鎖定使用者到自己的家目錄中

chmod u-w /home/* chroot_local_user=YES

vsftpd服務的部署及優化

鎖定使用者到自己的家目錄中的白名單:隻有白名單的使用者不被鎖定

server

chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list

vsftpd服務的部署及優化

重新開機服務

vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

鎖定使用者到自己的家目錄中的黑名單:黑名單中的使用者被鎖定

server

chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list

重新開機服務

westos使用者被設定為鎖定使用者到自己的家目錄中的黑名單,

vsftpd服務的部署及優化

client

vsftpd服務的部署及優化

6.虛拟使用者通路

6.1虛拟使用者的建立

1.vim /etc/vsftpd/ftp_auth_ftpuserlist立認證檔案模闆
westos1  ##虛拟使用者
123        ##密碼
westos2 
123
westos3 
123
           
vsftpd服務的部署及優化

2.db_load -T -t hash -f ftp_auth_file ftp_auth_file.db ##加密認證檔案 -T 轉換 -t type - f 指定轉換檔案

vsftpd服務的部署及優化

3 建立認證政策】

vim /etc/pam.d/westosftpauth    
account		required  pam_userdb.so		db=/etc/vsftpd/ftpuserlist	
   auth     required  pam_userdb.so	    db=/etc/vsftpd/ftpuserlist
           
vsftpd服務的部署及優化

4在ftp服務的配置檔案中使用的認證政策為上圖設定的認證政策

.vim /etc/vsftpd/vsftpd.conf     
pam_service_name=westosftpauth	##指定認證政策檔案
guest_enable=YES                     	##指定虛拟使用者功能開啟
guest_username=westos	         ##指定虛拟使用者在 ftp 伺服器上的使用者身份
           
vsftpd服務的部署及優化
vsftpd服務的部署及優化
vsftpd服務的部署及優化

6.2虛拟使用者家目錄的獨立設定

mkdir -p /ftpuserdir/westos{1…3}

touch /ftpuserdir/westos1/westos1file touch /ftpuserdir/westos2/westos2file touch /ftpuserdir/westos3/westos3file

vim /etc/vsftpd/vsftpd.conf

local_root=/ftpuserdir/$USER

user_sub_token=$USER

systemctl restart vsftpd

虛拟使用者預設通路目錄

vsftpd服務的部署及優化
vsftpd服務的部署及優化
vsftpd服務的部署及優化

6.3使用者配置獨立

user_config_dir=/etc/vsftpd/user_config #在此目錄中與使用者名稱相同的檔案為使用者配置檔案

mkdir /etc/vsftpd/user_config

vim /etc/vsftpd/user_config/westos2 anon_upload_enable=YES

設定完成後 westos2 使用者可以上傳檔案

westos1 和 westos3 不行

server

1.修改預設目錄的權限。

[[email protected]_rh124_111 vsftpd]# chmod 775 /westosdir/westos*/pub
[[email protected]_rh124_111 vsftpd]# chgrp westos /westosdir/westos*/pub
[[email protected]_rh124_111 vsftpd]# ls -ld /westosdir/westos*/pub
drwxrwxr-x 2 root westos  6 Aug 14 04:49 /westosdir/westos1/pub
drwxrwxr-x 2 root westos 20 Aug 14 21:46 /westosdir/westos2/pub
drwxrwxr-x 2 root westos  6 Aug 14 04:49 /westosdir/westos3/pub
2.關閉主配置檔案的上傳功能
anon_upload_enable=NO
3.設定上傳使用者白名單
[[email protected]_rh124_111 vsftpd]# mkdir confdir
[[email protected]_rh124_111 vsftpd]# cd confdir/
[[email protected]_rh124_111 confdir]# vim westos2 
[[email protected]_rh124_111 confdir]# cat /etc/vsftpd/confdir/westos2   ##同名檔案的使用者可以上傳
anon_upload_enable=YES
[[email protected]_rh124_111 vsftpd]# tail -n 7 /etc/vsftpd/vsftpd.conf 
pam_service_name=westosftpauth
guest_enable=YES
guest_username=westos
userlist_enable=YES
local_root=/westosdir/$USER
user_sub_token=$USER
user_config_dir=/etc/vsftpd/confdir     ####與檔案同名的使用者可以上傳
[[email protected]_rh124_111 vsftpd]# systemctl restart vsftpd
           

client

only westos2 upload

[[email protected] Desktop]# lftp 172.25.254.111 -u westos3
Password: 
lftp [email protected]:~> ls                  
drwxr-xr-x    2 0        1000            6 Aug 14 08:49 pub
drwxr-xr-x    2 0        0               6 Aug 14 08:50 westos3file
lftp [email protected]:/> cd pub/
lftp [email protected]:/pub> ls
lftp [email protected]:/pub> put /etc/passwd    ##westos3使用者不能上傳檔案
put: /etc/passwd: Access failed: 553 Could not create file. 

lftp [email protected]:/pub> quit
[[email protected] Desktop]# lftp 172.25.254.111 -u westos2      ##westos2使用者可以上傳檔案
Password: 
lftp [email protected]:~> ls                  
drwxrwxr-x    2 0        1000            6 Aug 14 08:49 pub
drwxr-xr-x    2 0        0               6 Aug 14 08:50 westos2file
lftp [email protected]:/> cd pub/
lftp [email protected]:/pub> put /etc/passwd
2576 bytes  transferred


           

繼續閱讀