CentOSSFTP安全漏洞防范清单

一加固基础配置

禁用root登录:在/etc/ssh/sshd_config设置PermitRootLoginno,重启sshd。

使用SSH密钥替代密码:客户端生成4096位RSA密钥,将公钥写入用户~/.ssh/authorized_keys,并设置权限700/600;服务端禁用密码认证PasswordAuthenticationno、启用PubkeyAuthenticationyes。

仅启用内部SFTP:注释或移除外部子系统,使用Subsystemsftpinternal-sftp。

限制危险功能:在MatchGroupsftpusers中设置ForceCommandinternal-sftp、AllowTcpForwardingno、X11Forwardingno。

目录与所有权:Chroot根目录(如%h或/sftp/%u)必须由root:root拥有且权限755;可写目录在子目录中单独授权给相应用户。

防火墙:仅放行22/TCP,如条件允许仅允许受信IP段访问。

日志与监控:设置LogLevelVERBOSE,持续审计/var/log/secure。

定期更新:执行yumupdateopenssh-server保持修复最新漏洞。

二用户与权限隔离

创建专用组与用户:

groupaddsftpusers

useradd-m-gsftpusers-s/sbin/nologinsftpuser(或-s/bin/false)

目录结构示例:

/sftp/sftpuser(root:root,755)

/sftp/sftpuser/upload(sftpuser:sftpusers,755/775视业务而定)

Chroot与权限要点:Chroot目录及上级必须为root所有;如需上传,给对应用户在子目录授予写权限,避免对Chroot根目录可写。

公钥分发与权限:

mkdir-p~sftpuser/.ssh&&chmod700~sftpuser/.ssh

echo“<公钥>”>~sftpuser/.ssh/authorized_keys&&chmod600~sftpuser/.ssh/authorized_keys

chown-Rsftpuser:sftpusers~sftpuser/.ssh

可选:为SFTP用户设置umask002/022,统一新建文件权限。

三网络与登录防护

限制来源IP:

firewalld:firewall-cmd--permanent--zone=public--add-rich-rule=‘rulefamily=“ipv4”sourceaddress=“/32”portport=“22”protocol=“tcp”accept’&&firewall-cmd--reload

或仅放行白名单段,其余默认拒绝。

防暴力破解:部署Fail2ban,启用[sshd]jail,maxretry=5、bantime=3600,日志路径/var/log/secure。

端口与协议:尽量保持22/TCP不变更;如需端口迁移,同步更新防火墙与客户端配置,并谨慎评估现有自动化流程的兼容性。

连接测试:

sftpsftpuser@

验证仅密钥可登录、失败登录被封禁、日志有对应记录。

四已知漏洞处置要点

CVE-2020-15778(scp命令注入):

修复:升级到OpenSSH≥8.4;如无法升级,建议禁用scp(如重命名/usr/bin/scp为不可用或卸载openssh-clients,注意对运维流程影响)。

说明:该问题影响scp,不直接等同于SFTP子系统漏洞,但常见运维替代关系使风险外溢。

低版本OpenSSH历史漏洞:如扫描报出历史SFTP/SSH漏洞,建议升级至包含修复的版本(如8.5p1起修复若干问题);离线环境升级前准备telnet等应急通道,升级后及时关闭。

五快速配置示例

服务端/etc/ssh/sshd_config片段:

PermitRootLoginno

PasswordAuthenticationno;PubkeyAuthenticationyes

Subsystemsftpinternal-sftp

MatchGroupsftpusers

ChrootDirectory%h

ForceCommandinternal-sftp

AllowTcpForwardingno;X11Forwardingno

目录与权限:

chownroot:root/sftp/sftpuser&&chmod755/sftp/sftpuser

chownsftpuser:sftpusers/sftp/sftpuser/upload

生效与验证:

systemctlrestartsshd

tail-f/var/log/secure;sftpsftpuser@测试上传/下载与权限边界。