如何在Linux上搭建高效且安全的FTP服务器:使用vsftpd?
32阅读
0评论
0点赞
本文介绍了如何在Linux操作系统上安装和配置vsftpd以搭建FTP服务器的过程。首先介绍了FTP的工作模式和认证模式,然后详细说明了安装vsftpd、设置FTP服务自启动和启动服务的方法。接着分别讲解了本地用户模式和匿名访问模式下的配置步骤,并提供了测试FTP服务器连接的方法。
vsftpd (Very Secure FTP Daemon) 是一款适用于Linux操作系统的高效、安全且易于配置的FTP服务器软件。本文将指导您完成在Linux服务器上安装、配置vsftpd的过程,并测试FTP服务器的连接。
前提条件
- 已创建Linux轻量应用服务器。具体步骤请参照创建轻量应用服务器。
背景信息
FTP工作模式
FTP(File Transfer Protocol)基于客户端/服务器架构,支持两种主要的工作模式:
- 主动模式(PORT): 客户端向FTP服务器发送端口信息,由服务器主动连接该端口。
- 被动模式(PASV): FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。
FTP认证模式
FTP支持三种认证模式:
- 匿名用户模式: 无需密码验证即可登录FTP服务器。这种模式不安全,仅用于传输非敏感文件。
- 本地用户模式: 通过Linux系统本地用户验证登录权限,比匿名用户模式更安全。
- 虚拟用户模式: 通过虚拟用户验证登录权限,虚拟用户只能访问为其提供的FTP服务,不能访问Linux系统的其他资源。这是最安全的模式,适用于对数据安全性要求较高的场景。
本文将重点介绍匿名用户模式和本地用户模式的配置。
步骤一:准备工作
- 安装FTP客户端工具FileZilla:
- 下载并安装FileZilla。下载地址:FileZilla下载中心。
- 设置Linux服务器的用户密码:
- 具体操作请参见管理服务器密码。
步骤二:安装与配置vsftpd
-
远程连接Linux服务器:
- 具体操作请参见远程连接Linux服务器。
-
检查vsftpd是否已安装:
vsftpd -v
如果输出版本信息,表明已安装。
[admin@iZ2579sxicu**** ~]$ vsftpd -v vsftpd: version 3.0.2
-
安装vsftpd:
sudo yum install -y vsftpd
-
设置FTP服务开机自启动:
sudo systemctl enable vsftpd.service
-
启动FTP服务:
sudo systemctl start vsftpd.service
若启动失败,请检查是否有进程占用了21端口。
-
查看FTP服务端口:
sudo netstat -antup | grep ftp
步骤三:设置FTP服务器的访问模式
本地用户模式(推荐)
- 创建FTP服务的Linux用户:
sudo adduser ftptest
- 修改用户密码:
sudo passwd ftptest
- 创建FTP服务使用的文件目录:
sudo mkdir /var/ftp/test
- 更改目录所有权:
sudo chown -R ftptest:ftptest /var/ftp/test
- 修改vsftpd.conf配置文件:
- 编辑配置文件:
sudo vim /etc/vsftpd/vsftpd.conf
- 配置参数:
anonymous_enable=NO local_enable=YES listen=YES local_root=/var/ftp/test chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list pasv_enable=YES allow_writeable_chroot=YES pasv_address=<服务器公网IP> pasv_min_port=50000 pasv_max_port=50010
- 编辑配置文件:
- 创建chroot_list文件 写入例外用户名单:
sudo vim /etc/vsftpd/chroot_list
- 关闭防火墙:
sudo systemctl stop firewalld
-
重启FTP服务: 修改配置文件:
sudo vi /etc/ssh/sshd_config
将
PasswordAuthentication
的值改为`yes重启
sudo systemctl restart vsftpd.service
匿名访问模式
- 修改vsftpd.conf配置文件:
sudo vim /etc/vsftpd/vsftpd.conf
- 配置参数:
anonymous_enable=YES anon_upload_enable=YES listen=YES listen_ipv6=NO pasv_enable=YES pasv_min_port=50000 pasv_max_port=50010 pasv_address=<服务器公网IP>
将
anonymous_enable
和anon_upload_enable
改成YES
-
更改/var/ftp/pub目录的权限:
/var/ftp/pub
为FTP服务默认的文件目录sudo chmod o+w /var/ftp/pub/
- 重启FTP服务:
sudo systemctl restart vsftpd.service
步骤四:配置Linux服务器的防火墙
- 在Linux服务器的防火墙中放行FTP端口。具体操作请参见添加防火墙规则。
- 被动模式需开放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中参数
pasv_min_port
和pasv_max_port
之间的所有端口。
步骤五:通过FTP客户端测试连接FTP服务器
- 打开FileZilla客户端:
- 选择文件 > 站点管理器。
- 单击新站点(N)。
- 输入新站点的名称,并完成站点配置。
- 单击连接。
vsftp配置文件及参数说明
/etc/vsftpd/vsftpd.conf
: 核心配置文件。/etc/vsftpd/ftpusers
: 黑名单文件,禁止文件中的用户访问FTP服务器。/etc/vsftpd/user_list
: 白名单文件,允许文件中的用户访问FTP服务器。
参数说明
用户登录控制参数
anonymous_enable=YES
: 接受匿名用户。local_enable=YES
: 接受本地用户。
用户权限控制参数
write_enable=YES
: 允许上传文件。local_umask=022
: 本地用户上传文件的权限。anon_upload_enable=YES
: 允许匿名用户上传文件。chroot_local_user=YES
: 将本地用户限制在其主目录内。chroot_list_enable=YES
: 启用例外用户名单。chroot_list_file=/etc/vsftpd/chroot_list
: 例外用户列表文件。
评论(0)
暂无评论,期待您的发言...
发表评论