写点什么

Linux 系统搭建 FTP 服务

  • 2023-03-08
    北京
  • 本文字数:5436 字

    阅读完需:约 18 分钟

Linux系统搭建FTP服务

Centos 搭建 FTP 服务


此部分介绍百度智能云“CentOS7.5 安装 FTP 服务”的方法(含操作指导视频),您可以参考视频中的关键步骤指导,使用智能云产品或是自助解决问题,请点击此处观看视频《CentOS7.5安装FTP服务》


说明:

如视频指导中的部分界面元素或操作方式发生变化,请以智能云控制台界面为准。本视频重点演示功能操作流程,界面的细微变化不影响流程的整体呈现。


本教程以 百度智能云公共镜像 CentOS6.5/CentOS7.5 64 位操作系统为例,说明如何在 Linux 实例上安装并配置 vsftpd。


  • 步骤一: 安装 vsftpd

  • 步骤二: 配置 vsftpd

    方式一:配置匿名用户上传文件权限

    方式二:配置本地用户登录

  • 步骤三: 设置安全组

  • 步骤四: 客户端测试

步骤一: 安装 vsftpd

1.远程连接并登录到 Linux 实例。

2.运行命令 yum install -y vsftpd 安装 vsftpd。

3.运行以下命令进入/etc/vsftpd 目录,并查看该目录下的文件。

cd /etc/vsftpdls
复制代码



说明:

  • /etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。

  • /etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器。

  • /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。

4.运行以下命令设置 FTP 服务开机自启动。

Centos6.5: chkconfig vsftpd on

Centos7.5: systemctl enable vsftpd.service

5.运行以下命令启动 FTP 服务。

Centos6.5:/etc/init.d/vsftpd start

Centos7.5:systemctl start vsftpd.service

6 运行以下命令查看 FTP 服务监听的端口。

netstat -antup | grep ftp

步骤二: 配置 vsftpd

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


本教程介绍了以下两种配置 vsftpd 的方法,并提供了相关的参数说明,您可以根据具体需要进行参考。

  • 配置匿名用户上传文件权限

  • 配置本地用户登录

方式一:配置匿名用户上传文件权限


匿名访问 FTP 服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到 FTP 服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。如果您需要配置匿名用户上传文件的权限,可以参考以下步骤配置:


1.修改/etc/vsftpd/vsftpd.conf。a.运行 vim /etc/vsftpd/vsftpd.conf。b.按 i 键进入编辑模式。c.将写权限修改为 write_enable=YES。d.将匿名上传权限修改为 anon_upload_enable=YES。e.按 Esc 键退出编辑模式,然后输入:wq 保存并退出文件。



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

Centos6.5:

chmod o+w /var/ftp/pub//etc/init.d/vsftpd restart
复制代码



CentOS7.5:

chmod o+w /var/ftp/pub/systemctl restart vsftpd.service
复制代码



此时使用filezilla测试可以在不需要账户密码(匿名下)的情况下正常连接该 FTP 服务器



方式二:配置本地用户登录


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


vsftpd 安装后默认只支持匿名访问 FTP 服务器,如果您试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 服务拒绝。您可以参考以下步骤配置 vsftpd 服务,以使用 Linux 账号和密码访问 FTP 服务器。


1.运行以下命令为 FTP 服务创建一个 Linux 用户。本示例中,该用户名为 ftpbaidu。

useradd ftpbaidu



2.运行以下命令修改 ftptest 用户的密码。

passwd ftpbaidu


3.创建一个供 FTP 服务使用的文件目录。

mkdir /var/ftp/baidu


4.更改/var/ftp/baidu 目录的拥有者为 ftpbaidu。

chown -R ftpbaidu:ftpbaidu /var/ftp/baidu


5.输入命令 vim /etc/vsftpd/vsftpd.conf 打开 vsftpd.conf 配置文件并按键 i 进入编辑模式。


6.修改 vsftpd.conf 配置文件。

FTP 服务器可以配置为主动模式或被动模式。

主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口。配置 FTP 为主动模式的参数如下:

#禁止匿名登录FTP服务器anonymous_enable=NO#允许本地用户登录FTP服务器local_enable=YES#设置本地用户登录后所在的目录local_root=/var/ftp/baidu#全部用户被限制在主目录chroot_local_user=YES#启用例外用户名单chroot_list_enable=YES#指定例外用户列表,这些用户不被锁定在主目录chroot_list_file=/etc/vsftpd/chroot_list
#配置其他参数allow_writeable_chroot=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES
复制代码

(1)按 Esc 键退出编辑模式,然后按键:wq 保存并退出文件。


(2)运行 touch /etc/vsftpd/chroot_list 命令创建 chroot_list 文件,并写入不受只可以访问其主目录限制的例外用户名单。

