CentOS SFTP安全策略有哪些推荐
CentOS SFTP 安全策略清单
一 身份与访问控制
- 使用专用 SFTP 用户/用户组(如:sftpusers),禁止共享账号与系统账号滥用。
- 禁用root通过 SSH 登录:设置PermitRootLogin no。
- 采用SSH 密钥认证为主,必要时再启用密码;在 /etc/ssh/sshd_config 中配置:PubkeyAuthentication yes、PasswordAuthentication no。
- 仅允许指定用户或组访问 SFTP:在 sshd_config 使用Match User/Group进行精细化策略下发。
- 限制来源 IP:在 firewalld 中按源地址放通 22/TCP,或在 sshd_config 的 Match Address 块中限制。
- 启用Fail2ban防暴力破解,针对 sshd 设置自动封禁规则。
二 传输与会话安全
- 使用internal-sftp 子系统:设置Subsystem sftp internal-sftp,更安全且易于与 chroot 配合。
- 强制仅 SFTP:在 Match 块中配置ForceCommand internal-sftp。
- 禁用不必要通道与功能:关闭X11Forwarding、AllowTcpForwarding、端口转发与代理转发,减少攻击面。
- 仅开放必要端口:通过firewalld仅放行 22/TCP,并定期审查规则。
- 保持组件更新:及时更新 OpenSSH 与系统补丁,修复已知漏洞。
三 目录与权限模型
- 采用Chroot 监狱:将用户根目录限制在其主目录或统一目录(如 /srv/sftp),在 Match 块中设置ChrootDirectory。
- 满足 chroot 的权限前提:Chroot 根目录必须由root 拥有且权限为755;为用户创建可写子目录(如 uploads),由用户本人拥有。
- 最小权限原则:禁止用户修改根目录属性;必要时使用ACL对共享目录进行精细化授权。
- 示例目录结构:
- /srv/sftp(root:root,755)
- /srv/sftp/sftpuser(root:root,755)
- /srv/sftp/sftpuser/uploads(sftpuser:sftpusers,775/700 视业务而定)
四 日志监控与合规
- 启用并集中审计 SSH/SFTP 日志:重点查看**/var/log/secure**,监控失败登录、异常时段与来源 IP。
- 结合 Fail2ban 与系统日志分析,形成告警与处置闭环。
- 定期复核用户与目录权限,清理过期账号与共享目录,保持最小权限。
五 推荐最小配置示例
-
目标:仅允许 sftpusers 组成员通过密钥登录,chroot 到各自家目录,仅能写入 uploads 子目录,禁用 root 与其他转发功能。
-
步骤
-
创建用户与目录
groupadd sftpusers
useradd -m -g sftpusers -s /bin/false sftpuser
echo “StrongPass!” | passwd --stdin sftpuser # 若仍启用密码
mkdir -p /home/sftpuser/uploads
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
chown sftpuser:sftpusers /home/sftpuser/uploads
chmod 775 /home/sftpuser/uploads -
配置公钥(推荐)
mkdir -p /home/sftpuser/.ssh
echo “ssh-rsa AAAAB3NzaC1yc2E…” > > /home/sftpuser/.ssh/authorized_keys
chown -R sftpuser:sftpusers /home/sftpuser/.ssh
chmod 700 /home/sftpuser/.ssh
chmod 600 /home/sftpuser/.ssh/authorized_keys -
配置 /etc/ssh/sshd_config(片段)
Port 22
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PermitTunnel no -
防火墙与防暴力
firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
或按源 IP 放通:firewall-cmd --permanent --zone=trusted --add-source=1.2.3.4
yum install -y epel-release fail2ban & & systemctl enable --now fail2ban
- 重启与验证
systemctl restart sshd
sftp sftpuser@your_server_ip
注:修改 sshd_config 前先备份;变更后用 sshd -t 检查语法,避免锁死。
-
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SFTP安全策略有哪些推荐
本文地址: https://pptw.com/jishu/778813.html
