安全部署防御维度都有哪些
CentOS 系统安全配置的主要意图是构建一个防御性架构,通过多层次防护措施降低系统被攻击的风险,确保数据和服务的安全性、完整性和可用性。具体意图可分为以下核心方面:
1. 最小化攻击面
• 意图:减少系统暴露的潜在漏洞
• 实现方式:
• 关闭非必要服务(如
avahi-daemon
、cups
)• 卸载无用软件包
• 限制网络开放端口(通过防火墙规则)
• 禁用不必要的协议(如 ICMP 响应)
2. 身份认证加固
• 意图:防止未授权访问
• 实现方式:
• 强制复杂密码策略(长度、字符类型)
• 禁用 root 远程登录
• 启用 SSH 密钥认证
• 配置账户锁定机制(如
fail2ban
)
3. 权限控制
• 意图:遵循最小权限原则
• 实现方式:
• 严格设置文件/目录权限(如
/etc/passwd
只读)• 清理 SUID/SGID 危险文件
• 通过 SELinux 实施强制访问控制(MAC)
• 配置合理的
umask
默认值
4. 入侵检测与防御
• 意图:实时监控和阻断恶意行为
• 实现方式:
• 启用审计服务(
auditd
)记录关键操作• 部署
fail2ban
防暴力破解• 定期扫描 rootkit(
rkhunter
、chkrootkit
)• 内核级防护(如 ASLR 内存随机化)
5. 数据保护
• 意图:防止敏感信息泄露或篡改
• 实现方式:
• 监控系统关键文件(如
/etc/shadow
的修改)• 加密通信(SSH 强加密算法)
• 日志集中存储(防删除篡改)
6. 合规性要求
• 意图:满足安全标准(如等保、ISO27001)
• 实现方式:
• 密码复杂度符合政策要求
• 留存审计日志(满足事后追溯)
• 定期漏洞扫描(如
lynis
自动化检查)
7. 持续性安全维护
• 意图:建立长期安全运维机制
• 实现方式:
• 自动安全更新(
yum-cron
)• 定期安全检查任务(通过
cron
调度)• 内核参数优化(如防 SYN 洪水攻击)
关键安全理念体现
• 纵深防御:不依赖单一防护层(网络+主机+应用)
• 默认拒绝:白名单机制(如防火墙只放行必要端口)
• 零信任:即使内部访问也需验证(如 SSH 密钥)
ℹ️ 注意:安全配置需平衡安全性与可用性。过度限制可能导致服务异常,建议在生产环境部署前进行充分测试。
具体配置如下
一、系统更新与补丁管理
1. 定期更新系统
sudo yum update -y
sudo yum upgrade -y
2. 启用自动安全更新
sudo yum install yum-cron -y
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
配置 /etc/yum/yum-cron.conf
设置自动更新策略
二、账户与认证安全
1. 密码策略配置
sudo vi /etc/login.defs
修改以下参数:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_MIN_LEN 12
PASS_WARN_AGE 14
2. 安装并配置 pam_pwquality
sudo yum install libpwquality -y
sudo vi /etc/security/pwquality.conf
添加/修改:
minlen = 12
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
3. 限制root远程登录
sudo vi /etc/ssh/sshd_config
修改:
PermitRootLogin no
三、SSH安全加固
1. 修改SSH默认端口
sudo vi /etc/ssh/sshd_config
修改:
Port 2222 # 改为非标准端口
2. 启用密钥认证,禁用密码认证
PubkeyAuthentication yes
PasswordAuthentication no
3. 限制SSH访问IP
AllowUsers user@192.168.1.*
4. 配置SSH超时
ClientAliveInterval 300
ClientAliveCountMax 0
5. 重启SSH服务
sudo systemctl restart sshd
四、防火墙配置
1. 启用firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
2. 基本规则配置
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=2222/tcp # 如果修改了SSH端口
sudo firewall-cmd --reload
3. 限制ICMP
sudo firewall-cmd --permanent --add-icmp-block=echo-reply
sudo firewall-cmd --permanent --add-icmp-block=echo-request
五、SELinux配置
1. 检查SELinux状态
sestatus
2. 配置为强制模式
sudo vi /etc/selinux/config
确保:
SELINUX=enforcing
六、文件系统安全
1. 关键目录权限设置
sudo chmod 700 /boot /usr/src /lib/modules /etc/sysconfig/network-scripts
sudo chmod 750 /var/log
2. 设置umask
sudo vi /etc/profile
添加:
umask 027
3. 禁用不必要的SUID/SGID
find / -perm /4000 -type f -exec ls -la {} \; 2>/dev/null
find / -perm /2000 -type f -exec ls -la {} \; 2>/dev/null
七、服务与进程安全
1. 禁用不必要的服务
sudo systemctl disable avahi-daemon cups bluetooth
sudo systemctl stop avahi-daemon cups bluetooth
2. 检查监听端口
sudo netstat -tulnp
sudo ss -tulnp
八、日志与监控
1. 启用审计服务
sudo yum install audit -y
sudo systemctl enable auditd
sudo systemctl start auditd
2. 配置审计规则
sudo vi /etc/audit/audit.rules
添加:
-w /etc/passwd -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/shadow -p wa -k identity
3. 安装并配置fail2ban
sudo yum install epel-release -y
sudo yum install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
九、内核参数加固
1. 修改sysctl配置
sudo vi /etc/sysctl.conf
添加:
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.all.accept_redirects=0
net.ipv6.conf.all.accept_redirects=0
net.ipv4.tcp_syncookies=1
kernel.exec-shield=1
kernel.randomize_va_space=2
2. 应用配置
sudo sysctl -p
十、定期安全检查
1. 安装安全检查工具
sudo yum install rkhunter chkrootkit lynis -y
2. 定期扫描
sudo rkhunter --check
sudo chkrootkit
sudo lynis audit system
3. 设置cron任务定期检查
sudo crontab -e
添加:
0 3 * * * /usr/bin/rkhunter --check --cronjob
通过以上全面的安全配置,可以显著提高CentOS系统的安全性。根据实际环境需求,可能需要调整某些配置项。建议在实施前在测试环境验证,并确保有完整的备份和回滚方案。
不想错过文章内容?读完请点一下“在看”,加个“关注”,您的支持是我创作的动力
期待您的一键三连支持(点赞、在看、分享~)