防止CentOS SFTP被攻击需要从多个方面进行配置和优化,以下是一些关键步骤和建议:
1. 系统和软件要求
确保系统和软件满足最低安全要求:
- Linux发行版:CentOS 7及以上版本。
- OpenSSH服务器:4.8p1及以上版本,支持chroot功能。
2. 创建专门的SFTP用户组
创建一个专门的SFTP用户组,便于统一管理和权限控制:
groupadd sftpusers
3. 创建SFTP用户
创建SFTP用户并将其添加到专门的SFTP用户组中:
useradd -s /sbin/nologin -g sftpusers -d /sftp/sftpuser01 sftpuser01
4. 设置用户密码
为SFTP用户设置复杂且独特的密码,避免使用简单密码:
passwd sftpuser01
5. 配置用户目录权限
正确配置用户目录的权限,确保用户只能访问其家目录:
chown sftpuser01:sftpusers /sftp/sftpuser01 chmod 755 /sftp/sftpuser01
6. 配置SSH服务
编辑/etc/ssh/sshd_config
文件,配置SFTP相关设置:
Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
7. 禁用不必要的超级用户
检查并禁用不必要的超级用户账户,减少潜在的安全风险:
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'
8. 删除不必要的账号
删除所有不必要的默认账户,如adm, lp, sync等:
userdel username groupdel groupname
9. 强化用户口令
设置复杂的用户口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位:
PASS_MIN_LEN 10
10. 保护口令文件
使用chattr
命令给口令文件加上不可更改属性:
chattr +i /etc/passwd chattr +i /etc/shadow
11. 设置root账户自动注销时限
修改/etc/profile
文件中的TMOUT参数,设置root账户的自动注销时限:
TMOUT=300
12. 限制su命令
编辑/etc/pam.d/su
文件,限制只有特定组的用户才能使用su命令切换为root:
usermod –G wheel username
13. 防火墙设置
配置防火墙,允许SSH连接并限制其他不必要的服务:
sudo firewall-cmd --permanent --zonepublic --add-service=ssh sudo firewall-cmd --reload
14. 定期更新和补丁
定期检查并应用OpenSSH的最新版本和安全补丁,确保系统的安全性:
sudo yum update openssh-server
通过以上步骤,可以显著提高CentOS SFTP服务器的安全性,减少被攻击的风险。建议定期审查和更新安全配置,以应对不断变化的安全威胁。