linux 搭建 FTP 避坑指南

导读:本篇文章讲解 linux 搭建 FTP 避坑指南,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言:

有很多博客写过 linux 搭建 FTP,很遗憾,照着搭建出了不少故障,所以这里记录一下关键的坑怎么处理。

1.需求和环境

需求:基于 linux 搭建一个FTP,保证用户只能访问自有目录,可以正常进行读写操作。
linux 版本: centos 7.x

2.安装 FTP
yum install -y vsftpd
3.启动 FTP 服务
service vsftpd start
其他可能用到的命令

停止服务:service vsftpd stop
重启服务:service vsftpd restart
查看版本:vsftpd -version
查看状态:service vsftpd status

这时候可以看到在 /var/ftp 目录被创建,一般情况下这个目录可以作为主目录,当然也可以另外指定

4.配置文件

/etc/vsftpd 目录下

ftpusers  -- 黑名单配置文件,这个里面的用户不允许访问FTP服务器
user_list  -- 白名单配置文件,允许访问FTP服务器的用户列表
vsftpd.conf  -- ftp 配置文件

在配置之前需要创建一个用户作为 FTP 用户(这里创建 ftpuser)

useradd ftpuser
passwd ftpuser

把用户名添加到 user_list 文件,重启服务(service vsftpd restart)

5.客户端连接FTP服务

以上完成后全部使用的是默认配置(端口默认21),连接看下效果(推荐使用 FileZilla 客户端)
在这里插入图片描述
报 503 的错误,根本连不上,哪里有问题呢,如果你查看 user_list 文件(文件最上面的内容)

# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.

描述得很清楚,需要 vsftpd.conf 中

userlist_enable=YES   改为 
userlist_enable=NO

再重启一下服务发现可以连接。

6.设置用户只能访问自有目录

经过上面 5 步,你会发现用 ftpuser 登录以后可以任意切换目录,如下
在这里插入图片描述

这和我们初衷(限制只能访问自有目录)不符合(默认情况下,ftpuser 只有 /home/ftpuser 目录),怎么设置?
打开 vsftpd.conf,

#chroot_list_enable=YES
改为
chroot_list_enable=NO

重启服务后再连接会出现一个大坑,报 500 的错
在这里插入图片描述

原因是:
从 vsftpd 2.3.5之后(当前3.0.2),vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报 500。
解决方案有两个:

  1. 修改主目录读写权限(推荐)
chmod -R 555 /home/ftpuser/
  1. vsftpd.conf 添加
allow_writeable_chroot=YES 

notes:

采用第一种方案的话,需要在该目录下新建有写权限的目录,并且指定目录所有者为 ftpuser

7.建议

如果有其它需求,请一定仔细阅读 vsftpd.conf 注释,里面包含了几乎所有的配置讲解。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16541.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!