CentOS搭建ftp服務器

  下面主要是說如何在centos下面配置一個ftp服務器,我找了幾個教程,每一個教程都有各自的有點,我就結合了他們的優勢來總結出一篇更好的教程啦,參考文章在末位給出,若有侵權,請聯繫我,謝謝。其中有一個經驗教訓就是在防火牆那裏,若是其餘都配置好了,經過ftp客戶端仍是鏈接不上的話,通常來講就是服務器的防火牆配置問題,能夠直接把防火牆關閉來試一下,通常來講就能夠了;可是確認了是防火牆的配置問題以後,防火牆仍是要從新打開的(爲了安全),而後再檢查防火牆ftp的具體配置。html

 
安裝前準備

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

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

1.安裝vsftpd,直接yum 安裝就能夠了安全

  1. yum install -y vsftpd

圖片20

出現下圖表示安裝成功。服務器

圖片21

相關配置文件:less

  1. cd /etc/vsftpd

圖片22

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

/etc/vsftpd/ftpusers //黑名單,這個裏面的用戶不容許訪問FTP服務器測試

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

啓動服務阿里雲

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這個用戶設置密碼

 
usermod -a -G ftptest root  添加到root 用戶組
 
chown ftptest:root /var/www/html           添加文件權限 ,用戶:組

而後給家目錄修改權限,不然你沒法上傳文件

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.這一步也能夠直接關閉防火牆,可是不建議這樣作,關閉防火牆方法以下:



7.不能上傳修改權限:chmod 777 -R /var/www
 
 
附錄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
相關文章
相關標籤/搜索