Linux 系统安装配置 FTP

编辑
  • 文档创建者:susie
  • 浏览次数:2215次
  • 编辑次数:13次
  • 最近更新:疏影横斜 于 2019-09-04
  • 1. 描述

    VSFTP 是一个基于 GPL 发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是 Very Secure FTP,从名称上可以看出安全性是编写 VSFTP 的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是 VSFTP 的两个重要特点。

    安装 vsftpd 需要使用最高用户(root),否则不能进行。

    2. 安装 vsftp

    2.1 联网安装

    rpm -qa |grep vsftpd #检查是否已安装 ftp
    yum install vsftpd -y #使用 yum 安装 ftp

    2.2 离线安装

    下载安装包:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd (根据系统选择对应 rpm 包)

    例如:vsftpd-2.2.2-24.el6.x86_64.rpm 下载地址  提取码: 3qzm (64位)  

              vsftpd-3.0.2-22.el7.x86_64 下载地址  提取码: vz8c (64位)

    rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm #安装 vsftpd,请按照实际 rpm 包的名称写命令

    2.3 修改配置

    vi /etc/vsftpd/vsftpd.conf #编辑vsftpd.conf配置文件

    键盘点击 i,进入编辑模式,修改以下内容:

    anonymous_enable=NO # 禁止匿名登录

    键盘按ESC -->Shift+q-->输入wq,退出vi编辑器,输入 wq  退出 vi 编辑器。

    2.4 新增 FTP 用户

    useradd ftpuser #新建名为 ftpuser 的用户,并自动建立/home/ftpuser 目录
    passwd ftpuser # 设置该用户的密码

    然后连续两次输入要给该用户设置的密码即可

    ##使用 ftpuser 的账户密码可以登录并使用 ftp 服务##

    注意:平台配置集群的时候使用的用户名和密码是上文新增的用户名和密码,在该文档中我们默认用户名是ftpuser,vsftpd 会禁止一些用户登录使用FTP(默认为root、bin、daemon、adm、lp、sync、shutdown、halt、mail、news、uucp、operator、games、nobody),如果想使用这些用户名登录,可以去/etc/vsftpd/ftpusers还有/etc/vsftpd/user_list中使用“#”屏蔽掉该用户名。

    3. 使用 FTP

    3.1 启动 vsftpd

    service vsftpd start #启动vsftpd服务

    3.2 拷贝 WEB-INF,给文件夹赋权限

    拷贝正式环境 Web 工程里的 WEB-INF 文件夹,并粘贴到/home/ftpuser目录下

    在平台开启文件服务器时,ftp 路径填写 /home/ftpuser/WEB-INF

    chmod -R 777 /home/ftpuser  #给 ftpuser 文件夹赋予写入权限

    #如果考虑安全性,不能给 777 权限,可以只给 755 权限,命令是 chmod -R 755 /home/ftpuser,但是拷贝 WEB-INF 文件时务必使用 ftp 用户,否则会因为文件归属问题导致不能写入。

    3.3 测试是否成功

    前提是 FTP 所在服务器防火墙已开放 20、21 端口,此处提供两种方式:

    (1)用 ftp 工具连接,比如 Xftp 之类的进行登录ftp用户

    (2)在能访问该 IP 的电脑上直接打开一个文件夹,地址里输入 ftp://ip

    用上面两种方式连接 ftp 后,新建和删除文件夹确认有读写权限,则表明 ftp 部署成功,如果测试报错,查看下面的 FAQ 文档。

    4.运维知识

    4.1 常用命令

    service vsftpd status #查看 ftp 的状态
    service vsftpd start #启动服务
    service vsftpd stop #停止服务
    service vsftpd restart #重启 ftp
    chkconfig vsftpd on #设为开机启动

    更多运维知识参见:集群运维手册-Linux 版

    4.2 配置文件详解(非必看)

    详情见:vsftpd.conf 配置手册

    5. FAQ 文档

    5.1 关闭 SELinux

    注意:登录 ftp 操作文件报错“550 create directory operation failed”或者无法登录以及开启777权限以后仍然没有读写权限考虑以下操作

    这是 SELinux(Security-Enhanced Linux,是美国国家安全局对于强制访问控制的实现,是 Linux 上最杰出的新安全子系统)安装机制搞的鬼,需要关闭 SELinux。

    (1)永久关闭 SELinux 的方式

    vi /etc/selinux/config #编辑 SELinux 的 config 文件

    将 SELINUX=enforcing 改为 SELINUX=disabled

    改完以后,重启系统生效!

    (2)临时关闭 SELinux 的方式

    setenforce 0 #执行命令,仅临时关闭,重启后又会恢复原状

    (3)不关闭 SELinux

    如果不愿关闭 SELinux,建议使用此方式

    getsebool -a | grep ftpd #查询的结果中,只有 ftp_home_dir 和 allow_ftpd_full_access 必须为 on 才能使 vsftpd 具有访问 ftp 根目录,以及文件传输等权限
    setsebool -P ftp_home_dir 1 #执行即可
    setsebool -P allow_ftpd_full_access 1 #执行即可

    ++想要了解更多SELinux相关的知识,可以查看 https://linux.cn/article-1144-1.html

    5.2 在浏览器访问 ftp://ip  时,报错:200 Switching to ASCII mode.227 Entering 

    Passive Mode (0,0,0,0,227,175)

    在 Windows 下操作:打开 “网络和共享中心”,Internet选项>>高级>>将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉>>确定即可

    5.3 配置 chroot_list 禁止或者允许用户访问上层目录

    配置方法:vsftpd:禁止或允许用户访问上层目录

    5.4 配置 FTP 后,部分模板名称在平台读取为乱码

    Windows 系统自带的 ftp 编码默认为 gbk,linux自带的ftp编码为 UTF-8,在集群配置时请注意这点,否则会出现乱码。

    5.5 其它工具登录 FTP 慢,平台配置 FTP 失败,报错:Invalid config!

    原因:用户名密码访问的时候,ftp服务器如果开启了dns反向解析,就会去查找你是不是从合法 IP 来访问的,内网情况下会出现超时的情况。

    解决方案:编辑 vsftpd.conf加一句reverse_lookup_enable=NO,然后重启 ftp。

    5.6  查看 ftp 状态时,出现报错信息:

    Jul 25 22:34:20 localhost vsftpd: pam_shells(vsftpd:auth): /etc/shells is either world writable or not a normal file
    Jul 25 22:45:29 localhost vsftpd: pam_listfile(vsftpd:auth): /etc/vsftpd/ftpusers is either world writable or not a normal file
    Jul 25 22:46:28 localhost vsftpd: pam_listfile(vsftpd:auth): /etc/vsftpd/ftpusers is either world writable or not a normal file

    解决方案:chmod 664 /etc/vsftpd/ftpusers,然后重启 vsftpd

    附件列表


    主题: 部署集成
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]