温馨提示×

centos sftp怎样保安全

小樊
33
2026-10-14 18:42:22
栏目: 智能运维

在 CentOS 上保障 SFTP 安全,通常从账户隔离、权限控制、传输加密、网络限制、审计监控几个方面入手。下面给你一套实用且可落地的方案。


一、使用独立 SFTP 用户(不要直接用系统账号)

1. 创建专用 SFTP 用户组

groupadd sftpusers

2. 创建 SFTP 用户

useradd -m -s /sbin/nologin -g sftpusers sftpuser
passwd sftpuser

/sbin/nologin 禁止 SSH 登录,只能 SFTP


二、使用 Chroot 限制目录(最重要)

1. 修改 SSH 配置

vi /etc/ssh/sshd_config

注释或删除:

# Subsystem sftp /usr/libexec/openssh/sftp-server

添加:

Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /sftp/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

2. 创建 Chroot 目录

mkdir -p /sftp/sftpuser
chown root:root /sftp/sftpuser
chmod 755 /sftp/sftpuser

mkdir /sftp/sftpuser/upload
chown sftpuser:sftpusers /sftp/sftpuser/upload

✅ Chroot 目录必须属主是 root


三、禁用 SSH 密码登录(推荐密钥)

1. 生成密钥(客户端)

ssh-keygen

2. 上传公钥

mkdir -p /home/sftpuser/.ssh
cat id_rsa.pub >> /home/sftpuser/.ssh/authorized_keys
chown -R sftpuser:sftpusers /home/sftpuser/.ssh
chmod 700 /home/sftpuser/.ssh
chmod 600 /home/sftpuser/.ssh/authorized_keys

3. 修改 sshd_config

PasswordAuthentication no
PubkeyAuthentication yes

四、限制 SFTP 网络访问

1. 防火墙限制 IP(示例)

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
firewall-cmd --reload

2. 修改 SFTP 端口(非必须)

Port 2222

五、加强 SSH / SFTP 安全配置

PermitRootLogin no
MaxAuthTries 3
ClientAliveInterval 300
LoginGraceTime 30

重启服务:

systemctl restart sshd

六、日志与审计

1. 查看 SFTP 日志

tail -f /var/log/secure

2. 可加 audit(高级)

yum install -y audit
auditctl -w /sftp -p rwxa

七、可选增强(企业级)

  • ✅ Fail2Ban 防暴力破解
  • ✅ SELinux 开启并配置
  • ✅ 使用 SFTP + TLS(极少需要)
  • ✅ 使用堡垒机 / Jump Server

总结一句话

CentOS SFTP 安全 = Chroot + nologin + 密钥登录 + 防火墙 + 日志审计

如果你需要:

  • 只给上传权限
  • 多用户隔离
  • Docker / 云服务器场景

可以直接说你的使用场景,我给你定制配置。

0 踩