导语
Linux服务器安全配置基线是一套标准化的安全配置规范,覆盖账户管理、SSH加固、文件权限、防火墙和日志审计等核心领域。无论是新服务器上线还是合规检查,掌握这套基线都能让你事半功倍。本文从实战角度出发,逐项梳理配置要点。
一、账户与口令安全基线
账户安全是Linux安全的第一道防线。基线要求包括以下几个方面:
1. 口令生存周期
修改login.defs配置文件,设置密码最长使用期限不超过90天。PASS_MAX_DAYS设为90,PASS_MIN_DAYS设为7,PASS_WARN_AGE设为7。注意:该配置仅对新创建用户生效,已有账户需用chage命令单独设置。
2. 口令复杂度策略
在PAM配置中设置pam_pwquality模块,参数设为minlen=8、dcredit=-1、ucredit=-1、lcredit=-1、ocredit=-1。要求密码至少8位,必须包含大写字母、小写字母、数字和特殊字符中的至少三类。
3. 登录失败锁定
配置pam_tally2模块,连续5次认证失败后锁定账户300秒,root锁定600秒。这是防止暴力破解的基本手段。
4. 禁止root远程登录
修改SSH配置,将PermitRootLogin设置为no。前提是先创建一个具有sudo权限的普通用户,否则会把自己锁在门外。
5. 检查异常账户
定期检查系统中是否存在非root的UID为0账户,还应清理不必要的系统账户,锁定长期不使用的账户。
二、SSH安全加固
SSH是服务器管理的主要通道,也是最常被攻击的入口。加固措施包括:
1. 禁用密码认证,启用密钥认证
将PasswordAuthentication设置为no,PubkeyAuthentication设置为yes。密钥认证比密码更安全,能有效防止暴力破解。
2. 更改SSH默认端口
将Port改为非22的端口号,如2222。虽然改端口不能替代真正的安全措施,但能规避大量自动化扫描攻击。
3. 限制SSH访问IP
通过hosts.allow和hosts.deny限制来源IP,或使用AllowUsers和AllowGroups配置白名单,只允许可信来源连接。
4. 配置会话超时
设置ClientAliveInterval为300、ClientAliveCountMax为2,空闲连接5分钟后自动断开,减少被劫持的风险。
三、文件系统与权限基线
1. 关键目录权限设置
root主目录设置为700权限,关键配置文件设置为640或750权限,防止非授权用户读取敏感信息。
2. 查找未授权的SUID文件
使用find命令查找权限为4000的文件,SUID文件是提权攻击的常见目标,定期排查并移除不必要的SUID权限。
3. umask安全配置
将默认umask设置为027,确保新建文件不被其他用户读取。在全局profile中持久化配置。
4. 禁止全局可写目录
查找权限为0002的目录,除临时目录外,不应存在全局可写目录。
5. 检查无属主文件
查找系统中没有属主或属组的文件,这类文件可能被恶意利用,应统一归档或删除。
四、防火墙与服务精简
1. 启用防火墙
CentOS使用firewalld,Ubuntu使用ufw。只开放必要端口,默认拒绝所有入站连接。
2. 禁用不必要的服务
使用ss命令查看监听端口,关闭不需要的服务。每多开一个服务就多一个攻击面,最小化原则是安全基线的核心。
3. 安装fail2ban
fail2ban能自动封禁暴力破解的IP地址,是SSH防护的标配工具。安装后启用即可生效。
4. 启用SELinux或AppArmor
CentOS启用SELinux,Ubuntu启用AppArmor,为系统和应用程序提供额外的强制访问控制。
五、日志审计与持续监控
1. 配置远程日志
在rsyslog配置中添加远程日志服务器,实现日志异地备份,防止攻击者删除本地日志。
2. 启用auditd审计
安装auditd并配置审计规则,监控关键配置文件的变更操作,如密码文件和sudoers文件。
3. 日志文件权限
将关键日志文件设置为640权限,防止普通用户读取或篡改日志内容。
4. 系统超时自动注销
在全局profile中设置TMOUT=600,空闲10分钟自动注销终端会话。
总结与建议
Linux安全配置基线不是一劳永逸的工作,而是一个持续迭代的过程。建议每次新服务器上线都按基线清单逐项检查,定期复核已有服务器的配置是否偏移。可以将基线检查脚本化,结合自动化工具实现定期扫描和告警。安全加固做得越扎实,服务器被攻破的概率就越低。
相关推荐:
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论