zoukankan      html  css  js  c++  java
  • 在CentOS7上安装ftp服务器用于保存服务端上传的图片。

    1、CentOS卸载vsftpd的方法

    如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务。

    1.1 查找vsftpd服务

    [root@localhost /]# rpm -aq vsftpd

    返回结果显示:

    vsftpd-3.0.2-21.el7.x86_64 #此处是查找vsftpd的返回结果

    表示此服务期之前已经安装过vsftpd服务。

    1.2 删除查找到的vsftpd服务

    注:在卸载vsftpd之前,先停止vsftpd

    [root@localhost /]# /sbin/service vsftpd stop

    卸载vsftpd:

    [root@localhost /]# rpm -e vsftpd-3.0.2-21.el7.x86_64

    返回结果显示:

    warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave #删除时将备份vsftp的用户列表文件

    1.3 输入验证命令,验证vsftpd服务是否已经删除

    [root@localhost /]# /sbin/service vsftpd stop
    Redirecting to /bin/systemctl stop  vsftpd.service
    Failed to stop vsftpd.service: Unit vsftpd.service not loaded. #找不到vsftpd
    [root@localhost /]# /sbin/service vsftpd start
    Redirecting to /bin/systemctl start  vsftpd.service
    Failed to start vsftpd.service: Unit not found. #找不到vsftpd

    如果输入以上两个命令都显示找不到vsftpd服务的话,那就证明已经卸载成功。

    2、安装vsftpd组件

    [root@localhost /]# yum -y install vsftpd

    2.1 启动ftp

    [root@localhost home]# systemctl start vsftpd.service

    2.2 放开21端口

    [root@localhost /]# firewall-cmd --zone=public --add-port=21/tcp --permanent
    [root@localhost /]# firewall-cmd --reload

    3、vsftpd服务的详细配置

    3.1 关闭匿名用户

    [root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

    在vsftpd.conf配置文件中修改以下三项:

    anonymous_enable=NO
    #anon_upload_enable=YES
    #anon_mkdir_write_enable=YES

    然后重启ftp服务:

    [root@localhost vsftpd]# systemctl restart  vsftpd.service

    通过配置重启之后,匿名用户不可以登录了。

    3.2 建立ftp虚拟宿主账户

    新建一个不能登录系统用户. 只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home下:

    [root@localhost vsftpd]# useradd ftpuser -s /sbin/nologin

    为ftpuser用户设置密码:

    [root@localhost /]# passwd ftpuser

    3.3 查看ftp的状态

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

    显示结果:

    ftpd_anon_write --> off
    ftpd_connect_all_unreserved --> off
    ftpd_connect_db --> off
    ftpd_full_access --> off
    ftpd_use_cifs --> off
    ftpd_use_fusefs --> off
    ftpd_use_nfs --> off
    ftpd_use_passive_mode --> off
    httpd_can_connect_ftp --> off
    httpd_enable_ftp_server --> off
    tftp_anon_write --> off
    tftp_home_dir --> off

    将上面红色两项状态设置为on:

    [root@localhost vsftpd]# setsebool -P allow_ftpd_full_access on
    [root@localhost vsftpd]# setsebool -P tftp_home_dir on

    3.4 配置vsftpd.conf

    限制系统用户锁定在/home/ftpuser目录

    如果设置为
    chroot_local_user=YES
    chroot_list_enable=YES(这行可以没有, 也可以有)
    chroot_list_file=/etc/vsftpd.chroot_list
    那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
    即, 可以浏览其主目录的上级目录.
    
    所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在
    文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
    或者, 设置如下
    chroot_local_user=NO
    chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
    chroot_list_file=/etc/vsftpd.chroot_list
    然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)
    中即可(一行一个用户名).
     
    [root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

    这里有两种方案,我采用第二种,配置如下:

    chroot_local_user=NO
    chroot_list_enable=YES #(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
    chroot_list_file=/etc/vsftpd/chroot_list

    默认chroot_list是不存在的

    [root@localhost vsftpd]# vim /etc/vsftpd/chroot_list

    然后加入 ftpuser ,表示只有ftpuser不能访问上级目录,重启vsftpd。

    3.5 修改权限

    修改/home/ftpuser 的权限为不可写

    [root@localhost vsftpd]# chmod a-w /home/ftpuser/taotao

    这是因为我们在上面将/home/ftpuser/taotao文件的权限改为不可写了,那么我们在这个目录下创建一个images文件夹,用来上传文件。并将权限赋值给 ftpuser 用户

    [root@localhost taotao]# mkdir images
    [root@localhost images]# chown ftpuser images

    4、开启PASV(被动模式)

    在 /etc/vsftpd/vsftpd.conf 的最下面加入

    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=30999

    并且在userlist_enable=YES文件后面添加

    userlist_deny=NO
    userlist_file=/etc/vsftpd/user_list

    开启防火墙:

    [root@localhost taotao]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent 
    [root@localhost taotao]# firewall-cmd --reload

    这样就可以使用ftp服务器上传文件了。

    更多Vsftpd相关教程见以下内容

    Linux CentOS 6.5 下搭建 vsftpd ftp服务器  http://www.linuxidc.com/Linux/2016-07/133319.htm

    CentOS安装vsftpd-3.0.2及安全配置  http://www.linuxidc.com/Linux/2016-12/138040.htm

    openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

    CentOS7基于虚拟用户的vsftpd  http://www.linuxidc.com/Linux/2016-11/137150.htm

    Ubuntu 14.04 配置vsftpd实现FTP服务器 - 通过FTP连接AWS  http://www.linuxidc.com/Linux/2016-08/133933.htm

    FTP协议详解与vsftpd在Linux上的安装配置 http://www.linuxidc.com/Linux/2016-09/134831.htm

    CentOS 6.7 安装vsftpd服务器  http://www.linuxidc.com/Linux/2017-04/142612.htm

    CentOS 7.3安装配置Vsftpd文件服务器  http://www.linuxidc.com/Linux/2017-06/144886.htm

    Vsftpd3.0--FTP服务器搭建之本地用户篇  http://www.linuxidc.com/Linux/2017-04/142699.htm

    CentOS7基于虚拟用户的vsftpd  http://www.linuxidc.com/Linux/2016-11/137150.htm

    Ubuntu 16.04下vsftpd 安装配置实例  http://www.linuxidc.com/Linux/2017-06/144807.htm

    本文永久更新链接地址http://www.linuxidc.com/Linux/2017-08/146085.htm

    linux
  • 相关阅读:
    tail命令语法
    正则表达式示例
    HTTP状态码对照表 HTTP response codes
    linux 源的配置更新
    shell基本语法
    谁偷走了程序员的时间??
    Spring Data JPA 简单查询-接口方法
    GET和POST两种基本请求方法的区别
    您是怎样度过人生的低潮期的
    树莓派中Docker部署.Net Core 3.1 (一)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/8931054.html
Copyright © 2011-2022 走看看