zoukankan      html  css  js  c++  java
  • 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”,获得本文最新内容。

                                                               



  • 相关阅读:
    ARM六种寻址方式的汇编实现
    生产者消费者
    哲学家问题
    linux进程的问题
    linux信号量使用
    linux进程创建
    Ubuntu下编写C语言程序
    Android使用图表库简单教程
    不需要SDK调用图灵机器人的方法
    robotframework接口测试实例
  • 原文地址:https://www.cnblogs.com/ismallboy/p/6785270.html
Copyright © 2011-2022 走看看