vsftpd

itk發表於2024-07-30

vsftpd

一、安裝

yum -y install vsftpd

二、配置vsftpd

 egrep -v "^#|^$" /etc/vsftpd/vsftpd.conf 
 # 允許匿名使用者登入,預設NO
anonymous_enable=YES
# 指定匿名使用者的根目錄
anon_root=/mnt/rhd/ftp/ftpuser
# 允許本地使用者登入
local_enable=YES
# 允許寫入操作
write_enable=YES
# 設定本地使用者上傳檔案的umask值
local_umask=022
# 允許匿名使用者上傳檔案
anon_upload_enable=YES
# 允許匿名使用者建立目錄
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
# 允許從埠20進行連線
connect_from_port_20=YES
xferlog_std_format=YES
# 指定vsftpd監聽模式
listen=YES
# 指定PAM服務名稱
pam_service_name=vsftpd.pam  
userlist_enable=YES
tcp_wrappers=YES
# 啟用被動模式
pasv_enable=YES
# 設定被動模式最大最小埠號
pasv_min_port=30000
pasv_max_port=30999
# 指定使用者配置檔案目錄
user_config_dir=/etc/vsftpd_user_conf  
user_sub_token=$USER
# 啟用來賓使用者的支援
guest_enable=YES
guest_username=public
allow_writeable_chroot=YES
reverse_lookup_enable=NO




# cat /etc/vsftpd_user_conf/ftpuser
# 設定本地使用者的根目錄
local_root=/mnt/rhd/ftp/$USER
#write_enable=YES
anon_umask=022
#anon_world_readable_only=NO
#anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES


# cat /etc/pam.d/vsftpd.pam 
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

啟動

systemctl enable vsftpd --now

防火牆配置

iptables -I INPUT  -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT    
iptables -I INPUT  -p tcp -m state --state NEW -m tcp --dport 30000:30999 -j ACCEPT 

主被動模式

1、PORT(主動)模式
是FTP伺服器“主動”去連線客戶端的資料埠來傳輸資料,其過程具體來說就是:客戶端透過訪問服務端的21埠,然後客戶端分配一個埠供ftp服務端獲取資料,然後服務端透過20埠主動到客戶端指定埠獲取資料,20為伺服器的出向埠
此模式,防火牆只需要開放21埠的對外訪問策略

2、PASV(被動)模式
FTP伺服器“被動”等待客戶端來連線自己的資料埠,其過程具體是:客戶端透過訪問服務端的21埠,然後客戶端提交PASV命令,讓服務端分配一個用於傳輸資料的埠,此埠範圍為vsftpd.conf配置的pasv_min_port-pasv_max_port,然後客戶端透過分配的埠上傳資料。(注意此模式下的FTP伺服器不需要開啟tcp 20埠)
此模式,防火牆需要開放21埠的對外訪問策略和pasv_min_port - pasv_max_port埠範圍內的訪問策略



配置
pasv_enable=YES       # 開啟被動模式
pasv_min_port=30000   # pasv連線模式時的最小埠
pasv_max_port=30999   # pasv連線模式時的最大埠

pasv_enable=NO        # 關閉被動模式

相關文章