zoukankan      html  css  js  c++  java
  • Linux CentOS安装搭建FTP文件服务

    本文环境:centos7,IP=192.168.1.11

    1.安装vsftpd和默认配置启动

      1.1 安装vsftpd

    yum install -y vsftpd

      1.2 启动vsftpd

    systemctl start vsftpd

    查看vsftpd状态和运行

    systemctl status vsftpd

    或者通过端口占用查看

    netstat -nltp | grep 21

    2.配置vsftpd

    2.1 配置路径

    vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

    • vsftpd.conf 为主要配置文件
    • ftpusers 配置禁止访问 FTP 服务器的用户列表
    • user_list 配置用户访问控制

    以下需要修改vsftpd.conf,所以都是基于使用

    vim /etc/vsftpd/vsftpd.conf

    2.2 配置端口

      2.2.1 添加要更改的监听端口,可以在最下面添加配置

    #remote_charset=CP1251
    #
    # Enable this options if you have double "я"
    #
    #double_377=0

    listen_port=221

    保存退出

      2.2.2 修改系统端口管理的services

    vim /etc/services

    将默认的21端口更改成自己的端口

    # 21 is registered to ftp, but also used by fsp
    ftp             221/tcp
    ftp             221/udp          fsp fspd

    2.3 禁用匿名用户

    # 禁用匿名用户将 YES 改为 NO
    anonymous_enable=NO

     2.4 禁止用户切换目录

    # 禁止切换根目录,解除注释
    chroot_local_user=YES

    3 重新启动vsftpd

    systemctl restart vsftpd

    注意:可能很多人和我一样,遇到一个无法正常启动的原因,如下解决。

    a. 粗暴关闭防火墙或者放开端口

    systemctl stop Firewalld

    b. 关闭Linux新安全子系统SELinux(Security-Enhanced Linux)

    查看SELinux运行状态

    sestatus -v

    SELinux status:  enabled就是开启的;disabled就是关闭

    开启的时候我们还需要看它的模式(Current mode),它有三种模式

    enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了;

    permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取;

    disabled:关闭,SELinux 并没有实际运作。

    所以我们更改模式即可解决:

    setenforce 0

    优点:一条语句及时生效;

    缺点:系统重起后恢复为enforcing模式。(可以自行搜索开机不恢复的方式,修改/etc/selinux/config文件,需要重启机器,此处就不罗列了)

    此时再重启vsftpd,应该运行成功。

    4. 添加FTP用户和管理

      4.1 创建一个用户 ftpuser

    useradd ftpuser

      为用户 ftpuser 设置密码

    echo "password" | passwd ftpuser --stdin

    4.2 限制ftpuser仅有ftp访问权限

    限制用户 ftpuser只能通过 FTP 访问服务器,而不能直接登录服务器:

    usermod -s /sbin/nologin ftpuser

    4.3 为ftpuser分配主目录

         为用户 ftpuser创建主目录并约定:

        /data/ftp 为主目录, 该目录不可上传文件 
        /data/ftp/pub 文件只能上传到该目录下

    创建相关的目录

    mkdir -p /data/ftp/pub

    4.4 设置访问权限

    chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

    设置用户主目录

    usermod -d /data/ftp ftpuser

    5 访问ftp,验证ftp

    可以通过资源管理器或者浏览器访问:

    ftp://ftpuser:password@192.168.1.11/pub

     5.1 常见问题解决

    很多时候服务正常启动了,但是死活连不上,需要查看防火墙状态,是否是防火墙阻碍了

    systemctl status Firewalld

    好,那我们停掉防火墙

    systemctl stop Firewalld

    可能出现了好转,服务能访问了,但是咱们想防火墙不能随便关,是否可以一起存在呢,开放端口可以吗?

    ↓注意:先打开防火墙,然后执行一下命令,每次cmd更改,都需要reload规则。

    firewall-cmd --zone=public --add-port=21/tcp --permanent
    firewall-cmd --zone=public --add-port=21/udp --permanent

    firewall-cmd   --reload

    干脆来一个全的,21的端口开放。可能有人还会遇到我一样的问题,不行。。。,是不是防火墙会拦住服务呢?

    firewall-cmd --zone=public --add-service=ftp --permanent

    firewall-cmd   --reload

    终于,我这的问题解决了。

    总结:本人遇到的问题,从网站上罗列下来的随笔。

  • 相关阅读:
    mongodb删除指定字段
    nodejs地理坐标转换
    浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)
    利用Django进行微信支付接口的开发
    SpringBoot常用注解
    构建一个敏感词字典树
    Java异常统一处理
    [一天一个小知识]instanceof
    [总结]实现表格中对checkbox的操作
    小程序的数据绑定
  • 原文地址:https://www.cnblogs.com/DjangoBlogs/p/11024472.html
Copyright © 2011-2022 走看看