CentOS搭建ftp服务器

    下面主要是说如何在centos下面配置一个ftp服务器,我找了几个教程,每一个教程都有各自的有点,我就结合了他们的优势来总结出一篇更好的教程啦,参考文章在末位给出,若有侵权,请联系我,谢谢。其中有一个经验教训就是在防火墙那里,若是其余都配置好了,经过ftp客户端仍是链接不上的话,通常来讲就是服务器的防火墙配置问题,能够直接把防火墙关闭来试一下,通常来讲就能够了;可是确认了是防火墙的配置问题以后,防火墙仍是要从新打开的(为了安全),而后再检查防火墙ftp的具体配置。

安装前准备

选用CentOS 7.2 64位的系统,阿里云在公共镜像中提供了该系统镜像,用户可直接在控制台中更换此系统。并经过远程连接进入到系统中。html

vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。linux

1.安装vsftpd,直接yum 安装就能够了centos

   
   
   
   
   
yum install -y vsftpd

图片20

出现下图表示安装成功。安全

图片21

相关配置文件:服务器

   
   
   
   
   
cd /etc/vsftpd

图片22

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

/etc/vsftpd/ftpusers //黑名单,这个里面的用户不容许访问FTP服务器测试

/etc/vsftpd/user_list //白名单,容许访问FTP服务器的用户列表ui

启动服务阿里云

chkconfig vsftpd on //设置开机自启动spa

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的配置文件参数说明。

   
   
   
   
   
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


相关文章
相关标签/搜索