【Linux运维实战】系统性能优化与安全加固精要
最近在学习系统性能优化和安全加固,这是运维工程师必须掌握的硬核技能!今天把这两个关键主题的精华整理出来,帮助大家快速掌握核心要点。
一、系统性能优化核心要点
🎯 优化目标与原则
优化目标:
-
提升系统响应速度
-
提高资源利用率
-
避免系统瓶颈
核心原则:
-
监控先行:先分析瓶颈,再针对性优化
-
逐步调整:避免一次性修改过多参数
-
稳定性优先:优化后需充分测试
📊 性能监控工具集
1. 进程监控工具
# top - 基础监控
top
# 关键指标:%CPU(CPU占用率)、%MEM(内存占用率)、LOAD AVERAGE(系统负载)
# htop - 增强版(需安装)
sudo yum install htop -y
htop
2. 系统状态监控
# vmstat - 查看系统整体状态
vmstat 1 # 每秒输出一次
# 关键列:
# r:等待CPU的进程数(>CPU核数表示过载)
# si:每秒从磁盘读入swap的数据量
# so:每秒写入swap的数据量(频繁交换说明内存不足)
3. 磁盘I/O监控
# iostat - 查看磁盘I/O性能
iostat -xz 1 # 每秒刷新一次,显示详细信息
# 关键指标:
# %util:磁盘利用率(>80%表示瓶颈)
# await:I/O等待时间(越小越好)
4. 网络监控
# 查看TCP连接数
netstat -ant | grep ESTABLISHED | wc -l
# 统计套接字信息
ss -s
5. 高级监控工具
# sar - 系统活动报告(需安装sysstat)
sudo yum install sysstat -y
sar -u 1 3 # 查看CPU使用率(每秒1次,共3次)
sar -r # 查看内存使用历史
# dstat - 综合监控工具
sudo yum install dstat -y
dstat -cmsn # 监控CPU、内存、网络、磁盘
⚡ 子系统优化策略
1. CPU优化
# 调整进程优先级(范围:-20到19,越小优先级越高)
nice -n 19 ./script.sh # 以低优先级启动进程
renice 19 -p PID # 修改运行中进程的优先级
# 绑定CPU核心(减少上下文切换)
taskset -c 0,1 ./program # 绑定到CPU0和CPU1
# 内核参数调整
sudo vim /etc/sysctl.conf
# 添加:kernel.sched_child_runs_first = 1 (子进程优先调度)
sudo sysctl -p
2. 内存优化
# 调整Swap使用策略
sudo vim /etc/sysctl.conf
# 添加以下参数:
vm.swappiness = 10 # 降低Swap使用倾向(0-100,默认60)
vm.vfs_cache_pressure = 50 # 减少inode缓存回收频率
sudo sysctl -p
🔧 资源限制优化
修改用户级限制
# 编辑配置文件
sudo vim /etc/security/limits.conf
# 添加以下内容:
* soft nofile 65535 # 文件描述符软限制
* hard nofile 65535 # 文件描述符硬限制
# 生效方式:
# 1. 重启会话
# 2. 或执行:ulimit -n 65535
⚠️ 安全与注意事项
-
备份配置文件:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.backup sudo cp /etc/security/limits.conf /etc/security/limits.conf.backup -
灰度测试:先在测试环境验证参数调整效果
-
避免过度优化:如果没有明确瓶颈,保持默认配置即可
二、系统安全基线及加固
🛡️ 系统安全基线检查
1. 账户与认证安全
检查点1:默认账户状态
# 锁定不必要的默认账户
sudo passwd -l guest
sudo passwd -l test
# 删除不必要的账户
sudo userdel test
检查点2:密码策略配置
# 修改密码策略
sudo vim /etc/login.defs
# 设置:
PASS_MAX_DAYS 90 # 密码最长有效期90天
PASS_MIN_LEN 8 # 密码最小长度8位
PASS_WARN_AGE 7 # 密码到期前7天告警
# 安装并配置密码复杂度
sudo yum install libpam-pwquality -y
sudo vim /etc/security/pwquality.conf
# 设置:
minlen = 8 # 密码最少8位
dcredit = -1 # 至少包含1个数字
ucredit = -1 # 至少包含1个大写字母
lcredit = -1 # 至少包含1个小写字母
ocredit = -1 # 至少包含1个特殊字符
minclass = 3 # 至少包含3种字符类别
检查点3:禁止root直接登录
# 修改SSH配置
sudo vim /etc/ssh/sshd_config
# 设置:PermitRootLogin no
sudo systemctl restart sshd
检查点4:空密码账户检查
# 查找空密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow
2. 文件与目录权限
检查点1:关键文件权限
# 设置关键文件权限
chmod 644 /etc/passwd # 所有人可读,仅root可写
chmod 000 /etc/shadow # 仅root可访问
检查点2:全局可写文件检查
# 查找权限为777的文件
find / -perm -0777 -type f -exec ls -l {} \;
检查点3:无属主文件检查
# 查找并修复无属主文件
find / -nouser -o -nogroup | xargs chown root:root
检查点4:临时目录粘滞位
# 设置临时目录粘滞位
chmod +t /tmp
3. 日志与审计
检查点1:日志服务状态
# 确保日志服务运行
systemctl status rsyslog
systemctl status auditd
检查点2:关键日志权限
# 设置日志文件权限
chmod 640 /var/log/secure
检查点3:审计关键文件
# 配置auditd规则
sudo vim /etc/audit/rules.d/audit.rules
# 添加:-w /etc/passwd -p wa -k passwd_change
sudo systemctl restart auditd
4. 更新与补丁
检查点:系统更新检查
# 定期更新系统
yum update -y # CentOS/RedHat
apt update && apt upgrade -y # Debian/Ubuntu
🔒 系统安全加固措施
1. 账户与认证加固
加固点1:禁用默认账户与空密码账户
# 锁定默认账户
sudo passwd -l guest
# 删除空密码账户
sudo userdel $(awk -F: '($2 == "") {print $1}' /etc/shadow)
加固点2:强化密码策略
# 修改登录定义
sudo vim /etc/login.defs
# 设置:
PASS_MAX_DAYS 90 # 密码最长使用90天
PASS_MIN_DAYS 1 # 最短修改间隔1天
PASS_WARN_AGE 7 # 密码到期前7天提醒
# 配置密码复杂度
sudo vim /etc/security/pwquality.conf
# 设置:
minlen = 10 # 密码最小长度10位
minclass = 3 # 包含至少3种字符种类
加固点3:限制sudo权限
# 编辑sudoers文件
sudo visudo
# 添加以下内容:
# 仅允许admin组用户使用sudo
%admin ALL=(ALL) ALL
# 禁止普通用户执行危险命令
User_Alias RESTRICTED_USERS = alice, bob
Cmnd_Alias DANGEROUS_CMDS = /sbin/reboot, /sbin/shutdown
RESTRICTED_USERS ALL=(ALL) ALL, !DANGEROUS_CMDS
2. 文件系统与权限加固
加固点1:关键文件权限控制
# 设置敏感文件权限
chmod 600 /etc/shadow # 仅Root可读写
chmod 640 /etc/passwd # Root可读写,其他用户只读
加固点2:禁用危险权限文件
# 查找所有SUID/SGID文件
find / -perm /4000 -o -perm /2000 -exec ls {} \;
# 移除不必要的SUID权限
chmod u-s /usr/bin/example_tool
加固点3:挂载选项加固
# 编辑/etc/fstab文件
sudo vim /etc/fstab
# 为关键分区添加安全选项:
# /tmp分区
/tmp /tmp ext4 defaults,noexec,nosuid,nodev 0 0
# /home分区
/home /home ext4 defaults,nodev 0 0
📋 实践检查清单
性能优化检查清单
# 1. 检查系统负载
uptime
# 2. 检查内存使用
free -h
# 3. 检查磁盘I/O
iostat -x 1
# 4. 检查进程资源占用
ps aux --sort=-%cpu | head -5
安全加固检查清单
# 1. 检查空密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow
# 2. 检查root登录设置
grep "PermitRootLogin" /etc/ssh/sshd_config
# 3. 检查文件权限
ls -l /etc/passwd /etc/shadow
# 4. 检查SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) 2>/dev/null | head -10
💡 关键要点总结
性能优化要点
-
先监控,后优化:使用top、vmstat、iostat等工具找出瓶颈
-
逐步调整:一次只修改一个参数,观察效果
-
重视稳定性:优化后必须测试系统稳定性
安全加固要点
-
最小权限原则:只授予必要的最小权限
-
定期检查:建立定期安全检查机制
-
及时更新:保持系统和软件最新版本
通用建议
-
备份先行:修改重要配置前先备份
-
文档记录:记录所有优化和加固操作
-
测试验证:在生产环境应用前充分测试
记住:性能优化和安全加固是持续的过程,不是一次性的任务。建立定期检查和优化的习惯,才能确保系统始终保持最佳状态。
行动建议:从今天开始,每周执行一次系统性能检查,每月执行一次安全审计,让你的Linux系统既高效又安全!🔧🔒