FTP三種訪問模式


FTP匿名訪問模式是比較不安全的服務模式,尤其在真實的工作環境中千萬不要存放敏感的數據,以免泄露。

vsftpd程序默認已經允許匿名訪問模式,我們要做的就是開啟匿名用戶的上傳和寫入權限,寫入下面的參數:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

參數

作用

anonymous_enable=YES

允許匿名訪問模式。

anon_umask=022

匿名用戶上傳文件的umask值。

anon_upload_enable=YES

允許匿名用戶上傳文件

anon_mkdir_write_enable=YES

允許匿名用戶創建目錄

anon_other_write_enable=YES

允許匿名用戶修改目錄名或刪除目錄

 

 

確認填寫正確后保存並退出vsftpd.conf文件,然后重啟vsftpd服務程序並設置為開機自啟動。

 systemctl restart vsftpd
systemctl enable vsftpd

 

匿名用戶沒有寫入權限,那我們將所有者修改為ftp

 chown  ftp /var/ftp/pub(訪問的文件)

 

在客戶端嘗試登入FTP服務:

首先安裝ftp客戶端:yum install ftp -y

虛擬機登陸:

ftp 192.168.10.10

 

 

 物理機登陸

 

 

 

 

本地用戶模式

既然要使用本地用戶模式,而本地用戶模式確實要比匿名訪問模式更加的安全,所以本實驗中會關閉匿名訪問模式

vsftpd服務程序默認已經允許本地用戶模式,我們要做的是添加設置本地用戶模式權限的參數:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

參數

作用

anonymous_enable=NO

禁止匿名訪問模式。

local_enable=YES

允許本地用戶模式。

write_enable=YES

設置可寫入權限。

local_umask=022

本地用戶模式創建文件的umask值。

userlist_deny=YES

參數值為YES即禁止名單中的用戶,參數值為NO則代表僅允許名單中的用戶。

userlist_enable=YES

允許“禁止登陸名單”,名單文件為ftpusers與user_list。

 

 

確認填寫正確后保存並退出vsftpd.conf文件,然后重啟vsftpd服務程序並設置為開機自啟動。

 systemctl restart vsftpd
 systemctl enable vsftpd

ftpusersuser_list文件中禁止登陸用戶名單:

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

 

vsftpd服務為了讓FTP服務更加的安全,默認禁止登入root,那么創建個普通用戶吧:

 useradd hzk

為hzk用戶設置密碼:

passwd hzk

 

 

 

在客戶端嘗試登入FTP服務:

ftp 192.168.5.100

 

 虛擬機登入:

 

 

虛擬用戶模式

因為虛擬用戶模式的帳號口令都不是真實系統中存在的,所以只要配置妥當虛擬用戶模式會比本地用戶模式更加安全,但是Vsftpd服務配置虛擬用戶模式的操作步驟相對復雜一些,具體流程如下:

第1步:建立虛擬FTP用戶數據庫文件。

第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。

第3步:建立支持虛擬用戶的PAM認證文件。

第4步:在vsftpd.conf文件中添加支持配置。

第5步:為虛擬用戶設置不同的權限。

第6步:重啟vsftpd服務,驗證實驗效果。

 

第1步:建立虛擬FTP用戶數據庫文件。

切換至vsftpd程序目錄:

cd /etc/vsftpd/

創建用於生成FTP用戶數據庫的原始帳號和密碼文件

vim vuser.list

//單數行為帳號,雙數行為密碼。

 

 

 

使用db_load命令用HASH算法生成FTP用戶數據庫文件vuser.db:

db_load -T -t hash -f vuser.list vuser.db

 

 

 

查看數據庫文件的類型:

 file vuser.db

vuser.db: Berkeley DB (Hash, version 9, native byte-order)

FTP用戶數據庫內容很敏感,所以權限給小一些:

[root@linuxprobe vsftpd]# chmod 600 vuser.db

刪除原始的帳號和密碼文件:

 rm -f vuser.list

 

第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。

創建用戶virtual並設置為不允許登陸系統並定義該用戶的家目錄:

useradd -d /var/ftproot -s /sbin/nologin virtual

查看該用戶的家目錄權限:

 ls -ld /var/ftproot/

drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/

為保證其他用戶可以訪問,給予rwxr-xr-x權限:

 chmod -Rf 755 /var/ftproot/

 

 

第3步:建立支持虛擬用戶的PAM認證文件:

vim /etc/pam.d/vsftpd.vu

//參數db用於指向剛剛生成的vuser.db文件,但不要寫后綴。

auth       required     pam_userdb.so db=/etc/vsftpd/vuser

account    required     pam_userdb.so db=/etc/vsftpd/vuser

 

 

第4步:在vsftpd.conf文件中添加支持配置。
既然要使用虛擬用戶模式,而虛擬用戶模式確實要比匿名訪問模式更加的安全,配置的同時也關閉匿名開放模式

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

 

參數

作用

anonymous_enable=NO

禁止匿名開放模式。

local_enable=YES

允許本地用戶模式。

guest_enable=YES

開啟虛擬用戶模式。

guest_username=virtual

指定虛擬用戶帳號。

pam_service_name=vsftpd.vu

指定pam文件。

allow_writeable_chroot=YES

允許禁錮的FTP根目錄可寫而不拒絕用戶登入請求。

 

 

 

 

 

 

第5步:為虛擬用戶設置不同的權限
現在不論是linuxprobe還是blackshield帳戶,他們的權限都是相同的——默認不能上傳、創建、修改文件,如果希望用戶blackshield能夠完全的管理FTP內的資料,就需要讓FTP程序支持獨立的用戶權限配置文件了:
指定用戶獨立的權限配置文件存放的目錄:

 vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir

 

 

創建用戶獨立的權限配置文件存放的目錄:

 mkdir /etc/vsftpd/vusers_dir/

切換進入到該目錄中:

cd /etc/vsftpd/vusers_dir/

創建空白的linuxprobe1的配置文件:

touch linuxprobe1

指定linuxprobe1用戶的具體權限:

vim linuxprobe1

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

 

 

 

第6步:重啟vsftpd服務,驗證實驗效果。
確認填寫正確后保存並退出vsftpd.conf文件,重啟vsftpd程序並設置為開機后自動啟用:

systemctl restart vsftpd
 systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service

虛擬機/客戶機登入:

mkdir files

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM