阿里云服务器配置ftp环境

天涯浪子 提交于 2020-01-17 06:46:01

前言
   vsftpd 是 Linux 下的一款小巧轻快、安全易用的 FTP 服务器软件,是一款在各个 Linux 发行版中最受推崇的 FTP 服务器软件。本文以 CentOS 7.2 64位操作系统为例,说明如何在 Linux 实例上安装 vsftpd。

Linux 实例搭建 FTP 站点具体操作步骤如下:

  • 步骤一: 安装 vsftpd
  • 步骤二: 配置 vsftpd
  • 步骤三: 设置安全组
  • 步骤四: 客户端测试

步骤一: 安装 vsftpd

  1. 输入 SSH 命令连接:ssh 用户名@实例的(弹性)公网 IP
  2. 输入实例登录密码。
  3. 运行以下命令安装 vsftpd。

 

yum install -y vsftpd

出现如图表示成功

  1. 运行以下命令打开及查看 etc/vsftpd。

 

cd /etc/vsftpd
ls

说明

  • /etc/vsftpd/vsftpd.conf 是核心配置文件。
  • /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
  • /etc/vsftpd/user_list 是白名单文件,是允许访问 FTP 服务器的用户列表。
  1. 运行以下命令设置开机自启动。

 

systemctl enable vsftpd.service
  1. 运行以下命令启动 FTP 服务。

 

 systemctl start vsftpd.service
  1. 运行以下命令查看 FTP 服务端口。

 

 netstat -antup | grep ftp

出现如图启动成功

步骤二: 配置 vsftpd

vsftpd 安装后默认开启了匿名 FTP 的功能,使用匿名 FTP,用户无需输入用户名密码即可登录 >FTP 服务器,但没有权限修改或上传文件。

文本介绍了以下几个配置 vsftpd 的方法以及相关的参数说明,您可以根据具体需要进行参考。

  • 配置匿名用户上传文件权限
  • 配置root用户登录
  • 配置本地用户登录
  • vsftpd.conf 的配置文件参数说明

1. 配置匿名用户上传文件权限
 修改 vsftpd.conf 的配置文件的选项,可以赋予匿名 FTP 更多的权限。

 

①. 修改 /etc/vsftpd/vsftpd.conf: 运行 `vim /etc/vsftpd/vsftpd.conf`
②. 按 i 键进入编辑模式。
③. 将写权限修改为 `write_enable=YES`
④. 将匿名上传权限修改为 `anon_upload_enable=YES`
⑤. 按 Esc 键退出编辑模式,然后输入 :wq 保存并退出文件。

 运行以下命令更改 /var/ftp/pub 目录的权限,为 FTP 用户添加写权限,并重新加载配置文件。

 

chmod o+w /var/ftp/pub/
systemctl restart vsftpd.service

2. 配置root用户登录

说明

在centos中,vsftpd默认设置会禁止一些系统用户登录FTP,其中就包含root账户

 开启的方式如下 :

 

①. 修改 /etc/vsftpd/user_list 和  /etc/vsftpd/ftpusers 运行:
      `vim /etc/vsftpd/user_list` 、 `vim /etc/vsftpd/ftpusers `
②. 按 i 键进入编辑模式。
③. 将root账户前加上`#`号变为注释。(即让root账户从禁止登录的用户列表中排除)
④. 按 Esc 键退出编辑模式,然后输入 :wq 保存并退出文件。

3. 配置本地用户登录

说明

本地用户登录就是指用户使用 Linux 操作系统中的用户账号和密码登录 FTP 服务器。

 vsftpd 安装后默只支持匿名 FTP 登录,用户如果试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 拒绝,但可以在 vsftpd 里配置用户账号和密码登录。具体步骤如下:

 

①. 运行以下命令创建 ftpuser 用户:`useradd ftpuser`
②. 运行以下命令修改 ftpuser 用户密码:`passwd ftpuser`

创建用户

 

③. 修改 /etc/vsftpd/vsftpd.conf:运行 `vim /etc/vsftpd/vsftpd.conf`
④. 按键 i 进入编辑模式。
⑤. 将是否允许匿名登录 FTP 的参数修改为 `anonymous enable=NO`
⑥. 将是否允许本地用户登录 FTP 的参数修改为 `local_enable=YES`
⑦. 按键 Esc 退出编辑模式,然后按键 :wq 保存并退出文件。
⑦. 运行以下命令重新加载配置文件: `systemctl restart vsftpd.service`

3. vsftpd.conf 的配置文件参数说明

运行命令 cat /etc/vsftpd/vsftpd.conf 查看配置文件内容。

用户登录控制:

参数 说明
anonymous_enable=YES 接受匿名用户
no_anon_password=YES 匿名用户login时不询问口令
anon_root=(none) 匿名用户主目录
local_enable=YES 接受本地用户
local_root=(none) 本地用户主目录
pam_service_name=vsftpd 指出vsftpd进行pam认证时所使用的 pam 配置文件名。
userlist_enable=NO 文件中的用户是否能够访问FTP服务器。若设置为YES,则user_list文件中的用户不允许访问FTP,若设置为NO,则只有user_list文件中的用户才能访问FTP。
listen_ipv6=YES 设定是否支持IPV6。如要同时监听IPv4和IPv6端口。
listen=NO 是否允许监听,如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求。

用户权限控制:

参数 说明
write_enable=YES 可以上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO 匿名用户可以上传
anon_mkdir_write_enable=NO 匿名用户可以建目录
anon_other_write_enable=NO 匿名用户修改删除
chown_username=lightwiter 匿名上传文件所属用户名
tcp_wrappers=YES 在vsftpd中使用tcp_wrappers远程访问控制机制
connect_from_port_20=YES 指定FTP使用20端口进行数据传输,默认值为YES。

步骤三: 设置安全组

搭建好 FTP 站点后,您需要在实例的安全组的入方向添加一条放行 FTP 端口的规则。

端口:vsftpd 默认端口为 21
授权对象:设置为0.0.0.0/0 则不选择IP 访问(IP地址是你访问服务器时使用的设备IP)

配置

 

步骤四: 客户端测试

image.png

 

image.png

 

image.png


常见问题

  • FileZilla 客户端使用SFTP可以正常连接但使用FTP连服务器却提示服务器拒绝可能是防火墙未设置:

开放FTP端口:

  • 暂时开放 ftp 服务
    firewall-cmd --add-service=ftp
  • 永久开放 ftp 服务
    firewall-cmd --add-service=ftp --permanent
  • 永久关闭ftp服务
    firewall-cmd --remove-service=ftp --permanent
  • 重启防火墙让设定生效
    systemctl restart firewalld

连接上就可以开心的玩耍了

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!