Ubuntu中vsftpd安全设置指南
导读:Ubuntu 中 vsftpd 安全设置指南 一 安装与基线配置 安装与备份 更新索引并安装:sudo apt update && sudo apt install vsftpd 备份原始配置:sudo cp /etc/...
Ubuntu 中 vsftpd 安全设置指南
一 安装与基线配置
- 安装与备份
- 更新索引并安装:sudo apt update & & sudo apt install vsftpd
- 备份原始配置:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
- 最小安全基线(/etc/vsftpd.conf)
- 禁用匿名:anonymous_enable=NO
- 允许本地用户:local_enable=YES
- 允许写入(按需):write_enable=YES
- 本地掩码:local_umask=022
- 欢迎信息:ftpd_banner=Welcome to FTP service
- 会话与连接超时:idle_session_timeout=600(空闲会话)、data_connection_timeout=120(数据连接)
- 日志与本地时间:xferlog_enable=YES、xferlog_std_format=YES、use_localtime=YES
- 主动模式数据端口:connect_from_port_20=YES
- 监听方式:仅启用一种(IPv4 或 IPv6),如 listen=YES 且注释或关闭 listen_ipv6
- 说明:以上参数含义与默认值可参考 vsftpd 配置手册与示例配置说明。
二 身份与访问控制
- 禁用匿名访问:保持 anonymous_enable=NO,避免未授权浏览与写入。
- 用户列表控制
- 启用列表:userlist_enable=YES
- 仅允许列表内用户登录:userlist_deny=NO,并将允许账户写入 /etc/vsftpd.userlist
- 禁止登录名单:/etc/ftpusers(PAM 层拒绝,优先级在密码校验之后)
- 目录隔离与写入
- 全部本地用户禁出主目录:chroot_local_user=YES
- 若需允许 chroot 内可写(vsftpd ≥ 2.3.5):allow_writeable_chroot=YES
- 仅对特定用户 chroot:使用 chroot_list_enable=YES 与 chroot_list_file=/etc/vsftpd.chroot_list
- 系统最小权限
- 为 FTP 服务使用低权用户运行(示例):创建 vsftpd 系统用户(无家目录、不可登录),并在配置中设置 nopriv_user=vsftpd
- 可选:基于 TCP Wrappers 的访问控制(/etc/hosts.allow、/etc/hosts.deny):tcp_wrappers=YES。
三 加密传输与证书
- 启用 TLS/SSL
- 基础:ssl_enable=YES
- 强制加密:force_local_data_ssl=YES、force_local_logins_ssl=YES
- 协议与套件:禁用不安全协议(如 ssl_sslv2=NO、ssl_sslv3=NO),优先 TLSv1.2+
- 证书配置
- 自签名证书(示例,有效期 365 天):
- 生成:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
- 配置:rsa_cert_file=/etc/ssl/private/vsftpd.pem、rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- 或复用系统证书:rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem、rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
- 自签名证书(示例,有效期 365 天):
- 客户端要求:连接时选择 FTPS(显式 AUTH TLS),禁用明文 FTP。
四 防火墙与被动模式端口
- 主动模式(PORT)
- 放行控制连接:sudo ufw allow 21/tcp
- 数据连接由服务器从 20/tcp 发起,通常无需额外放行 20/tcp 入站(取决于客户端 NAT/防火墙)
- 被动模式(PASV,推荐)
- 开启被动:pasv_enable=YES
- 指定端口范围(示例):pasv_min_port=30000、pasv_max_port=31000
- 放行端口范围:sudo ufw allow 30000:31000/tcp
- 云厂商安全组:同时放行 21/tcp 与所选 PASV 端口段 的入站规则。
五 日志审计与运行维护
- 日志与审计
- 传输日志:xferlog_enable=YES、xferlog_std_format=YES
- 可选:指定日志文件 xferlog_file=/var/log/vsftpd.log
- 系统日志:通过 journalctl -u vsftpd 查看启动、认证与运行日志
- 服务管理
- 重启生效:sudo systemctl restart vsftpd
- 开机自启:sudo systemctl enable vsftpd
- 连接测试
- 本地回环测试:ftp localhost
- 生产验证:使用 FileZilla 或 lftp 测试登录、上传/下载与 TLS 握手
- 安全加固清单
- 保持系统与 vsftpd 更新:sudo apt update & & sudo apt upgrade
- 仅开放必要端口与协议(禁用明文 FTP、限制 PASV 端口段)
- 定期轮换证书与审查 /var/log/ 与 journalctl 中的异常登录与传输
- 对高敏数据优先采用 SFTP/SCP 替代 FTP。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中vsftpd安全设置指南
本文地址: https://pptw.com/jishu/764038.html
