首先建议优先使用SFTP替代传统FTP;若必须启用FTP,选择支持FTPS(TLS/SSL)的服务器软件(如 vsftpd、proftpd 或 Pure-FTPd),并且关闭匿名访问。配置上要:限制绑定地址、只监听必要端口、关闭被动模式或限定被动端口范围,同时在防火墙上只允许可信IP访问。
启用最小权限原则,为FTP创建专用账户或虚拟用户、禁止root登录、使用文件系统权限与ACL限制读写。
对被动端口范围进行固定并在路由器/防火墙做映射,避免随意开放大量端口。
macOS原生FTP支持较弱或已弃用,建议通过Homebrew或第三方软件部署并及时更新。
生成证书可用openssl在终端生成自签或使用CA签发证书。将证书和私钥配置到FTP服务的tls设置中,强制使用TLS1.2及以上,禁用SSLv3/TLS1.0/TLS1.1,设置安全的密码套件(避免RC4、MD5等弱算法)。启用数据通道加密以防止明文传输文件内容。
为FTP建立单独的系统或虚拟用户,并通过chroot或jail技术限制用户只能访问其家目录。使用macOS的文件权限与ACL进一步精细化控制,按组分配访问权限,设置磁盘配额防止滥用,定期清理过期账号与弱密码。
SFTP基于SSH,自带加密且一般更安全。在mac上可以启用“远程登录(Remote Login)”来启动SSH服务,建议配置密钥认证并禁用密码登录,限制AllowUsers/AllowGroups到特定用户,使用Match/ChrootDirectory在sshd_config中实现目录隔离,定期更换密钥并禁用旧密钥。
开启详细连接与传输日志,记录失败登录、异常传输和权限错误。使用日志轮转避免磁盘撑满,将日志集中到SIEM或日志服务器便于长期审计。部署基于规则的入侵防护(如fail2ban)并结合防火墙策略对暴力破解IP进行封禁,定期审查账户活动与变更记录。