演示vsftpd服務匿名訪問模式、本地用戶模式的配置


文件傳輸協議(FTP,File Transfer Protocol

即能夠讓用戶在互聯網中上傳、下載文件的文件協議,而FTP服務器就是支持FTP傳輸協議的主機,要想完成文件傳輸則需要FTP服務端FTP客戶端的配合才行。

通常用戶使用FTP客戶端軟件向FTP服務器發起連接並發送FTP指令,服務器收到用戶指令后將執行結果返回客戶端。

FTP協議占用兩個端口號:

21端口:命令控制,用於接收客戶端執行的FTP命令。

20端口:數據傳輸,用於上傳、下載文件數據。

FTP數據傳輸的類型:

主動模式:FTP服務端主動向FTP客戶端發起連接請求。

被動模式:FTP服務端等待FTP客戶端的連接請求。

關於vsftpd的相關配置文件

用戶禁止登陸列表

/etc/vsftpd/ftpusers
/etc/vsftpd/user_list

主配置文件

/etc/vsftpd/vsftpd.conf

vsftpd程序配置文件參數的作用:

listen=[YES|NO]

是否以獨立運行的方式監聽服務。

listen_address=IP地址

設置要監聽的IP地址。

listen_port=21

設置FTP服務的監聽端口   21端口(ftp)  20端口(ftp-date)

 Vsftpd的驗證方式

vsftpd程序提供的FTP服務可選認證方式,分別為匿名訪問本地用戶虛擬用戶

匿名訪問:任何人無需驗證口令即可登入FTP服務端。

本地用戶:使用FTP服務器中的用戶、密碼信息。

虛擬用戶:創建獨立的FTP帳號資料。

顧名思義匿名訪問就是所有人均可隨意登入FTP服務,這樣自然會產生安全問題,一般用於存放公開的數據。

本地用戶虛擬用戶則需要用戶提供帳號及口令后才能登入FTP服務,更加的安全,而虛擬用戶則是最安全的。

 

 

 安裝vsftpd服務程序

# yum install vsftpd -y

 清空默認的防火牆默認規則:

# iptables -F

保存清空后的防火牆規則

# service iptables save

 

 匿名訪問模式

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

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

# 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

如果重啟vsftpd服務程序時沒有報錯,此時便可以使用FTP客戶機(192.168.27.200)嘗試登入FTP服務了

客戶機(192.168.27.200)系統中ftp命令默認沒有安裝,請執行”yum install ftp -y“即可安裝完畢

 

 

 上面操作中已經將防火牆規則清空,在vsftpd.conf文件中也已經允許匿名用戶創建目錄與寫入權限,那怎么會被拒絕了呢?

回想前面的參數細節,匿名訪問模式的FTP根目錄為/var/ftp

 

 

 原來匿名用戶的FTP根目錄所有者/組都是root,所以匿名用戶沒有寫入權限,那我們將所有者修改為ftp試試

# chown  ftp /var/ftp/pub

此時再用ftp命令嘗試登入FTP服務並創建文件:

ftp> mkdir files

550 Create directory operation failed    還是錯誤

查看所有與ftp相關的SELinux規則:

# 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

設置SELinux服務對ftp服務的訪問規則策略為允許

# setsebool -P ftpd_full_access=on

此時再來創建文件或目錄就沒有問題了:

[root@guoxiaoyan-hbza ~]# ftp 192.168.27.100

Connected to 192.168.27.100 (192.168.27.100).

220 (vsFTPd 3.0.2)

Name (192.168.27.100:root): anonymous

331 Please specify the password.

Password:敲擊回車

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>cd pub

250 Directory successfully changed.

ftp>mkdir files

257 "/pub/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.

注意:當完成本實驗后請還原虛擬機快照再進行下一個實驗,否則可能導致配置文件沖突而報錯

本地用戶模式

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

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

# 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

 

 

 重啟vsftpd服務程序時沒有報錯,此時便可以使用FTP客戶機(192.168.27.200)嘗試登入FTP服務了

我們先來看下ftpusersuser_list文件中禁止登陸用戶名單:vim /etc/vsftpd/user_list

 

 

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

# useradd linuxprobe

為linuxprobe用戶設置密碼:

(我的沒有問題  直接就出來了)如果再遇到了“操作被拒絕”,應該馬上想到SELinux

查看所有與ftp相關的SELinux規則:

# 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

設置SELinux對FTP服務的規則為允許:

# setsebool -P ftpd_full_access=on

 此時再來創建文件或目錄就沒有問題了:

 

 


免責聲明!

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



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