CentOS环境下的安全策略有哪些
导读:CentOS环境下的安全策略 1. 账户与权限管理 禁用非必要超级用户:通过cat /etc/passwd | awk -F: '{print $1, $3}' | grep ' 0$'检测UID=0的非root用户,使用passwd -...
CentOS环境下的安全策略
1. 账户与权限管理
- 禁用非必要超级用户:通过
cat /etc/passwd | awk -F: '{ print $1, $3} ' | grep ' 0$'
检测UID=0的非root用户,使用passwd -l < 用户名>
锁定或修改shell为/sbin/nologin
禁止登录。 - 删除不必要账号:移除默认闲置账号(如
adm
、lp
、sync
等),使用userdel < 用户名>
、groupdel < 组名>
清理,降低攻击面。 - 强化口令策略:修改
/etc/login.defs
设置PASS_MIN_LEN 10
(密码最小长度),要求包含大小写字母、数字和特殊字符;检查空口令账户awk -F: '($2 == "") { print $1} ' /etc/shadow
并强制设置密码。 - 保护口令文件:使用
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
设置不可更改属性,防止未授权修改。 - 限制su命令:编辑
/etc/pam.d/su
添加auth required pam_wheel.so use_uid
,仅允许wheel
组成员使用su切换root,降低权限滥用风险。
2. 防火墙配置
- 启用firewalld:CentOS 7+默认使用firewalld,通过
systemctl start firewalld & & systemctl enable firewalld
启动并设为开机自启。 - 设置默认区域策略:将默认区域改为
drop
(拒绝所有未明确允许的流量),使用firewall-cmd --set-default-zone=drop
,仅开放必要端口(如SSH 22、HTTP 80)。 - 最小化开放端口:仅允许业务必需的服务端口,如
firewall-cmd --zone=public --add-port=22/tcp --permanent
(SSH),--reload
生效;避免开放高危端口(如3389、135)。 - 使用rich规则精细化控制:通过
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port=22 protocol='tcp' accept"
限制特定IP访问关键服务,提升安全性。 - 配置日志记录:启用防火墙日志
firewall-cmd --set-log-denied=xml
,通过journalctl -u firewalld
或/var/log/messages
监控异常流量,及时发现攻击行为。
3. SELinux安全增强
- 启用SELinux:通过
sestatus
检查状态(需显示enforcing
),修改/etc/selinux/config
中SELINUX=enforcing
并重启,确保强制访问控制生效。 - 配置正确上下文:使用
ls -Z
查看文件/进程上下文,semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
定义持久化规则,restorecon -Rv /var/www/html
应用,确保服务进程仅能访问授权资源。 - 处理AVC拒绝:通过
ausearch -m avc -ts today
查看SELinux拒绝日志,使用audit2allow -M mypolicy
生成自定义策略(最小化权限),semodule -i mypolicy.pp
加载,解决服务运行时的权限问题。 - 遵循最小权限原则:将服务运行在专有域(如
httpd_t
而非unconfined_t
),避免过度授权;定期审查SELinux策略,禁用不必要的布尔值(如setsebool -P httpd_can_network_connect=0
)。
4. SSH服务安全
- 禁用root远程登录:编辑
/etc/ssh/sshd_config
,设置PermitRootLogin no
,防止root账户被暴力破解。 - 使用密钥认证:生成SSH密钥对(
ssh-keygen -t rsa
),将公钥复制到服务器ssh-copy-id user@ip
,修改/etc/ssh/sshd_config
设置PasswordAuthentication no
,替代密码认证,提升登录安全性。 - 限制登录用户:在
/etc/ssh/sshd_config
中添加AllowUsers < username1> < username2>
,仅允许指定用户通过SSH登录,减少攻击入口。 - 修改SSH端口:将默认22端口改为高位端口(如
Port 2222
),降低自动化扫描攻击概率;需同步修改防火墙规则允许新端口。
5. 系统更新与补丁管理
- 定期更新系统:使用
yum update -y
或dnf update -y
定期更新操作系统及软件包,修复已知安全漏洞(如内核、OpenSSL漏洞)。 - 订阅安全公告:关注CentOS官方安全公告(如
centos-announce
邮件列表),及时获取高危漏洞补丁,避免延迟修复导致系统暴露。
6. 日志与监控
- 启用auditd审计:安装
auditd
(yum install auditd -y
),启动并设为开机自启(systemctl start auditd & & systemctl enable auditd
),记录用户操作(如sudo
使用)、文件修改等关键事件。 - 监控关键日志:定期检查
/var/log/secure
(认证日志)、/var/log/messages
(系统日志)、/var/log/audit/audit.log
(审计日志),使用grep "Failed password" /var/log/secure
查找暴力破解尝试,及时响应异常。 - 使用监控工具:部署ELK Stack(Elasticsearch+Logstash+Kibana)或Prometheus+Grafana集中收集、分析日志,设置告警规则(如频繁登录失败),提升监控效率。
7. 其他安全措施
- 禁用ctrl+alt+delete重启:编辑
/etc/inittab
,注释ca::ctrlaltdel:/sbin/shutdown -t3 -r now
行,防止物理接触或误操作导致系统意外重启。 - 设置登录超时:修改
/etc/profile
,添加TMOUT=300
(300秒无操作自动注销),减少未授权访问风险;需执行source /etc/profile
激活。 - 备份关键数据:定期备份系统配置(
/etc
)、数据库(如MySQL的/var/lib/mysql
)、用户数据(/home
)到异地或云存储,使用rsync
或tar
工具,确保数据可恢复。 - 使用安全工具:部署Fail2Ban(
yum install fail2ban -y
)防止SSH暴力破解,通过clamav
(yum install clamav -y
)扫描恶意软件,提升系统整体安全性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS环境下的安全策略有哪些
本文地址: https://pptw.com/jishu/725082.html