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 目录,并查看该目录下的文件。
说明:
/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:
CentOS7.5:
此时使用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 为主动模式的参数如下:
(1)按 Esc 键退出编辑模式,然后按键:wq 保存并退出文件。
(2)运行 touch /etc/vsftpd/chroot_list 命令创建 chroot_list 文件,并写入不受只可以访问其主目录限制的例外用户名单。
注意:如果没有例外用户也必须要有 chroot_list 文件,内容可为空。
(3)按键 Esc 退出编辑模式,然后按键:wq 保存并退出文件。
(4)运行以下命令重启 vsftpd 服务。/etc/init.d/vsftpd restart
到此完成主动模式所有配置。
被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置 FTP 为被动模式的参数如下:
注意:建议您把端口范围设在比较高的一段范围内,比如 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 为主动模式的参数如下:
(1)按 Esc 键退出编辑模式,然后按键:wq 保存并退出文件。 (2)运行 touch /etc/chroot_list 命令创建 chroot_list 文件,并写入不受只可以访问其主目录限制的例外用户名单。注意:如果没有例外用户也必须要有 chroot_list 文件,内容可为空
(3)按键 Esc 退出编辑模式,然后按键:wq 保存并退出文件。
(4)运行以下命令重启 vsftpd 服务。sudu service vsftpd restart
以上为主动模式配置方法
配置被动模式:被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置 FTP 为被动模式的参数如下:
注意:建议您把端口范围设在比较高的一段范围内,比如 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 工具为例:
版权声明: 本文为 InfoQ 作者【百度开发者中心】的原创文章。
原文链接:【http://xie.infoq.cn/article/8a185cf008ff3d5394a4cf942】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论