系统安全基础

学习 安全基础概念 相关知识

系统安全基础

学习目标

  • 掌握信息安全的核心概念和基本原则
  • 理解Linux系统安全的关键组件和配置方法
  • 能够实施基本的系统安全防护措施
  • 了解安全账户管理和权限控制的最佳实践

安全基础概念

安全的三大要素

  • 保密性 (Confidentiality):防止未授权访问敏感信息
  • 完整性 (Integrity):确保数据不被未授权修改
  • 可用性 (Availability):确保系统和数据在需要时可正常访问

安全威胁类型

  • 被动威胁:监听、信息收集、流量分析等
  • 主动威胁:入侵、数据篡改、拒绝服务攻击等
  • 内部威胁:内部人员滥用权限、疏忽大意等
  • 外部威胁:黑客攻击、恶意软件、APT攻击等

Linux系统安全

账户与权限管理

1. 用户账户安全

# 查看当前用户
whoami

# 查看所有用户
cat /etc/passwd

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

# 删除未使用账户
sudo userdel username

# 锁定账户(但保留主目录)
sudo usermod -e 1 username  # 设置过期日期为1970-01-01

2. 密码策略

# 设置密码复杂度要求(编辑/etc/security/pwquality.conf)
minlen = 12          # 最小密码长度
minclass = 4         # 最少字符类别数(大写、小写、数字、特殊字符)
dcredit = -1         # 至少一个数字
lcredit = -1         # 至少一个小写字母
ucredit = -1         # 至少一个大写字母
ocredit = -1         # 至少一个特殊字符

# 检查密码策略设置
cat /etc/login.defs  # 查看密码过期策略

3. sudo权限管理

# 编辑sudoers文件(使用visudo确保语法正确)
sudo visudo

# 示例配置:给用户特定命令权限
testuser ALL=(ALL:ALL) /usr/bin/systemctl restart nginx

# 给用户组权限
%developers ALL=(ALL) NOPASSWD:ALL

文件系统权限

基本权限

# 查看文件权限
ls -la filename

# 修改文件权限
chmod 755 filename      # rwxr-xr-x
chmod u=rwx,g=rx,o=rx filename

# 修改目录权限
chmod -R 750 directory

# 设置SUID(执行时以文件所有者权限运行)
chmod u+s /usr/bin/passwd

# 设置SGID(执行时以文件组权限运行)
chmod g+s directory

# 设置粘性位(目录中只有所有者和root可删除文件)
chmod +t /tmp

ACL权限控制

# 安装ACL工具(Ubuntu/Debian)
sudo apt-get install acl

# CentOS/RHEL
sudo yum install acl

# 设置文件ACL
setfacl -m u:username:rwx filename

# 设置目录ACL
setfacl -m d:u:username:rwx directory  # 默认权限

# 查看ACL
getfacl filename

系统加固

1. 最小化原则

# 查看并停止不必要的服务
systemctl list-units --type=service

sudo systemctl stop service_name
sudo systemctl disable service_name

# 卸载未使用的软件包
sudo apt-get autoremove --purge  # Debian/Ubuntu
sudo yum remove package_name     # CentOS/RHEL

2. SSH安全配置

编辑/etc/ssh/sshd_config

# 禁用root远程登录
PermitRootLogin no

# 限制SSH版本
Protocol 2

# 使用密钥认证
PasswordAuthentication no

# 限制登录用户
AllowUsers username1 username2

# 修改默认端口
Port 2222

# 设置登录超时
ClientAliveInterval 300
ClientAliveCountMax 2

重启SSH服务:

sudo systemctl restart sshd

3. 防火墙配置

使用iptables:

# 查看当前规则
iptables -L -n

# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许SSH访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 保存规则
netfilter-persistent save  # Debian/Ubuntu
iptables-save > /etc/sysconfig/iptables  # CentOS/RHEL

Windows系统安全

账户安全

# 查看本地用户
Get-LocalUser

# 禁用Guest账户
Disable-LocalUser -Name "Guest"

# 创建强密码策略
net accounts /minpwlen:12 /maxpwage:30 /minpwage:1 /uniquepw:5 /lockoutthreshold:5 /lockoutduration:15 /lockoutwindow:15

# 启用账户锁定策略
secpol.msc  # 打开本地安全策略

Windows防火墙配置

# 查看防火墙状态
Get-NetFirewallProfile

# 启用防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

# 允许特定端口
New-NetFirewallRule -DisplayName "Allow SSH" -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow

# 阻止特定IP
New-NetFirewallRule -DisplayName "Block Malicious IP" -Direction Inbound -RemoteAddress 192.168.1.100 -Action Block

Windows安全配置

# 启用Windows Defender
Set-MpPreference -DisableRealtimeMonitoring 0

# 运行恶意软件扫描
Start-MpScan -ScanType FullScan

# 启用Windows更新
Set-Service wuauserv -StartupType Automatic
Start-Service wuauserv

