1. 安装方式
Vsftpd可通过系统包管理器安装:
- Debian/Ubuntu系统:
sudo apt-get install vsftpd - CentOS/RHEL系统:
sudo yum -y install vsftpd
2. 基础准备:创建用户与目录
为使用FTP服务,需要创建专用的系统用户和主目录:
# 创建用户组
sudo groupadd ftp
# 创建并授权主目录
sudo mkdir -p /home/resource
sudo chmod 777 /home/resource
# 创建用户(ftpuser)并指定主目录和组
sudo useradd -g ftp -d /home/resource ftpuser
# 设置用户密码
sudo passwd ftpuser
3. 核心配置详解
配置文件位于 /etc/vsftpd.conf。以下是根据原文整理的常用配置项:
3.1 基础与安全配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
| 监听设置 | listen=NO, listen_ipv6=YES |
根据网络环境配置IPv6监听 |
| 匿名访问 | anonymous_enable=NO |
禁止匿名登录,增强安全性 |
| 本地用户 | local_enable=YES |
允许系统用户(如ftpuser)登录 |
| 写入权限 | write_enable=YES |
允许上传、创建文件等操作 |
| 目录消息 | dirmessage_enable=YES |
进入目录时显示消息文件 |
| 时间设置 | use_localtime=YES |
使用服务器本地时间 |
| 日志记录 | xferlog_enable=YES |
启用上传下载日志 |
| 端口连接 | connect_from_port_20=YES |
启用20端口进行数据传输 |
| 用户根目录限制 | chroot_local_user=YES |
限制用户活动范围在其主目录 |
| 允许可写根目录 | allow_writeable_chroot=YES |
允许主目录可写(配合上一项使用) |
3.2 配置FTPS(隐式SSL/TLS加密)
为了数据传输安全,可以配置FTPS。首先使用OpenSSL生成自签名证书(放置于安全目录如/etc/vsftpd/ssl/):
bash
sudo mkdir -p /etc/vsftpd/ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/vsftpd/ssl/vsftpd.pem \
-out /etc/vsftpd/ssl/vsftpd.pem
然后在配置文件中添加或修改以下关键项:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
ssl_enable |
YES |
开启SSL加密功能 |
rsa_cert_file |
/etc/vsftpd/ssl/vsftpd.pem |
指定证书文件路径 |
rsa_private_key_file |
/etc/vsftpd/ssl/vsftpd.pem |
指定私钥文件路径 |
ssl_tlsv1_2 |
YES |
启用TLS 1.2(推荐,更安全) |
ssl_tlsv1_3 |
YES |
启用TLS 1.3(如版本支持) |
ssl_sslv2、ssl_sslv3 |
NO |
禁用不安全的SSL协议 |
require_ssl_reuse |
NO |
设为NO以避免下载问题 |
ssl_ciphers |
HIGH |
使用高强度的加密算法 |
3.3 高级与隐式SSL配置
如果希望使用隐式SSL(即专用的FTPS端口990),可以添加:
text
implicit_ssl=YES
listen_port=990
其他性能与调试配置:
max_clients=11: 最大并发连接数max_per_ip=11: 每个IP的最大连接数log_ftp_protocol=NO: 是否记录详细的FTP协议命令
4. 服务管理命令
bash
# 启动服务
sudo systemctl start vsftpd # 或 service vsftpd start
# 查看状态
sudo systemctl status vsftpd # 或 service vsftpd status
# 重启服务
sudo systemctl restart vsftpd # 或 service vsftpd restart
# 停止服务
sudo systemctl stop vsftpd # 或 service vsftpd stop
5. 本地连接测试
bash
# 连接本地FTP服务器
ftp 127.0.0.1
# 按提示输入用户名(如ftpuser)和密码
# 登录成功后可使用 ls, get, put 等命令
ftp> quit # 退出