系统安全基础
学习 安全基础概念 相关知识
系统安全基础
学习目标
- 掌握信息安全的核心概念和基本原则
- 理解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
网络安全基础
网络安全设备
- 防火墙 (Firewall):过滤网络流量
- 入侵检测系统 (IDS):监控可疑活动
- 入侵防御系统 (IPS):主动阻止威胁
- 虚拟专用网络 (VPN):加密远程连接
- 负载均衡器:分发流量并提供DDoS防护
常见网络攻击与防御
1. 拒绝服务攻击 (DoS/DDoS)
防御措施:
- 使用CDN和DDoS防护服务
- 配置适当的连接限制
- 使用流量清洗服务
2. 中间人攻击 (MITM)
防御措施:
- 使用HTTPS/TLS加密
- 启用双向认证
- 使用VPN加密通信
3. 钓鱼攻击
防御措施:
- 员工安全意识培训
- 邮件过滤和防钓鱼工具
- 多因素认证
补丁管理
补丁管理流程
- 补丁评估:分析补丁的必要性和影响
- 测试:在测试环境验证补丁
- 部署:按照计划部署补丁
- 验证:确认补丁成功安装并解决问题
- 回滚计划:准备出现问题时的回滚方案
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 - 集中式日志管理
安全最佳实践
基本安全措施
- 定期更新系统和应用:及时安装安全补丁
- 使用强密码策略:复杂密码、定期更换、密码管理器
- 启用多因素认证:增加账户安全性
- 实施最小权限原则:用户只获得必要的最小权限
- 定期数据备份:遵循3-2-1备份原则
- 网络分段:将网络划分为不同安全区域
安全意识培训
定期对员工进行安全培训,内容包括:
- 密码安全和管理
- 识别钓鱼邮件
- 社会工程学攻击防范
- 安全事件报告流程
安全策略制定
制定完善的安全策略文档:
- 可接受使用政策 (AUP)
- 密码管理政策
- 远程访问政策
- 事件响应计划
- 变更管理流程
总结
系统安全是运维工作的重要组成部分,需要从多个层面进行保护:
- 账户安全:严格的用户管理和权限控制
- 系统加固:最小化安装、安全配置、补丁管理
- 网络安全:防火墙、加密通信、安全设备部署
- 监控审计:日志收集、入侵检测、定期安全审计
- 应急响应:制定安全事件响应计划,定期演练
通过实施这些安全基础措施,可以有效提高系统的安全性,保护企业数据和业务的安全运行。