W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
相較于匿名開放模式,本地用戶模式要更安全,而且配置起來也很簡單。如果大家之前用的是匿名開放模式,現(xiàn)在就可以將它關(guān)了,然后開啟本地用戶模式。針對本地用戶模式的權(quán)限參數(shù)以及作用如表11-3所示。
表11-3 本地用戶模式使用的權(quán)限參數(shù)以及作用
參數(shù) | 作用 |
---|---|
anonymous_enable=NO | 禁止匿名訪問模式 |
local_enable=YES | 允許本地用戶模式 |
write_enable=YES | 設(shè)置可寫權(quán)限 |
local_umask=022 | 本地用戶模式創(chuàng)建文件的umask值 |
userlist_deny=YES | 啟用“禁止用戶名單”,名單文件為ftpusers和user_list |
userlist_enable=YES | 開啟用戶作用名單文件功能 |
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
5 dirmessage_enable=YES
6 xferlog_enable=YES
7 connect_from_port_20=YES
8 xferlog_std_format=YES
9 listen=NO
10 listen_ipv6=YES
11 pam_service_name=vsftpd
12 userlist_enable=YES
13 tcp_wrappers=YES
在vsftpd服務(wù)程序的主配置文件中正確填寫參數(shù),然后保存并退出。還需要重啟vsftpd服務(wù)程序,讓新的配置參數(shù)生效。在執(zhí)行完上一個實驗后還原了虛擬機的讀者,還需要將配置好的服務(wù)添加到開機啟動項中,以便在系統(tǒng)重啟自后依然可以正常使用vsftpd服務(wù)。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
按理來講,現(xiàn)在已經(jīng)完全可以本地用戶的身份登錄FTP服務(wù)器了。但是在使用root管理員登錄后,系統(tǒng)提示如下的錯誤信息:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): root
530 Permission denied.
Login failed.
ftp>
可見,在我們輸入root管理員的密碼之前,就已經(jīng)被系統(tǒng)拒絕訪問了。這是因為vsftpd服務(wù)程序所在的目錄中默認(rèn)存放著兩個名為“用戶名單”的文件(ftpusers和user_list)。不知道大家是否已看過一部日本電影“死亡筆記”(劉遄老師在上學(xué)期間的最愛),里面就提到有一個黑色封皮的小本子,只要將別人的名字寫進去,這人就會掛掉。vsftpd服務(wù)程序目錄中的這兩個文件也有類似的功能—只要里面寫有某位用戶的名字,就不再允許這位用戶登錄到FTP服務(wù)器上。
[root@linuxprobe ~]# cat /etc/vsftpd/user_list
1 # vsftpd userlist
2 # If userlist_deny=NO, only allow users in this file
3 # If userlist_deny=YES (default), never allow users in this file, and
4 # do not even prompt for a password.
5 # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
6 # for users that are denied.
7 root
8 bin
9 daemon
10 adm
11 lp
12 sync
13 shutdown
14 halt
15 mail
16 news
17 uucp
18 operator
19 games
20 nobody
[root@linuxprobe ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
1 root
2 bin
3 daemon
4 adm
5 lp
6 sync
7 shutdown
8 halt
9 mail
10 news
11 uucp
12 operator
13 games
14 nobody
果然如此!vsftpd服務(wù)程序為了保證服務(wù)器的安全性而默認(rèn)禁止了root管理員和大多數(shù)系統(tǒng)用戶的登錄行為,這樣可以有效地避免黑客通過FTP服務(wù)對root管理員密碼進行暴力破解。如果您確認(rèn)在生產(chǎn)環(huán)境中使用root管理員不會對系統(tǒng)安全產(chǎn)生影響,只需按照上面的提示刪除掉root用戶名即可。我們也可以選擇ftpusers和user_list文件中沒有的一個普通用戶嘗試登錄FTP服務(wù)器:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:此處輸入該用戶的密碼
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
550 Create directory operation failed.
在采用本地用戶模式登錄FTP服務(wù)器后,默認(rèn)訪問的是該用戶的家目錄,也就是說,訪問的是/home/linuxprobe目錄。而且該目錄的默認(rèn)所有者、所屬組都是該用戶自己,因此不存在寫入權(quán)限不足的情況。但是當(dāng)前的操作仍然被拒絕,是因為我們剛才將虛擬機系統(tǒng)還原到最初的狀態(tài)了。為此,需要再次開啟SELinux域中對FTP服務(wù)的允許策略:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on
劉遄老師再啰嗦幾句。在實驗課程和生產(chǎn)環(huán)境中設(shè)置SELinux域策略時,一定記得添加-P參數(shù),否則服務(wù)器在重啟后就會按照原有的策略進行控制,從而導(dǎo)致配置過的服務(wù)無法使用。
在配置妥當(dāng)后再使用本地用戶嘗試登錄下FTP服務(wù)器,分別執(zhí)行文件的創(chuàng)建、重命名及刪除等命令。操作均成功!
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:此處輸入該用戶的密碼
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
257 "/home/linuxprobe/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.
請注意:當(dāng)您完成本實驗后請還原虛擬機快照再進行下一個實驗,否則可能導(dǎo)致配置文件沖突而報錯。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: