Centos7.6利用vsftpd搭建FTP服務器詳細教程(終於跳出坑了)

centos7搭建FTP服務器,詳細教程

一、關閉防火牆

systemctl status firewalld.service  #查看防火牆狀態
systemctl stop firewalld.service   #停止防火牆服務
systemctl disable firewalld.service #關閉防火牆開啓自啓動
vi /etc/selinux/config   #把文件中的SELINUX=enforcing 改爲SELINUXdisabled

等待搭建成功後再開啓防火牆,再開端口。要不然會帶來很多不必要的麻煩。

二、安裝vsftpd並啓動服務

1、安裝vsftpd

yum install -y vsftpd

2、啓動服務與設置開機啓動ftp

systemctl start vsftpd.service 啓動服務
systemctl enable vsftpd.service 設置開機自動啓動服務

三、編輯配置文件 vsftpd.conf

   vi /etc/vsftpd/vsftpd.conf  #編輯配置文件

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES
#chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO
listen=YES
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_min_port=6000
pasv_max_port=6010

修改完之後,需要重啓FTP服務刷新配置:

systemctl start vsftpd.service   #重啓FTP服務

四、新建用戶並設置密碼

useradd -d /home/helloftp -s /bin/bash helloftp

新建用戶:helloftp (你可以改成你自己的用戶名)

passwd helloftp

設置用戶helloftp密碼

五、允許新建用戶登錄FTP

vi /etc/vsftpd/user_list

編輯/etc/vsftpd/user_list 這個是允許登錄ftp的名單

搭建成功


特別注意:
1、設置了 chroot_local_user=YES 後,用戶不能登錄,原因是沒設置 allow_writeable_chroot=YES
2、重啓服務器後無法連接FTP,原因是你防火牆沒有關閉徹底。
3、關於本vsftpd.conf配置文件的詳細解析:

anonymous_enable=NO #是否開啓匿名用戶,匿名都不安全,不要開

local_enable=YES #允許本機賬號登錄FTP

write_enable=YES #允許賬號都有寫操作

local_umask=022 
#意思是指:文件目錄權限:777-022=755,文件權限:666-022=644,這有點反人類了,並且沒有人跟我說是減去的。注意理解!

#anon_upload_enable=YES #匿名用戶是否有上傳文件的功能,不要開

#anon_mkdir_write_enable=YES #匿名用戶是否有創建文件夾的功能,不要開

dirmessage_enable=YES #進入某個目錄的時候,是否在客戶端提示一下

xferlog_enable=YES #日誌記錄

connect_from_port_20=YES #開放port模式的20端口的連接

#chown_uploads=YES #允許沒人認領的文件上傳的時候,更改掉所屬用戶

#chown_uploads=YES的前提下,所屬的用戶
#chown_username=whoever

#xferlog_file=/var/log/xferlog #日誌存放的地方

xferlog_std_format=YES #日誌成爲std格式

#idle_session_timeout=600 #用戶多久不管,服務器會主動斷開連接,單位秒

#data_connection_timeout=120 #數據連接超時

#以 ftpsecure 作爲此一服務執行者的權限。
#因爲 ftpsecure 的權限相當的低,因此即使被入侵,入侵者僅能取得nobody 的權限喔!
#nopriv_user=ftpsecure

#async_abor_enable=YES #異步停用,由客戶發起

#ascii_upload_enable=YES #使用ascii格式上傳文件

#ascii_download_enable=YES #使用ascii格式下載文件

#ftpd_banner=Welcome to blah FTP service  #歡迎詞

#deny_email_enable=YES #以anonymous用戶登錄時候,是否禁止掉名單中的emaill密碼。

#banned_email_file=/etc/vsftpd/banned_emails  #以anonymous用戶登錄時候,所禁止emaill密碼名單。


chroot_local_user=YES   #限制用戶只能在自己的目錄活動

#chroot_list_enable=YES   #例外名單,如果是YES的話,這個有點怪,不懂別亂開,上面的選項會跟這個名單反調(會被上面的選項影響)。
#chroot_list_file=/etc/vsftpd/chroot_list

ls_recurse_enable=NO #是否允許使用ls -R等命令

listen=YES  #監聽ipv4端口,開了這個就說明vsftpd可以獨立運行,不用依賴其他服務。

#listen_ipv6=YES    #監聽ipv6端口,還沒普及呢!

pam_service_name=vsftpd  #pam模塊的名稱,放置在 /etc/pam.d/vsftpd ,認證用

userlist_enable=YES  #使用允許登錄的名單

userlist_deny=NO  #限制允許登錄的名單,前提是userlist_enable=YES,其實這裏有點怪~!

allow_writeable_chroot=YES  #允許 限制在自己的目錄活動的用戶 擁有寫權限

tcp_wrappers=YES
#Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 爲由 inetd 生成的服務提供了增強的安全性。


被動模式端口範圍:

pasv_min_port=6000 (0爲隨機分配)
pasv_max_port=6010(這兩項定義了可以同時執行下載鏈接的數量。)

注意:linux客戶端默認使用被動模式,windows 客戶端默認使用主動模式。在ftp客戶端中執行"passive"來切換數據通道的模式。也可以使用"ftp -A ip"直接使用主動模式。主動模式、被動模式是有客戶端來指定的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章