CentOS 搭建 FTP 服务

系统环境为 CentOS 7.4,默认用户为 root

安装并启动 FTP 服务

安装 VSFTPD

官网介绍: https://security.appspot.com/vsftpd.html#about

$ yum install vsftpd -y

启动 VSFTPD

$ service vsftpd start
$ systemctl enable vsftpd

ftp 协议默认使用的是 21 端口,如果服务正常启动了,此命令应该会输出占用对象为 vsftpd

$ netstat -nltp | grep 21

此时访问 ftp://服务器 IP 地址 就可以浏览服务器上的 /var/ftp 目录了

配置 FTP 权限

当前 FTP 服务允许匿名登陆,即直接访问,我们需要配置 FTP 访问权限

vsftpd 的配置目录为 /etc/vsftpd,其中

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

阻止匿名访问和切换根目录

$ vi /etc/vsftpd/vsftpd.conf

找到 anonymous_enable 并设为 NO,找到 chroot_local_user 并去掉注释,并在最后添加 allow_writeable_chroot=YES

# 禁用匿名用户
anonymous_enable=NO

# 禁止切换根目录
chroot_local_user=YES

# 避免 vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
allow_writeable_chroot=YES

其他配置见 Very Secure FTP Daemon 手册: https://wiki.archlinux.org/index.php/Very_Secure_FTP_Daemon_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

保存后重启 FTP 服务

$ service vsftpd restart

创建 FTP 用户

$ useradd ftpuser
$ passwd ftpuser

限制该用户仅能通过 FTP 访问

$ usermod -s /sbin/nologin ftpuser

为用户分配主目录

假设 /data/ftp 是 ftp 要访问的目录

$ cd /data
$ chmod -R 755 ./ftp
$ chown -R ftpuser ./ftp
$ usermod -d /data/ftp ftpuser

访问 FTP 服务

Mac 系统推荐安装 Transmit 客户端

左边为本地文件,右边为 FTP 服务器,支持拖动,可以很方便的进行移动复制删除创建等操作

image

其他

至此 FTP 服务就搭建完了,我用这个 FTP 服务主要是上传修改博客和一些其他地方用到的静态文件,比如图片音乐等

我用 nginx 起一个 http 主机,这样我就可以通过 src.wangiyu.wang 这个域名访问 FTP 目录的文件,然后再去腾讯云那里添加 src.wangriyu.wang 到 CDN 上,这样我就可以用 FTP 方便管理博客要用到的图片等比较大的静态文件,然后用 CDN 来访问文件

文章目录
  1. 安装并启动 FTP 服务
    1. 安装 VSFTPD
    2. 启动 VSFTPD
    3. 配置 FTP 权限
    4. 阻止匿名访问和切换根目录
    5. 创建 FTP 用户
    6. 为用户分配主目录
    7. 访问 FTP 服务
    8. 其他