centos sftp安全设置方法
导读:CentOS SFTP 安全设置方法 一 基础加固 更新系统与软件包:执行 sudo yum update,及时修补漏洞。 仅使用 SSH 协议 2:在 /etc/ssh/sshd_config 确保为 Protocol 2。 禁用 ro...
CentOS SFTP 安全设置方法
一 基础加固
- 更新系统与软件包:执行 sudo yum update,及时修补漏洞。
- 仅使用 SSH 协议 2:在 /etc/ssh/sshd_config 确保为 Protocol 2。
- 禁用 root 登录:设置 PermitRootLogin no。
- 禁用密码登录、启用密钥认证:设置 PasswordAuthentication no,并为用户部署 ~/.ssh/authorized_keys(权限 700/600)。
- 限制认证尝试与空闲超时:设置 MaxAuthTries 3、ClientAliveInterval 300、ClientAliveCountMax 2。
- 禁用不必要功能:设置 X11Forwarding no、AllowTcpForwarding no、PermitTunnel no。
- 使用 internal-sftp:设置 Subsystem sftp internal-sftp,便于与 chroot 配合并减少外部依赖。
二 用户与目录权限
- 创建专用用户与组:
- 组:sudo groupadd sftpusers
- 用户:sudo useradd -m -s /sbin/nologin sftpuser(禁止 shell 登录,仅用于 SFTP)
- 正确设置 chroot 目录权限(关键):
- 家目录属主必须为 root:root,权限 755:sudo chown root:root /home/sftpuser & & sudo chmod 755 /home/sftpuser
- 如需可写上传目录:在 chroot 内创建子目录并赋权给业务用户,例如:
- sudo mkdir -p /home/sftpuser/uploads
- sudo chown sftpuser:sftpusers /home/sftpuser/uploads & & sudo chmod 755 /home/sftpuser/uploads
- 说明:chroot 后用户的根为家目录,若家目录不归 root 所有或权限不当,将导致登录失败。
三 SSHD 配置示例
- 建议采用 Match Group 统一管理 SFTP 用户,示例:
- 启用内部 SFTP:
- Subsystem sftp internal-sftp
- 对 sftpusers 组应用安全策略:
- Match Group sftpusers
- ChrootDirectory %h(将用户限制在其主目录)
- ForceCommand internal-sftp(仅允许 SFTP,禁止 Shell)
- AllowTcpForwarding no
- X11Forwarding no
- PasswordAuthentication no(配合密钥登录)
- Match Group sftpusers
- 启用内部 SFTP:
- 可选:对特定用户或网段进一步限制(示例仅允许指定 IP 使用 SFTP):
- Match Address 192.168.1.100,192.168.1.101
- ForceCommand internal-sftp
- PasswordAuthentication yes(如确需口令,建议仅对受信网段开放)
- ChrootDirectory /home/%u
- AllowTcpForwarding no
- X11Forwarding no
- Match Address 192.168.1.100,192.168.1.101
- 修改后检查语法并重启:sudo sshd -t & & sudo systemctl restart sshd。
四 防火墙与访问控制
- 使用 firewalld 放行 SSH(SFTP 基于 SSH 端口 22):
- sudo firewall-cmd --permanent --add-service=ssh & & sudo firewall-cmd --reload
- 限制来源 IP(示例仅允许 192.168.1.100 访问 22 端口):
- sudo firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port protocol=“tcp” port=“22” accept’ & & sudo firewall-cmd --reload
- 验证:sudo firewall-cmd --list-all。
五 日志监控与验证
- 日志与审计:实时关注 /var/log/secure,对失败登录、异常时段连接进行告警与封禁。
- 连通性与权限验证:
- 连接测试:sftp sftpuser@your_server_ip
- 验证要点:仅能访问其 chroot 目录及其子目录(如 uploads),不可越权浏览其他路径。
- 维护与合规:
- 定期更新系统与 OpenSSH;
- 强制使用 密钥登录、定期轮换密钥;
- 结合 fail2ban 等工具对暴力破解进行自动封禁。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos sftp安全设置方法
本文地址: https://pptw.com/jishu/756817.html
