Centos7安裝搭建FTP服務器(最簡便方法)

簡介:

vsftpd 是「very secure FTP daemon」的縮寫,安全性是它的一個最大的特色。linux

vsftpd 是一個 UNIX 類操做系統上運行的服務器的名字,它能夠運行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個徹底免費的、開放源代碼的ftp服務器軟件,支持不少其餘的 FTP 服務器所不支持的特徵。vim

好比:很是高的安全性需求、帶寬限制、良好的可伸縮性、可建立虛擬用戶、支持IPv六、速率高等。安全

vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特色是小巧輕快,安全易用。bash

 

特色:

①vsftpd 是以通常身份啓動服務,因此對於 Linux 系統的使用權限較低,對於Linux 系統的危害就相對的減低了。此外, vsftpd 亦利用 chroot() 這個函式進行改換根目錄的動做,使得系統工具不會被vsftpd 這支服務所誤用;
 
②任何須要具備較高執行權限的 vsftpd 指令均以一支特殊的上層程序( parent process ) 所控制 ,該上層程序享有的較高執行權限功能已經被限制的至關的低,並以不影響Linux 自己的系統爲準;
 
③全部來自 clients 端,想要使用這支上層程序所提供的較高執行權限之vsftpd 指令的需求,均被視爲『不可信任的要求』來處理,必須要通過至關程度的身份確認後,方可利用該上層程序的功能。例如chown(), Login 的要求等等動做;
 
④此外,上面提到的上層程序中,依然使用 chroot() 的功能來限制使用者的執行權限。

 

1.安裝vsftpd

環境:CentOS Linux release 7.6.1810 (Core)服務器

vsftpd版本:vsftpd.x86_64 0:3.0.2-25.el7 app

1.一、執行yum命令安裝

[root@Sungeek ~]# yum -y install vsftpd

1.二、修改配置文件

按照下面修改配置文件
tcp

[root@Sungeek ~]# cd /etc/vsftpd [root@Sungeek ~]# vim vsftpd.conf
#是否容許匿名,默認no anonymous_enable=NO #這個設定值必需要爲YES 時,在/etc/passwd內的帳號才能以實體用戶的方式登入咱們的vsftpd主機 local_enable=YES #具備寫權限 write_enable=YES #本地用戶建立文件或目錄的掩碼 local_umask=022 #當dirmessage_enable=YES時,能夠設定這個項目來讓vsftpd尋找該檔案來顯示訊息!您也能夠設定其它檔名! dirmessage_enable=YES #當設定爲YES時,使用者上傳與下載日誌都會被紀錄起來。記錄日誌與下一個xferlog_file設定選項有關 xferlog_enable=YES
xferlog_std_format=YES #上傳與下載日誌存放路徑 xferlog_file
=/var/log/xferlog #開啓20端口 connect_from_port_20=YES #關於系統安全的設定值: #ascii_download_enable=YES(NO) #若是設定爲YES ,那麼 client 就可使用 ASCII 格式下載檔案。 #通常來講,因爲啓動了這個設定項目可能會致使DoS 的攻擊,所以預設是NO。 #ascii_upload_enable=YES(NO) #與上一個設定相似的,只是這個設定針對上傳而言!預設是NO。 ascii_upload_enable=NO ascii_download_enable=NO
#經過搭配能實現如下幾種效果: #①當chroot_list_enable
=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,能夠切換到其餘目錄;未在文件中列出的用戶,不能切換到其餘目錄。 #②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其餘目錄;未在文件中列出的用戶,能夠切換到其餘目錄。 #③當chroot_list_enable=NO,chroot_local_user=YES時,全部的用戶均不能切換到其餘目錄。 #④當chroot_list_enable=NO,chroot_local_user=NO時,全部的用戶都可以切換到其餘目錄。 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #這個是pam模塊的名稱,咱們放置在/etc/pam.d/vsftpd pam_service_name=vsftpd #固然咱們都習慣支持TCP Wrappers的啦! tcp_wrappers=YES #不添加下面這個會報錯:500 OOPS: vsftpd: refusing to run with writable root inside chroot() allow_writeable_chroot=YES #ftp的端口號 listen_port=60021
#啓動被動式聯機(passivemode) pasv_enable=YES #上面兩個是與passive mode 使用的 port number 有關,若是您想要使用65400到65410 這 11 個 port 來進行被動式資料的鏈接,能夠這樣設定 pasv_min_port=65400 pasv_max_port=65410 #FTP訪問目錄 local_root=/data/ftp/

1.三、添加防火牆開啓相關端口

這裏要是測試能夠先關閉防火牆ide

[root@tsemongo01 vsftpd]# systemctl stop firewalld

若是是正式環境,最好開啓防火牆,添加相應端口工具

#添加主端口 [root@tsemongo01 vsftpd]# firewall-cmd --permanent --zone=public --add-port=60021/tcp success #添加被動端口 [root@tsemongo01 vsftpd]# firewall-cmd --permanent --zone=public --add-port=65400-65410/tcp success [root@tsemongo01 vsftpd]# firewall-cmd --reload success

二、建立FTP用戶

添加FTP用戶命令:useradd XXX測試

設置FTP用戶密碼:passwd XXX

[root@Sungeek vsftpd]# useradd -d /data/ftp/ -s /sbin/nologin ftpuser [root@Sungeek vsftpd]# passwd ftpuser

查看FTP用戶是否設置不能經過SSH登陸,只能使用FTP

[root@Sungeek vsftpd]# vim /etc/passwd

找到建立的用戶把/bin/bash修改成/sbin/nologin

設置用戶訪問權限:

[root@Sungeek vsftpd]# chown -R ftpuser /data/ftp

三、設置vsftpd服務開機啓動

[root@Sungeek ~]# systemctl enable vsftpd.service

四、啓動暫停查看服務狀態命令

[root@Sungeek ~]# systemctl start vsftpd.service [root@Sungeek ~]# systemctl status vsftpd.service

 

五、安裝ftp客戶端驗證可否鏈接

隨便用一個ftp客戶端訪問測試是否鏈接成功便可!我用的是FileZilla Client

六、常見問題

6.一、問題1:

這種狀況是說明配置文件裏面設置的chroot_list_file=/etc/vsftpd/chroot_list沒找到這個文件

直接去/etc/vsftpd目錄cp一個user_list或者把配置文件裏面更名就行

6.二、問題2:

 這種狀況是selinux沒有關閉,關閉selinux便可

[root@localhost ~]# vim /etc/selinux/config SELINUX=disabled

更多詳細的vsftpd的配置說明:https://baike.baidu.com/item/vsftpd/5254770?fr=aladdin

相關文章
相關標籤/搜索