- 首页 >
- 问答 >
-
云计算 >
- Linux服务器上vsftp安全设置技巧有哪些
Linux服务器上vsftp安全设置技巧有哪些
小樊
43
2025-12-18 02:42:12
身份与访问控制
- 禁用匿名访问:设置anonymous_enable=NO,仅允许可信本地用户登录(local_enable=YES)。
- 双重用户黑名单:在**/etc/vsftpd.ftpusers列出禁止登录的系统账号(如root等),在/etc/vsftpd.user_list配合userlist_deny=YES/NO**实现“黑名单/白名单”策略。
- 限制可登录账号集合:通过userlist_enable=YES与userlist_deny组合,仅放行必要账号,减少攻击面。
- 专用FTP账号与受限Shell:创建仅用于FTP的系统用户,设置**/sbin/nologin**等受限Shell,避免交互式登录风险。
- 精细化目录隔离:使用chroot_local_user=YES将本地用户限制在其家目录;若需对少数账号豁免,可改为chroot_list_enable=YES并维护**/etc/vsftpd/chroot_list**。注意部分系统上启用chroot且目录可写可能引发问题,需结合allow_writeable_chroot或调整目录权限与所有权。
传输加密与端口策略
- 启用TLS/SSL:设置ssl_enable=YES,并强制关键通道加密(force_local_logins_ssl=YES、force_local_data_ssl=YES);禁用不安全协议(ssl_sslv2=NO、ssl_sslv3=NO),优先TLSv1.2+。
- 证书配置:使用受信任证书(如Let’s Encrypt),在vsftpd中指定rsa_cert_file与rsa_private_key_file;客户端需选择“FTP over TLS/显式加密”。
- 被动模式端口范围:配置pasv_enable=YES并限定pasv_min_port/pasv_max_port(如50000–60000),便于防火墙放行与追踪。
- 主动模式端口:启用connect_from_port_20=YES,并确保防火墙策略允许相关流量。
- 可选端口加固:如非必要,可将控制端口由21改为非常见端口,并同步更新防火墙与客户端配置(注意被动端口范围也需一并调整)。
资源限制与协议硬化
- 会话与数据超时:设置idle_session_timeout=600(10分钟)、data_connection_timeout=120(2分钟),降低被挂起会话与半开连接的风险。
- 传输速率限制:通过local_max_rate与anon_max_rate限制带宽占用,避免DoS与资源耗尽。
- 禁用危险命令与模式:关闭ls_recurse_enable=NO(防递归DoS)、禁用ascii_download_enable=NO(防ASCII放大与CPU消耗)。
- 欢迎横幅:使用ftpd_banner或banner_file设置合规提示,避免泄露系统细节。
防火墙与系统加固
- 防火墙放行:开放控制端口21/tcp,被动端口范围(如50000–60000/tcp),以及(如使用隐式FTPS)990/tcp;云厂商或硬件防火墙同样需要同步策略。
- 主机访问控制:启用tcp_wrappers(在支持与配置正确前提下),通过**/etc/hosts.deny与/etc/hosts.allow**实现基于IP的允许/拒绝策略。
- 日志与审计:开启xferlog_enable=YES与xferlog_std_format=YES,集中审计登录与传输行为;定期tail -f /var/log/vsftpd.log或相应日志文件排查异常。
- 系统加固:保持vsftpd与操作系统及时更新;启用SELinux/AppArmor并配置合适布尔值(如ftp_home_dir等)以遵循最小权限原则。
用户目录与权限实践
- 目录最小化权限:为共享目录设置755,对仅下载目录可设为555;上传目录仅赋予必要用户对父目录的写权限,避免全局可写。
- 上传隔离与防篡改:为“只上传不可下载/删除”的场景,可结合目录权限与chattr +i(不可变属性)等手段,确保上传文件不被客户端误删或外泄(注意运维可维护性)。
- 所有权与可写性:确保FTP用户对家目录及业务目录拥有正确所有者/组与权限,避免因权限不当导致登录或写入失败。
- 合规提示:涉及合规要求的场景,优先评估SFTP/FTPS与最小权限、多因素认证等组合方案,减少对明文与不必要写权限的依赖。