在 CentOS 上安装和配置 vsftpd(Very Secure FTP Daemon)是一个相对直接的过程,但需要对一些关键配置文件进行编辑以确保其符合特定需求,以下是详细的步骤说明:
一、安装 vsftpd
1、更新软件包索引并安装 vsftpd
![CentOS下vsftpd的安装与配置指南-图1 CentOS下vsftpd的安装与配置指南-图1](https://blog.huochengrm.cn/zb_users/upload/2025/01/20250129181915173814595555494.png)
确保你的系统软件包是最新的,然后安装 vsftpd,可以使用以下命令:
- sudo yum update y
- sudo yum install vsftpd y
2、启动并设置开机自启 vsftpd 服务
安装完成后,启动 vsftpd 服务,并设置其在系统启动时自动启动:
- sudo systemctl start vsftpd
- sudo systemctl enable vsftpd
二、配置 vsftpd
1、备份默认配置文件
在进行任何修改之前,建议先备份原始的 vsftpd 配置文件:
- sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
2、编辑配置文件
![CentOS下vsftpd的安装与配置指南-图2 CentOS下vsftpd的安装与配置指南-图2](https://blog.huochengrm.cn/zb_users/upload/2025/01/20250129181915173814595552890.jpeg)
使用你喜欢的文本编辑器打开配置文件进行编辑,例如使用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
,这样本地用户登录后将被限制在自己的主目录中。
![CentOS下vsftpd的安装与配置指南-图3 CentOS下vsftpd的安装与配置指南-图3](https://blog.huochengrm.cn/zb_users/upload/2025/01/20250129181916173814595696132.jpeg)
- # 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
。