第156集:系统安全加固
教学目标
- 了解Linux系统安全加固的重要性和基本原理
- 掌握账户安全加固的方法和技巧
- 熟悉文件系统安全加固的措施
- 学习服务安全加固的策略
- 理解内核安全加固的方法
- 能够制定完整的系统安全加固方案
主要知识点
- 系统安全加固概述
- 账户安全加固
- 文件系统安全加固
- 服务安全加固
- 内核安全加固
- 系统更新管理
- 安全最佳实践
实用案例分析
案例1:账户安全加固
目标:增强系统账户安全性,防止未授权访问。
操作步骤:
- 禁用root远程登录
# 编辑SSH配置文件
sudo vim /etc/ssh/sshd_config
# 修改以下配置
PermitRootLogin no
# 重启SSH服务
sudo systemctl restart sshd- 设置用户密码策略
# 编辑密码策略配置文件
sudo vim /etc/login.defs
# 设置密码最长使用天数
PASS_MAX_DAYS 90
# 设置密码最短使用天数
PASS_MIN_DAYS 7
# 设置密码最小长度
PASS_MIN_LEN 12
# 设置密码过期警告天数
PASS_WARN_AGE 14- 禁用不必要的用户账户
# 查看系统账户
sudo awk -F: '($3 < 1000) {print $1}' /etc/passwd
# 禁用不需要的账户
sudo usermod -L username
# 锁定账户
sudo passwd -l username案例2:文件系统安全加固
目标:增强文件系统安全性,保护重要文件和目录。
操作步骤:
- 设置文件系统挂载选项
# 编辑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- 设置关键文件权限
# 设置/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- 实施文件完整性监控
# 安装AIDE
sudo apt install aide # Debian/Ubuntu
sudo yum install aide # CentOS/RHEL
# 初始化AIDE数据库
sudo aideinit
# 定期检查文件完整性
sudo aide --check案例3:服务安全加固
目标:减少系统攻击面,增强服务安全性。
操作步骤:
- 禁用不必要的服务
# 查看当前运行的服务
sudo systemctl list-unit-files --type=service --state=enabled
# 禁用不需要的服务
sudo systemctl disable service_name
sudo systemctl stop service_name- 配置服务权限
# 为服务设置最小权限用户
sudo vim /etc/systemd/system/service_name.service
# 添加以下配置
[Service]
User=service_user
Group=service_group
NoNewPrivileges=true
PrivateTmp=true- 启用服务日志审计
# 编辑auditd配置文件
sudo vim /etc/audit/audit.rules
# 添加服务日志审计规则
-w /var/log/service_name/ -p wa -k service_log
# 重启auditd服务
sudo systemctl restart auditd案例4:内核安全加固
目标:增强内核安全性,防止内核级攻击。
操作步骤:
- 配置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- 启用内核模块签名验证
# 检查内核模块签名验证状态
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课后练习
基础练习
- 禁用root远程登录并测试是否生效
- 设置密码策略,要求密码长度至少12位,包含大小写字母、数字和特殊字符
- 禁用系统中不需要的服务
进阶练习
- 配置文件系统挂载选项,为/tmp、/home等目录添加nosuid、noexec、nodev选项
- 安装并配置AIDE文件完整性监控工具
- 优化sysctl安全参数,增强系统安全性
挑战练习
- 制定完整的系统安全加固方案,包括账户安全、文件系统安全、服务安全和内核安全
- 编写自动化脚本,定期检查系统安全状态
- 模拟安全攻击,测试系统加固效果
总结
本集详细介绍了Linux系统安全加固的核心知识点和实践方法,包括账户安全加固、文件系统安全加固、服务安全加固和内核安全加固等方面。通过实施这些加固措施,可以显著提高Linux系统的安全性,减少系统被攻击的风险。
系统安全加固是一个持续的过程,需要定期检查和更新安全措施,以应对不断变化的安全威胁。同时,安全加固也需要在安全性和可用性之间取得平衡,确保系统既安全又能正常运行。
通过本集的学习,读者应该能够掌握Linux系统安全加固的基本方法和技巧,能够根据实际情况制定和实施系统安全加固方案,提高系统的整体安全性。