CentOS SFTP 安全策略清单
一 身份与访问控制
二 传输与会话安全
三 目录与权限模型
四 日志监控与合规
五 推荐最小配置示例
目标:仅允许 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
yum install -y epel-release fail2ban && systemctl enable --now fail2ban