在 CentOS 上安装和配置 vsftpd(Very Secure FTP Daemon)是一个相对直接的过程,但需要对一些关键配置文件进行编辑以确保其符合特定需求,以下是详细的步骤说明:
一、安装 vsftpd
1、更新软件包索引并安装 vsftpd

确保你的系统软件包是最新的,然后安装 vsftpd,可以使用以下命令:
sudo yum update y
sudo yum install vsftpd y2、启动并设置开机自启 vsftpd 服务
安装完成后,启动 vsftpd 服务,并设置其在系统启动时自动启动:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd二、配置 vsftpd
1、备份默认配置文件
在进行任何修改之前,建议先备份原始的 vsftpd 配置文件:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak2、编辑配置文件

使用你喜欢的文本编辑器打开配置文件进行编辑,例如使用vi 或nano:
sudo vi /etc/vsftpd/vsftpd.conf找到以下行并根据需要进行修改:
匿名访问:将anonymous_enable 设置为NO 以禁用匿名访问。
anonymous_enable=NO本地用户访问:将local_enable 设置为YES 以允许本地用户访问。
local_enable=YES上传权限:取消write_enable 的注释并将其设置为YES 以允许上传文件。
# Uncomment and set to YES to enable write support.
write_enable=YES本地用户主目录限制:取消chroot_local_user 的注释并将其设置为YES,这样本地用户登录后将被限制在自己的主目录中。

# Uncomment and set to YES to isolate users in their home directories.
chroot_local_user=YES被动模式端口范围:设置被动模式使用的端口范围,
pasv_min_port=30000
pasv_max_port=31000其他安全设置:根据需要调整其他安全设置,如listen、connect_from_port_20 等。
3、保存并关闭配置文件:完成修改后,保存文件并退出编辑器。
4、重启 vsftpd 服务:使配置更改生效:
sudo systemctl restart vsftpd
三、创建 FTP 用户和目录
1、创建用户:创建一个用于 FTP 访问的用户,并设置其主目录,创建一个名为ftpuser 的用户,其主目录为/home/ftpuser:
sudo useradd d /home/ftpuser s /sbin/nologin ftpuser sudo passwd ftpuser # 设置用户密码
2、设置目录权限:确保用户对其主目录有适当的读写权限:
sudo chown R ftpuser:ftpuser /home/ftpuser sudo chmod R 755 /home/ftpuser
3、添加用户到 vsftpd 配置(可选):如果需要限制特定用户可以访问 FTP,可以编辑/etc/vsftpd/vsftpd.conf 文件,找到userlist_enable 和userlist_deny 选项,并进行相应配置,允许列表中的用户访问:
userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.user_list
然后在/etc/vsftpd.user_list 文件中添加允许访问的用户名单,每行一个用户名。
四、配置防火墙
1、开放 FTP 端口:确保防火墙允许通过 FTP 的主动模式和被动模式端口,对于基于 firewalld 的系统,可以使用以下命令开放端口:
sudo firewallcmd zone=public addport=21/tcp permanent # 开放主动模式端口 sudo firewallcmd zone=public addservice=ftp permanent # 开放被动模式端口范围 sudo firewallcmd reload
2、(可选)SELinux 配置:SELinux 启用且需要允许 FTP 传输,可能需要调整 SELinux 策略,设置 FTP 内容的策略为允许:
sudo setsebool P ftp_home_dir on sudo setsebool P allow_ftpd_full_access 1
五、测试 FTP 服务器
1、连接测试:使用 FTP 客户端(如 FileZilla、lftp 等)连接到 FTP 服务器,确保能够正常登录并执行上传、下载等操作。
ftp <服务器IP地址> 21
或者使用命令行工具:
lftp ftpuser@<服务器IP地址>:/home/ftpuser
2、检查日志文件:如果遇到问题,可以查看 vsftpd 日志文件/var/log/vsftpd.log 和/var/log/xferlog 以获取更多信息。
六、FAQs
1、Q:如何允许特定用户访问FTP服务器?A:可以通过编辑/etc/vsftpd/vsftpd.user_list文件,将允许访问的用户添加到该文件中,每行一个用户名,确保在vsftpd.conf中设置userlist_enable=YES和userlist_deny=NO。
2、Q:如何配置FTP服务器使用被动模式?A:在vsftpd.conf文件中设置pasv_enable=YES,并指定被动模式端口范围,如pasv_min_port=30000和pasv_max_port=31000。