网络安全基础

网络安全设备

  1. 防火墙 (Firewall):过滤网络流量
  2. 入侵检测系统 (IDS):监控可疑活动
  3. 入侵防御系统 (IPS):主动阻止威胁
  4. 虚拟专用网络 (VPN):加密远程连接
  5. 负载均衡器:分发流量并提供DDoS防护

常见网络攻击与防御

1. 拒绝服务攻击 (DoS/DDoS)

防御措施

  • 使用CDN和DDoS防护服务
  • 配置适当的连接限制
  • 使用流量清洗服务

2. 中间人攻击 (MITM)

防御措施

  • 使用HTTPS/TLS加密
  • 启用双向认证
  • 使用VPN加密通信

3. 钓鱼攻击

防御措施

  • 员工安全意识培训
  • 邮件过滤和防钓鱼工具
  • 多因素认证

补丁管理

补丁管理流程

  1. 补丁评估:分析补丁的必要性和影响
  2. 测试:在测试环境验证补丁
  3. 部署:按照计划部署补丁
  4. 验证:确认补丁成功安装并解决问题
  5. 回滚计划:准备出现问题时的回滚方案

Linux补丁管理

# Debian/Ubuntu系统更新
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

# 检查安全更新
sudo unattended-upgrade -v

# CentOS/RHEL系统更新
sudo yum update
sudo yum security-minimal  # 仅更新安全补丁

# 自动更新配置
# Debian/Ubuntu编辑 /etc/apt/apt.conf.d/20auto-upgrades
# CentOS/RHEL使用 yum-cron 或 dnf-automatic

Windows补丁管理

# 检查更新
Get-WindowsUpdate

# 安装更新
Install-WindowsUpdate -AcceptAll -AutoReboot

# 通过组策略配置自动更新
# gpedit.msc > 计算机配置 > 管理模板 > Windows组件 > Windows更新

日志管理与审计

Linux日志管理

# 查看系统日志
cat /var/log/syslog      # Debian/Ubuntu
cat /var/log/messages    # CentOS/RHEL

# 查看认证日志
cat /var/log/auth.log    # Debian/Ubuntu
cat /var/log/secure      # CentOS/RHEL

# 实时查看日志
tail -f /var/log/syslog

# 搜索特定模式
grep "error" /var/log/syslog

# 使用journalctl管理日志
journalctl -p err..emerg  # 查看错误日志
journalctl -u nginx.service  # 查看服务日志

审计配置

# 安装auditd
sudo apt-get install auditd    # Debian/Ubuntu
sudo yum install audit        # CentOS/RHEL

# 配置审计规则
sudo nano /etc/audit/rules.d/audit.rules

# 添加监控文件访问规则
-a always,exit -F path=/etc/passwd -F perm=wa -k passwd_changes

# 重启审计服务
sudo systemctl restart auditd

# 查看审计日志
auditctl -l  # 列出规则
auditctl -s  # 查看状态
aureport -k passwd_changes  # 按键搜索

常见安全工具

1. 漏洞扫描

# OpenVAS/Greenbone - 开源漏洞扫描器
# 安装后通过Web界面访问

# 基本nmap扫描
nmap -sV -p- 192.168.1.0/24

# Nikto - Web服务器漏洞扫描
nikto -h https://example.com

2. 入侵检测

# OSSEC - 主机入侵检测
# 安装配置后监控系统活动

# Fail2ban - 防止暴力破解
# 安装并配置Jail

3. 日志分析

# ELK Stack (Elasticsearch, Logstash, Kibana)
# 收集、索引和可视化日志

# Graylog - 集中式日志管理

安全最佳实践

基本安全措施

  1. 定期更新系统和应用:及时安装安全补丁
  2. 使用强密码策略:复杂密码、定期更换、密码管理器
  3. 启用多因素认证:增加账户安全性
  4. 实施最小权限原则:用户只获得必要的最小权限
  5. 定期数据备份:遵循3-2-1备份原则
  6. 网络分段:将网络划分为不同安全区域

安全意识培训

定期对员工进行安全培训,内容包括:

  • 密码安全和管理
  • 识别钓鱼邮件
  • 社会工程学攻击防范
  • 安全事件报告流程

安全策略制定

制定完善的安全策略文档:

  • 可接受使用政策 (AUP)
  • 密码管理政策
  • 远程访问政策
  • 事件响应计划
  • 变更管理流程

总结

系统安全是运维工作的重要组成部分,需要从多个层面进行保护:

  1. 账户安全:严格的用户管理和权限控制
  2. 系统加固:最小化安装、安全配置、补丁管理
  3. 网络安全:防火墙、加密通信、安全设备部署
  4. 监控审计:日志收集、入侵检测、定期安全审计
  5. 应急响应:制定安全事件响应计划,定期演练

通过实施这些安全基础措施,可以有效提高系统的安全性,保护企业数据和业务的安全运行。