注意:如果没有例外用户也必须要有 chroot_list 文件,内容可为空。


(3)按键 Esc 退出编辑模式,然后按键:wq 保存并退出文件。


(4)运行以下命令重启 vsftpd 服务。/etc/init.d/vsftpd restart

到此完成主动模式所有配置。

被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置 FTP 为被动模式的参数如下:

#禁止匿名登录FTP服务器anonymous_enable=NO#允许本地用户登录FTP服务器local_enable=YES#设置本地用户登录后所在目录local_root=/var/ftp/baidu#全部用户被限制在主目录chroot_local_user=YES#启用例外用户名单chroot_list_enable=YES#指定例外用户列表,这些用户不被锁定在主目录chroot_list_file=/etc/vsftpd/chroot_list#开启被动模式pasv_enable=YES#FTP服务器公网IPpasv_address=<FTP服务器公网IP>#设置被动模式下,建立数据传输可使用port范围的最小值pasv_min_port=50000#设置被动模式下,建立数据传输可使用port范围的最大值pasv_max_port=50010#配置其他参数local_umask=022dirmessage_enable=YESxferlog_enable=YESxferlog_std_format=YEStcp_wrappers=YESallow_writeable_chroot=YESlisten=YESlisten_ipv6=NOpam_service_name=vsftpduserlist_enable=YES
复制代码

注意:建议您把端口范围设在比较高的一段范围内,比如 50000-50010,有助于提高访问 FTP 服务器的安全性。

(1)按 Esc 键退出编辑模式,然后按键:wq 保存并退出文件。

(2)运行 touch /etc/vsftpd/chroot_list 命令创建 chroot_list 文件,并写入不受只可以访问其主目录限制的例外用户名单。

注意:如果没有例外用户也必须要有 chroot_list 文件,内容可为空。

(3)按键 Esc 退出编辑模式,然后按键:wq 保存并退出文件。

(4)运行以下命令重启 vsftpd 服务。/etc/init.d/vsftpd restart

到此完成被动模式所有配置。

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

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

用户登录控制:

用户权限控制:

步骤三: 设置安全组

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

FTP 为主动模式时:端口 21。FTP 为被动模式时:端口 21,以及配置文件/etc/vsftpd/vsftpd.conf 中参数 pasv_min_port 和 pasv_max_port 之间的所有端口。

添加安全组规则的具体步骤,请参见添加安全组规则

步骤四: 客户端测试

您可以通过 FTP 客户端或浏览器访问 FTP 服务器进行测试。本教程以filezilla工具为例:



ubuntu 搭建 FTP 服务

本教程以 百度智能云公共镜像 ubuntu14.01 64 位操作系统为例,说明如何在 Linux 实例上安装并配置 vsftpd。

  • 步骤一: 安装 vsftpd

  • 步骤二: 配置 vsftpd

    方式一:配置匿名用户上传文件权限

    方式二:配置本地用户登录

  • 步骤三: 设置安全组

  • 步骤四: 客户端测试

步骤一: 安装 vsftpd

1.远程连接并登录到 Linux 实例。

2.运行命令 sudo apt-get install vsftpd -y 安装 vsftpd。



3.安装完成后 VSFTPD 会自动启动且默认开机自启,通过 netstat 命令可以看到系统已经监听



步骤二: 配置 vsftpd

vsftp 分为匿名模式(不需要输入账号密码即可登录)和本地用户模式

本教程介绍了以下两种配置 vsftpd 的方法,并提供了相关的参数说明,您可以根据具体需要进行参考。

  • 匿名模式

  • 本地用户模式

方式一:配置匿名用户上传文件权限

匿名访问 FTP 服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到 FTP 服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。如果您需要配置匿名用户上传和下载文件的权限,可以参考以下步骤配置:

1.执行命令: vim /etc/vsftpd.conf



a.按 i 键进入编辑模式。 b.将写权限修改为 write_enable=YES。 c.将匿名上传权限修改为 anon_upload_enable=YES。 d.将是否允许匿名登录修改为 anonymous_enable=YES e.按 Esc 键退出编辑模式,然后输入:wq 保存并退出文件。



2.创建 FTP 子目录。

执行命令:sudo mkdir /srv/ftp/uploadubuntu 搭建的 FTP 默认根目录是/srv/ftp/,但是匿名用户默认不可以在根目录上传文件,因此只能建立子目录实现上传.



3.对该目录设置 755 权限和分组。

执行命令:sudo chown root:ftp /srv/ftp/upload 之后执行:sudo chmod 755 /srv/ftp/upload

4.重启服务使其生效。

执行命令: sudo service vsftpd restart

5.测试可以正常连接和上传下载文件。



