第156集:系统安全加固

教学目标

  • 了解Linux系统安全加固的重要性和基本原理
  • 掌握账户安全加固的方法和技巧
  • 熟悉文件系统安全加固的措施
  • 学习服务安全加固的策略
  • 理解内核安全加固的方法
  • 能够制定完整的系统安全加固方案

主要知识点

  1. 系统安全加固概述
  2. 账户安全加固
  3. 文件系统安全加固
  4. 服务安全加固
  5. 内核安全加固
  6. 系统更新管理
  7. 安全最佳实践

实用案例分析

案例1:账户安全加固

目标:增强系统账户安全性,防止未授权访问。

操作步骤

  1. 禁用root远程登录
# 编辑SSH配置文件
sudo vim /etc/ssh/sshd_config

# 修改以下配置
PermitRootLogin no

# 重启SSH服务
sudo systemctl restart sshd
  1. 设置用户密码策略
# 编辑密码策略配置文件
sudo vim /etc/login.defs

# 设置密码最长使用天数
PASS_MAX_DAYS 90

# 设置密码最短使用天数
PASS_MIN_DAYS 7

# 设置密码最小长度
PASS_MIN_LEN 12

# 设置密码过期警告天数
PASS_WARN_AGE 14
  1. 禁用不必要的用户账户
# 查看系统账户
sudo awk -F: '($3 < 1000) {print $1}' /etc/passwd

# 禁用不需要的账户
sudo usermod -L username

# 锁定账户
sudo passwd -l username

案例2:文件系统安全加固

目标:增强文件系统安全性,保护重要文件和目录。

操作步骤

  1. 设置文件系统挂载选项
# 编辑fstab文件
sudo vim /etc/fstab

# 添加安全挂载选项
/dev/sda1 / ext4 defaults,nosuid,noexec,nodev 0 1
/dev/sda2 /home ext4 defaults,nosuid,noexec,nodev 0 2
/dev/sda3 /tmp ext4 defaults,nosuid,noexec,nodev 0 2
  1. 设置关键文件权限
# 设置/etc/passwd权限
sudo chmod 644 /etc/passwd

# 设置/etc/shadow权限
sudo chmod 600 /etc/shadow

# 设置/etc/sudoers权限
sudo chmod 440 /etc/sudoers

# 设置/etc/ssh/sshd_config权限
sudo chmod 600 /etc/ssh/sshd_config
  1. 实施文件完整性监控
# 安装AIDE
sudo apt install aide  # Debian/Ubuntu
sudo yum install aide  # CentOS/RHEL

# 初始化AIDE数据库
sudo aideinit

# 定期检查文件完整性
sudo aide --check

案例3:服务安全加固

目标:减少系统攻击面,增强服务安全性。

操作步骤

  1. 禁用不必要的服务
# 查看当前运行的服务
sudo systemctl list-unit-files --type=service --state=enabled

# 禁用不需要的服务
sudo systemctl disable service_name
sudo systemctl stop service_name
  1. 配置服务权限
# 为服务设置最小权限用户
sudo vim /etc/systemd/system/service_name.service

# 添加以下配置
[Service]
User=service_user
Group=service_group
NoNewPrivileges=true
PrivateTmp=true
  1. 启用服务日志审计
# 编辑auditd配置文件
sudo vim /etc/audit/audit.rules

# 添加服务日志审计规则
-w /var/log/service_name/ -p wa -k service_log

# 重启auditd服务
sudo systemctl restart auditd

案例4:内核安全加固

目标:增强内核安全性,防止内核级攻击。

操作步骤

  1. 配置sysctl安全参数
# 编辑sysctl配置文件
sudo vim /etc/sysctl.conf

# 添加以下安全参数
# 禁用IP转发
net.ipv4.ip_forward = 0

# 启用SYN cookie
net.ipv4.tcp_syncookies = 1

# 禁用ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

# 禁用源路由
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# 启用反向路径过滤
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# 禁用ICMP广播请求
net.ipv4.icmp_echo_ignore_broadcasts = 1

# 启用保护免受ICMP重定向攻击
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# 应用sysctl配置
sudo sysctl -p
  1. 启用内核模块签名验证
# 检查内核模块签名验证状态
sudo cat /proc/sys/kernel/modules_disabled

# 编辑grub配置文件
sudo vim /etc/default/grub

# 添加内核参数
GRUB_CMDLINE_LINUX="... module.sig_enforce=1"

# 更新grub配置
sudo update-grub  # Debian/Ubuntu
sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # CentOS/RHEL

课后练习

  1. 基础练习

    • 禁用root远程登录并测试是否生效
    • 设置密码策略,要求密码长度至少12位,包含大小写字母、数字和特殊字符
    • 禁用系统中不需要的服务
  2. 进阶练习

    • 配置文件系统挂载选项,为/tmp、/home等目录添加nosuid、noexec、nodev选项
    • 安装并配置AIDE文件完整性监控工具
    • 优化sysctl安全参数,增强系统安全性
  3. 挑战练习

    • 制定完整的系统安全加固方案,包括账户安全、文件系统安全、服务安全和内核安全
    • 编写自动化脚本,定期检查系统安全状态
    • 模拟安全攻击,测试系统加固效果

总结

本集详细介绍了Linux系统安全加固的核心知识点和实践方法,包括账户安全加固、文件系统安全加固、服务安全加固和内核安全加固等方面。通过实施这些加固措施,可以显著提高Linux系统的安全性,减少系统被攻击的风险。

系统安全加固是一个持续的过程,需要定期检查和更新安全措施,以应对不断变化的安全威胁。同时,安全加固也需要在安全性和可用性之间取得平衡,确保系统既安全又能正常运行。

通过本集的学习,读者应该能够掌握Linux系统安全加固的基本方法和技巧,能够根据实际情况制定和实施系统安全加固方案,提高系统的整体安全性。

« 上一篇 审计数据分析 下一篇 » 网络安全加固