CentOS SFTP服务器如何进行安全加固
导读:CentOS SFTP服务器安全加固清单 一 基础加固 保持系统与软件包为最新:执行yum update -y,及时修补漏洞。 仅使用SFTP(基于SSH),无需额外“SSL/TLS”层;SFTP本身已通过SSH加密传输。 禁止root直...
CentOS SFTP服务器安全加固清单
一 基础加固
- 保持系统与软件包为最新:执行yum update -y,及时修补漏洞。
- 仅使用SFTP(基于SSH),无需额外“SSL/TLS”层;SFTP本身已通过SSH加密传输。
- 禁止root直接登录:在**/etc/ssh/sshd_config中设置PermitRootLogin no**。
- 使用SSH密钥认证,必要时禁用密码:启用PubkeyAuthentication yes,将PasswordAuthentication no;为账户部署authorized_keys并设置权限700/600。
- 限制可登录账户:使用AllowUsers或AllowGroups白名单,仅允许指定用户/组访问。
- 启用internal-sftp子系统:设置Subsystem sftp internal-sftp,性能更好、集成度更高。
- 禁用不必要功能:关闭X11Forwarding、TCPForwarding、端口转发与代理转发,减少攻击面。
- 启用详细日志:设置LogLevel VERBOSE,便于审计与追踪。
二 用户与目录隔离
- 创建专用sftpusers组并添加用户:
- groupadd sftpusers
- useradd -m -G sftpusers sftpuser
- 使用Chroot Jail限制用户根目录:在**/etc/ssh/sshd_config**中添加
- Match Group sftpusers
- ChrootDirectory %h
- ForceCommand internal-sftp
- AllowTcpForwarding no
- X11Forwarding no
- Match Group sftpusers
- 正确设置目录属主与权限(关键点):
- 用户的家目录及其上级目录必须属主为root:root,权限755,否则chroot会失败。
- 如需可写上传目录:在家目录下创建upload等子目录,设属主为sftpuser:sftpusers,权限755/775(按协作需求调整)。
- 示例:
- chown root:root /home/sftpuser & & chmod 755 /home/sftpuser
- mkdir /home/sftpuser/upload & & chown sftpuser:sftpusers /home/sftpuser/upload
三 网络与访问控制
- 防火墙仅放行SSH端口22:
- firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
- 如需更改端口,同步修改sshd_config的Port并放行新端口,避免被未授权访问。
- 限制来源IP(可选):在firewalld中使用富规则仅允许可信网段访问22/tcp。
- 防暴力破解:部署fail2ban,监控**/var/log/secure**对SSH登录失败进行封禁。
- 仅开放必要端口与协议,关闭不必要的服务与端口,减少暴露面。
四 监控审计与维护
- 集中审计:持续查看**/var/log/secure**,关注失败登录、异常时段与来源IP。
- 提升日志级别:在sshd_config设置LogLevel VERBOSE,记录更详细的会话与认证信息。
- 定期巡检:例行执行yum update与安全基线核查;对新增用户与密钥进行复核与轮换。
- 变更与回滚:修改**/etc/ssh/sshd_config前先备份;变更后用sshd -t语法检查,再systemctl restart sshd并保留一个root**控制台会话以验证。
五 一键最小可用配置示例
-
目标:仅允许sftpusers组成员通过密钥登录,使用chroot,禁用密码与转发,日志更详细。
-
步骤
- 创建用户与组
- groupadd sftpusers
- useradd -m -G sftpusers sftpuser
- passwd sftpuser(如仍保留密码,后续可禁用)
- 配置密钥登录
- mkdir -p /home/sftpuser/.ssh
- echo “公钥内容” > /home/sftpuser/.ssh/authorized_keys
- chown -R sftpuser:sftpusers /home/sftpuser/.ssh
- chmod 700 /home/sftpuser/.ssh & & chmod 600 /home/sftpuser/.ssh/authorized_keys
- 设置chroot目录权限
- chown root:root /home/sftpuser
- chmod 755 /home/sftpuser
- 编辑**/etc/ssh/sshd_config**(建议先备份)
- Port 22
- PermitRootLogin no
- PubkeyAuthentication yes
- PasswordAuthentication no
- ChallengeResponseAuthentication no
- UsePAM yes
- Subsystem sftp internal-sftp
- LogLevel VERBOSE
- Match Group sftpusers
- ChrootDirectory %h
- ForceCommand internal-sftp
- AllowTcpForwarding no
- X11Forwarding no
- 防火墙与重启
- firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
- sshd -t & & systemctl restart sshd
- 验证
- sftp sftpuser@服务器IP
- tail -f /var/log/secure 观察登录与权限错误提示
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SFTP服务器如何进行安全加固
本文地址: https://pptw.com/jishu/751966.html