方式二:配置本地用户登录

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

您可以参考以下步骤配置 vsftpd 服务,以使用 Linux 账号和密码访问 FTP 服务器。

1.运行以下命令为 FTP 服务创建一个 Linux 用户。本示例中,该用户名为 ftpbaidu。

sudo useradd ftpbaidu



2.运行以下命令修改 ftptest 用户的密码。

sudo passwd ftpbaidu

3.运行以下命令创建一个供 FTP 服务使用的文件目录。

sudo mkdir /srv/ftp/baidu

4.运行以下命令更改/srv/ftp/baidu 目录的拥有者为 ftpbaidu。

sudo chown -R ftpbaidu:ftpbaidu /srv/ftp/baidu

5.输入命令 vim /etc/vsftpd.conf 打开 vsftpd.conf 配置文件并按键 i 进入编辑模式。

6.修改 vsftpd.conf 配置文件。

FTP 服务器可以配置为主动模式或被动模式。

配置主动模式:主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口。配置 FTP 为主动模式的参数如下:

#禁止匿名登录FTP服务器anonymous_enable=NO#允许本地用户登录FTP服务器local_enable=YES#设置本地用户登录后所在的目录local_root=/var/ftp/baidu#全部用户被限制在主目录chroot_local_user=YES#启用例外用户名单chroot_list_enable=YES#指定例外用户列表,这些用户不被锁定在主目录chroot_list_file=/etc/chroot_list#主目录可写权限allow_writeable_chroot=YES#配置其他参数allow_writeable_chroot=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES
复制代码

(1)按 Esc 键退出编辑模式,然后按键:wq 保存并退出文件。 (2)运行 touch /etc/chroot_list 命令创建 chroot_list 文件,并写入不受只可以访问其主目录限制的例外用户名单。注意:如果没有例外用户也必须要有 chroot_list 文件,内容可为空

(3)按键 Esc 退出编辑模式,然后按键:wq 保存并退出文件。

(4)运行以下命令重启 vsftpd 服务。sudu service vsftpd restart

以上为主动模式配置方法

配置被动模式:被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置 FTP 为被动模式的参数如下:

#禁止匿名登录FTP服务器anonymous_enable=NO#允许本地用户登录FTP服务器local_enable=YES#设置本地用户登录后所在目录local_root=/var/ftp/baidu#全部用户被限制在主目录chroot_local_user=YES#启用例外用户名单chroot_list_enable=YES#指定例外用户列表,这些用户不被锁定在主目录chroot_list_file=/etc/chroot_list#开启被动模式pasv_enable=YES#FTP服务器公网IPpasv_address=<FTP服务器公网IP>#设置被动模式下,建立数据传输可使用port范围的最小值pasv_min_port=50000#设置被动模式下,建立数据传输可使用port范围的最大值pasv_max_port=50010#主目录可写权限allow_writeable_chroot=YESpasv_max_port=50010#配置其他参数local_umask=022dirmessage_enable=YESxferlog_enable=YESxferlog_std_format=YEStcp_wrappers=YESallow_writeable_chroot=YESlisten=YESlisten_ipv6=NOpam_service_name=vsftpduserlist_enable=YES
复制代码

注意:建议您把端口范围设在比较高的一段范围内,比如 50000-50010,有助于提高访问 FTP 服务器的安全性。

(1)按 Esc 键退出编辑模式,然后按键:wq 保存并退出文件。(2)运行 touch /etc/chroot_list 命令创建 chroot_list 文件,并写入不受只可以访问其主目录限制的例外用户名单。注意:如果没有例外用户也必须要有 chroot_list 文件,内容可为空(3)按键 Esc 退出编辑模式,然后按键:wq 保存并退出文件。(4)运行以下命令重启 vsftpd 服务。sudo service vsftpd restart

以上为被动模式配置方法

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

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

用户登录控制:

用户权限控制:

步骤三: 设置安全组

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

  • FTP 为主动模式时:端口 21。

  • FTP 为被动模式时:端口 21,以及配置文件/etc/vsftpd.conf 中参数 pasv_min_port 和 pasv_max_port 之间的所有端口。

步骤四: 客户端测试

您可以通过 FTP 客户端或浏览器访问 FTP 服务器进行测试。本教程以 filezilla 工具为例:



发布于: 刚刚阅读数: 5
用户头像

关注百度开发者中心,收获一手技术干货。 2018-11-12 加入

汇聚百度所有对外开放技术、平台和服务资源,提供全方位支持,助力开发者加速成功,实现开发者、消费者和百度三方共赢。https://developer.baidu.com/

评论

发布
暂无评论
Linux系统搭建FTP服务_ftp服务_百度开发者中心_InfoQ写作社区