vsftpd
概述
vsftpd(Very Secure FTP Daemon) 是一款精简、高性能的 FTP 服务器,高度重视安全性。在资源占用低、正确性比灵活性更重要的环境中常被采用。
与 ProFTPD 不同,vsftpd 原生不支持丰富的模块系统或虚拟用户数据库。但能提供简单、稳健的 FTP 服务,支持:
主动与被动 FTP 模式
匿名与本地用户登录
用户 chroot
FTPS 加密
vsftpd 不属于 OpenBSD 基本系统,需从软件包安装。
FTP 服务器对比
OpenBSD Handbook 文档记录了三种 FTP 服务器实现:
来源
基本系统内置
通过 pkg_add 安装
通过 pkg_add 安装
TLS(FTPS)支持
否
是
是
Chroot
全局 /ftp
按用户(chroot_local_user)
按用户(DefaultRoot)
匿名 FTP
是
是
是
虚拟用户
否
否
是(AuthUserFile 等)
配置方式
仅内置标志
扁平配置文件
模块化,Apache 风格
日志
syslog
xferlog 兼容文件
syslog 或自定义文件
FTPS 模式
不支持
显式 FTPS(TLS)
显式 FTPS(TLS)
资源占用
极低
低
中等
访问控制
极简
中等
丰富
适用场景
最小安装集
安全的公共/私有 FTP
需精细控制的高级 FTP
安装
通过软件包系统安装 vsftpd:
此操作会安装守护进程 vsftpd 和默认配置文件:
基本配置
以下为支持匿名访问与系统用户登录的最小配置示例:
为匿名访问创建主目录:
若要允许系统用户登录(例如 ftpuser):
启动服务
手动启动 vsftpd 以测试:
要在系统启动时自动运行,追加到 /etc/rc.local:
或者创建自定义 rc.d 脚本,配合 rcctl 使用。
FTPS(TLS)支持
vsftpd 支持 FTPS(基于 SSL/TLS 的 FTP)。启用方法:
生成或获取证书与密钥对。
设置属主与权限:
修改配置:
重启 vsftpd。此后 lftp 或 FileZilla 等 FTPS 客户端即可安全连接。
主动与被动 FTP
默认情况下,vsftpd 支持被动模式,推荐用于大多数位于防火墙后的环境。
限制被动数据连接的端口范围:
OpenBSD 的 pf.conf 应更新以放行控制端口与数据端口:
主动 FTP 要求客户端防火墙允许入站连接,这通常难以实现。
日志与监控
若设置 xferlog_enable=YES,vsftpd 会以 xferlog 格式将日志写入 /var/log/vsftpd.log。
示例:
测试访问:
使用 tcpdump 或 netstat -an 验证连接尝试与端口占用。
最后更新于