阿里云服务器下安装ftp

最近须要在阿里云服务器上安装ftp,整个过程遇到了不少的坑,在这里记录一下。web


Ubuntu上文件上传下载用到的工具是vsftpd,VSFTPD表明很是安全的文件传输协议守护程序,是一个开放源代码,轻量级,稳定,最安全,最快的FTP服务器的Unix和Linux操做系统。它是大多数Linux和Unix操做系统(例如RedHat,CentOS,Fedora和Ubuntu)的默认FTP服务器,同时支持IPv6和SSL,所以,咱们可使用VSFTPD来组织设置安全的FTP服务器。它是根据GPL许可的,彻底免费。shell

安装vsftpd

vsftpd 默认是存在于Ubuntu的软件仓库中的,因此只须要在使用命令直接安装便可:安全

sudo apt-get install vsftpd

建立FTP用户bash

为FTP建立特定用户,一是为了不匿名用户登陆,二是禁止用户越权访问其它文件目录内容。服务器

FTP用户拥有如下特性:svg

  • 禁止SSH登录到系统,只容许FTP登陆
  • 禁止访问非当前用户目录下的内容
# 新建用户以及对应的用户目录,禁止登陆系统
sudo useradd -d /home/[username] -s /sbin/nologin -m [username]
# 更改密码
sudo passwd [username]
# 调整权限
sudo chmod a-w /home/[username]
# 建立data目录,避免500错误。
# data目录为ftp上传目录
sudo mkdir /home/[username]/data
sudo chown -R [username]:[username] /home/[username]/data

建立文件 /etc/vsftpd.allowed_users,写入新建的用户运行该用户FTP登陆:工具

# 建立文件
touch /etc/vsftpd.allowed_users
# 编辑文件
nano /etc/vsftpd.allowed_users
# 写入新建用户名并重启vsftpd
# [username]
sudo service vsftpd restart

配置FTP


vsftpd的配置文件位于: /etc/vsftpd.conf。ui

经过编辑该文件完成如下几项配置:阿里云

# 禁止匿名用户
anonymous_enable=NO
# 容许写入
write_enable=YES
# ascii编码上传下载
ascii_upload_enable=YES
ascii_download_enable=YES
# 欢迎提示
ftpd_banner=您正在登陆的是IOT-SERVER前置机FTP服务
# 用户只能访问限制的目录
chroot_local_user=YES
# 用户登陆后默认目录
local_root=/home/usftper/data
# 是否使用被动模式的数据链接,若是客户机在防火墙后,请开启为YES
pasv_enable=YES
# 设置被动模式后的数据链接端口范围在n和m之间,建议为50000-60000端口
# 别忘了阿里控制台ESC中安全组运行TCP端口:50000/60000
pasv_min_port=50000
pasv_max_port=60000
# 末尾新增:只容许对应用户
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users

保存退出,重启FTP服务。编码

sudo service vsftpd restart

注: 530Loginincorrect.使

# 编辑文件
sudo nano /etc/pam.d/vsftpd
# 注释禁用如下内容
# auth required pam_shells.so

保存重启FTP服务

在阿里云安全组内添加添加安全规则

这里写图片描述

参考连接:阿里云服务器ESC环境(三) - FTP配置