CentOS搭建ftp服務器


    下面主要是說如何在centos下面配置一個ftp服務器,我找了幾個教程,每個教程都有各自的優點,我就結合了他們的優點來總結出一篇更好的教程啦,參考文章在末位給出,如有侵權,請聯系我,謝謝。其中有一個經驗教訓就是在防火牆那里,如果其他都配置好了,通過ftp客戶端還是連接不上的話,一般來說就是服務器的防火牆配置問題,可以直接把防火牆關閉來試一下,一般來說就可以了;但是確認了是防火牆的配置問題之后,防火牆還是要重新打開的(為了安全),然后再檢查防火牆ftp的具體配置。

 
安裝前准備

選用CentOS 7.2 64位的系統,阿里雲在公共鏡像中提供了該系統鏡像,用戶可直接在控制台中更換此系統。並通過遠程鏈接進入到系統中。

vsftpd是linux下的一款小巧輕快,安全易用的FTP服務器軟件,是一款在各個Linux發行版中最受推崇的FTP服務器軟件。

1.安裝vsftpd,直接yum 安裝就可以了

  1. yum install -y vsftpd

圖片20

出現下圖表示安裝成功。

圖片21

相關配置文件:

  1. cd /etc/vsftpd

圖片22

/etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件

/etc/vsftpd/ftpusers //黑名單,這個里面的用戶不允許訪問FTP服務器

/etc/vsftpd/user_list //白名單,允許訪問FTP服務器的用戶列表

啟動服務

chkconfig vsftpd on //設置開機自啟動

service vsftpd restart //重新啟動ftp服務

netstat -antup | grep ftp //查看ftp服務端口

圖片23

2.安裝完成之后就要重啟vsftpd服務


到vsftpd的主配置文件里面

把這個改為NO 默認是YES (改為NO 就是禁止匿名用戶登錄,不需要注釋)

同時按照下圖配置,不可以讓ftp用戶跳出自己的家目錄,否則太危險了,需要做限制,默認是注釋掉的,把#號去掉 然后重啟vsftpd。

(注意:這里也可以把chroot_list_file=/etc/vsftpd/chroot_list的注釋打開)

 

3.創建ftp用戶

(yuanfei這個用戶智能連接ftp無法登錄系統,默認家目錄是在var/www/html 文件夾下面)

給yuanfei這個用戶設置密碼

然后給家目錄修改權限,否則你無法上傳文件

4.修改selinux

默認是enforcing  把他修改為disabled

因為修改selinu后需要重啟服務,因為服務器不可以重啟所以執行上面這個命令,臨時修改selinux的策略,無需重啟!

 

5.重啟vsftpd服務,並且下次自動啟動

6.配置防火牆(要打開21端口)

打開/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables

在REJECT行之前添加如下代碼
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和關閉文件,重啟防火牆
service iptables start

(ps.這一步也可以直接關閉防火牆,但是不建議這樣做,關閉防火牆方法如下:



 
 
附錄1:如果以上配置防火牆還是不行的話,就按照以下方法嘗試:

基本的vsftpd服務配置好了。但是這樣配置完成后客戶端並不能連接上,主要應該是默認防火牆設置下,CentOS的防火牆是不開放ftp服務的,需要添加模塊和開放21端口才能提供ftp訪問。 
1.添加ip_conntrack_ftp 模塊

[root@localhost ~]# vi /etc/sysconfig/iptables-config

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

2.打開21端口

[root@localhost ~]# vi /etc/sysconfig/iptables

添加(注意這里添加要在REJECT行之前添加)

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3.重啟iptables使新的規則生效

[root@localhost ~]# service iptables restart

到此,應該是可以了,若軟件測試連接過程中,在用戶驗證的時候出現了錯誤503,應該是selinux設置的問題:可以用下面的命令檢查

[root@localhost ~]#getsebool -a |grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off

這是selinux的問題,我們只要打開ftp_home_dir的值開啟為on:,allow_ftpd_full_access也一同開啟即可。

[root@localhost ~]#setsebool -P ftp_home_dir 1
[root@localhost ~]#setsebool -P allow_ftpd_full_access 1
 

附錄2:介紹下vsftpd.conf的配置文件參數說明。

  1. cat /etc/vsftpd/vsftpd.conf

用戶登陸控制

參數 說明
anonymous_enable=YES 接受匿名用戶
no_anon_password=YES 匿名用戶login時不詢問口令
anon_root=(none) 匿名用戶主目錄
local_enable=YES 接受本地用戶
local_root=(none) 本地用戶主目錄

用戶權限控制

參數 說明
write_enable=YES 可以上傳(全局控制)
local_umask=022 本地用戶上傳文件的umask
file_open_mode=0666 上傳文件的權限配合umask使用
anon_upload_enable=NO 匿名用戶可以上傳
anon_mkdir_write_enable=NO 匿名用戶可以建目錄
anon_other_write_enable=NO 匿名用戶修改刪除
chown_username=lightwiter 匿名上傳文件所屬用戶名
 
http://www.linuxidc.com/Linux/2015-10/123848.htm
http://www.centoscn.com/CentosServer/ftp/2015/0803/5953.html

 

                      歡迎關注微信公眾號“ismallboy”,請掃碼並關注以下公眾號,並在公眾號下面回復"ftp”,獲得本文最新內容。

                                                           




免責聲明!

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



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