vsftpd 安裝以及三種登陸方式

joshua-earle-4UexhWLVcnY-unsplash.jpg

(圖片來自bing壁紙)

vsftpd服務安裝及使用

1.安裝

\color{red}{首先要記得將防火墻和selinux關(guān)閉}

yum -y install vsftpd

2.啟動

systemctl start vsftpd

3.登陸

1) 匿名用戶登陸

主配置文件路徑: /etc/vsftpd/vsftpd.conf

a.首先要在配置文件將 anonymous_enable=YES 打開

首先另外開啟一臺Linxu服務器作為客戶端,或者在Windows安裝ftp軟件,這里我們用前者,下載安裝ftp客戶端軟件: yum -y install ftp

b.在客戶端輸入: ftp ftp 服務器的 ip

賬號:ftp或者anonymous 密碼:空(直接回車)

默認家目錄是: /var/ftp ,下面有一個pub文件夾,不建議在此目錄下操作,最好新建一個。默認是可以下載文件的,但不能上傳。\color{red}{能否上傳文件取決于主配置文件以及該目錄的權(quán)限}

修改主配置文件,將anon_upload_enable=YES注釋去掉。將我們新建的目錄為其他人添加w權(quán)限。重啟服務即可生效。

但此時上傳過的文件是無法下載的,因為其文件的權(quán)限為:
image.png

當我們下載時候顯示:

image.png

提示我們沒有權(quán)限去打開文件,因此我們對于其他用戶而言沒有r權(quán)限,因此修改主配置文件:\color{red}{添加 anon\_umask=022}

我們還可以修改配置文件是的匿名用戶可以創(chuàng)建目錄,刪除,覆蓋等操作。

anon_mkdir_write_enable=YES  
anon_other_write_enable=YES

2) 本地用戶登陸

a.首先要添加一個用戶用作登陸,為了安全,建議添加一個系統(tǒng)用戶。

useradd -s /sbin/nologin ftpuser

passwd ftpuser

b.修改主配置文件,\color{red}{將chroot\_local\_user=YES注釋去掉(必須)},如果不取消注釋,用戶登陸到服務器后,可隨意切換目錄,后果不可控。

此時用新創(chuàng)建的ftpuser用戶登陸,輸如正確密碼后不能登陸,將 /etc/pam.d/vsftpd 中 auth required pam_shells.so 注釋掉(原因目前還不知....),但是注釋掉之后登陸還是會有錯誤,顯示:500 OOPS: vsftpd: refusing to run with writable root inside chroot() ,是因為 從2.3.5之后,vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權(quán)限了!如果檢查發(fā)現(xiàn)還有寫權(quán)限,就會報該錯誤。 解決方法:

1.將 /home/ftpuser 用戶家目錄的寫權(quán)限去除 chmod -w /home/ftpuser,但這樣就不能上傳文件了,因此推薦第二種方法。

2.在主配置文件中添加 allow_writeable_chroot=YES .

3.登陸ftp服務器。

若是想要禁止某些本地用戶登陸到ftp服務器:

userlist_enable=YES

userlist_deny=YES

只允許名單中的用戶登陸,將上述配置第二條改為NO即可。

在 /etc/vsftpd/ftpusers 中的用戶,也是無法登陸到服務器的,該文件優(yōu)先級比配置文件中的要高,無需重啟,立即生效。

對于有些用戶,我們允許其在登陸到ftp服務器后允許其能夠隨意切換目錄:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

由于是本地用戶,因此在登陸到服務器后,可以上傳下載,以及創(chuàng)建目錄....都不需要在配置文件中配置了。

3)虛擬用戶登陸

上述登陸方式,不能實現(xiàn)個性化配置,比如有幾個用戶,想要讓每個用戶的權(quán)限都不同,因此需要用到虛擬用戶。

在虛擬用戶登陸之前,要先將之前的匿名用戶的配置要注釋掉,因為虛擬用戶默認使用的是匿名用戶的配置,如果不注釋,那么使用的是全局配置,每個用戶自己的配置便不生效.

a.建立虛擬用戶文件(vuser.txt),奇數(shù)行為用戶,偶數(shù)行為密碼

zhangsan

123456

...........

b.將上述 vuser.txt 轉(zhuǎn)換成數(shù)據(jù)庫文件: db_load -T -t hash -f vuser.txt vuser.db,并將文件權(quán)限改為600(必須)

c.由于是虛擬用戶,我們要建立一個真正的Linux的用戶來提供登陸的目錄給虛擬用戶,該用戶僅僅提供登陸目錄,因此不需要設置密碼:useradd -d /var/ftproot -s /sbin/nologin virtual , 同樣設置為系統(tǒng)用戶。

d.在配置文件中添加支持虛擬用戶的條目:

guest_enable=YES

guest_username=virtual

user_config_dir=/etc/vsftpd/dir

e.由于 ftp 服務器支持只支持本地和匿名用戶的pam認證方式,不支持虛擬用戶,因此需要手動添加 pam 認證:vim /etc/pam.d/vsftpd

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

account  sufficient  pam_userdb.so  db=/etc/vsftpd/vuser (之前編寫的數(shù)據(jù)庫文件,不需要加db后綴,自動識別)注意: sufficient 本來是required,但如果這樣寫本地和虛擬用戶不能共存了,具體原因目前不清楚.....

f.最后配置每個用戶的單獨的配置文件,在 /etc/vsftpd/dir 下分別建立以虛擬用戶為名字的文件,里面寫入各自的權(quán)限(跟匿名用戶一樣)。

g. 重啟服務,分別用不同的用戶登陸驗證。

記得將匿名用戶的家目錄其他人給與相應權(quán)限

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容