
- 安全第一: 所有操作都应优先考虑安全性。
- 文档至上: 详尽记录所有配置变更、操作步骤和决策原因。
- 最小权限: 用户和服务只拥有完成其任务所必需的最低权限。
- 可重复性: 尽可能使用自动化工具(如脚本、配置管理)确保环境一致性和可重复部署。
- 监控与告警: 没有监控等于盲人摸象,及时告警是快速响应的关键。
- 备份与恢复: 备份必须存在、可用且定期验证恢复能力。
指南目录:
- 规划与准备
- 操作系统安装与初始配置
- 网络配置
- 系统安全加固
- 用户与权限管理
- 软件包管理与服务安装
- 存储管理
- 监控与日志
- 备份与恢复策略
- 日常维护与更新
- 性能调优(基础)
- 故障排查基础
- 自动化与配置管理简介
- 文档
规划与准备
- 明确需求:
- 服务器的用途是什么?(Web服务器、数据库服务器、文件服务器、应用服务器、虚拟化主机等?)
- 预期的负载量(CPU、内存、磁盘I/O、网络带宽)?
- 需要多少存储空间?类型?(SSD/HDD)是否需要RAID?RAID级别?
- 操作系统选择?(Linux发行版 – Ubuntu/CentOS/Debian/等, Windows Server?)
- 网络需求:IP地址、子网掩码、网关、DNS、防火墙规则、是否需要公网访问?
- 高可用性要求?是否需要集群或负载均衡?
- 硬件选择/云实例选择:
- 根据需求选择合适的物理服务器规格或云服务商实例类型。
- 考虑冗余:电源、网卡、磁盘(RAID)。
- IP地址与域名规划:
- 分配静态IP地址(强烈推荐服务器使用静态IP)。
- 规划DNS记录(A/AAAA、CNAME等)。
- 访问策略:
- 谁需要访问服务器?(管理员、开发人员、特定服务账号)
- 通过什么方式访问?(SSH、RDP、控制台、Web管理界面)
- 制定初步的防火墙规则草案。
操作系统安装与初始配置
- 安装介质: 准备官方ISO镜像(从可信来源下载并验证校验和)。
- 安装过程:
- 选择最小化安装(Minimal Install),只安装必要的包,减少攻击面。
- 磁盘分区:
/boot(引导分区, 建议500MB-1GB)- (根分区, 建议50GB+)
/var(存放日志、数据库等经常变化的文件, 建议根据应用需求分配, 足够大)/home(可选,用户家目录)swap(交换分区, 传统规则是内存的1-2倍, 现代大内存系统可适当减小或不设, 使用swap文件更灵活 – Linux)- 最佳实践: 使用LVM进行分区管理,便于后期扩展,为关键应用数据(如数据库)单独挂载点。
- 设置强密码的root用户(Linux)或Administrator(Windows),但后续应禁用直接root/Administrator登录。
- 设置主机名(hostname)。
- 配置网络(通常安装程序会引导,但可能需后续细调)。
- 初始更新:
- 系统安装完成后,立即连接网络并更新系统:
- Linux (Debian/Ubuntu):
sudo apt update && sudo apt upgrade -y - Linux (RHEL/CentOS/Rocky/Alma):
sudo dnf update -y(或sudo yum update -y) - Windows Server: 通过“Windows Update”进行更新。
- Linux (Debian/Ubuntu):
- 重启系统(如果内核或关键库更新了)。
- 系统安装完成后,立即连接网络并更新系统:
网络配置
- 静态IP配置:
- Linux:
- Ubuntu/Debian: 编辑
/etc/netplan/*.yaml(现代版本) 或/etc/network/interfaces(旧版)。 - RHEL/CentOS/Rocky/Alma: 编辑
/etc/sysconfig/network-scripts/ifcfg-<interface_name>(NetworkManager) 或使用nmcli/nmtui。
- Ubuntu/Debian: 编辑
- Windows Server: “服务器管理器” -> “本地服务器” -> 点击当前网络连接 -> “属性” -> IPv4 -> 设置静态地址。
- Linux:
- 主机名配置:
- Linux:
sudo hostnamectl set-hostname new-hostname(同时检查/etc/hosts确保127.0.0.1和::1指向新主机名)。 - Windows Server: “系统属性” -> “计算机名” -> 更改。
- Linux:
- DNS配置:
- 设置正确的DNS服务器地址(通常在公司内网是内部DNS,公有云是云服务商提供的DNS或公共DNS如8.8.8.8/1.1.1.1)。
- Linux: 在网卡配置文件或
/etc/resolv.conf(注意:如果使用NetworkManager,直接修改resolv.conf可能无效) 中设置。 - Windows Server: 在网卡TCP/IPv4属性中设置。
- 防火墙配置:
- 启用防火墙!
- Linux (常用):
firewalld(RHEL/CentOS/Rocky/Alma):sudo firewall-cmd --permanent --add-service=ssh(或其他服务),sudo firewall-cmd --reloadufw(Ubuntu/Debian):sudo ufw allow ssh,sudo ufw enableiptables/nftables(底层,更复杂)。
- Windows Server: “Windows Defender 防火墙” -> 高级设置 -> 创建入站/出站规则。
- 原则: 默认拒绝所有入站流量,仅开放必需的服务端口(如SSH-22, RDP-3389, HTTP-80, HTTPS-443, 特定应用端口),限制出站流量(可选但推荐)。
- 网络测试:
ping,traceroute/tracert,nslookup/dig测试连通性和DNS解析。
系统安全加固
- 禁用Root/Administrator直接登录:
- Linux:
- 创建具有sudo权限的普通用户:
sudo adduser username,sudo usermod -aG sudo username(Ubuntu/Debian) 或sudo usermod -aG wheel username(RHEL系)。 - 使用新用户登录并测试sudo权限。
- 禁用root SSH登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no。 - 重启SSH服务:
sudo systemctl restart sshd。
- 创建具有sudo权限的普通用户:
- Windows Server: 使用“组策略”或“本地安全策略”禁用Administrator账户,创建具有管理员权限的新用户。
- Linux:
- SSH安全加固 (Linux):
- 修改默认端口(22):在
/etc/ssh/sshd_config中设置Port 2222(举例) -> 务必在防火墙开放新端口并关闭旧端口! - 禁用密码认证,强制使用密钥认证:
- 在客户端生成密钥对:
ssh-keygen -t ed25519(或-t rsa -b 4096)。 - 将公钥(
id_ed25519.pub)上传到服务器的~/.ssh/authorized_keys文件 (权限600)。 - 在
/etc/ssh/sshd_config中设置:PasswordAuthentication noPubkeyAuthentication yes
- 重启SSH服务。
- 在客户端生成密钥对:
- 限制允许登录的用户:
AllowUsers username1 username2。 - 使用Fail2Ban:自动封锁多次尝试失败登录的IP。
- 修改默认端口(22):在
- 配置自动安全更新:
- Linux (Debian/Ubuntu):
sudo apt install unattended-upgrades并配置/etc/apt/apt.conf.d/50unattended-upgrades&/etc/apt/apt.conf.d/20auto-upgrades。 - Linux (RHEL系):
sudo dnf install dnf-automatic(或yum-cron),配置/etc/dnf/automatic.conf并启用服务。 - Windows Server: 配置“Windows Update”为自动下载并安装更新(可在组策略中设置维护窗口)。
- Linux (Debian/Ubuntu):
- 移除不必要的软件和服务: 卸载或用不到的软件包和服务,减少攻击面。
- Linux:
sudo apt purge package-name/sudo dnf remove package-name - Windows Server: “程序和功能” -> 卸载程序,或使用
Remove-WindowsFeature(PowerShell)。
- Linux:
- 配置时间同步 (NTP): 确保所有服务器时间准确,对日志、证书验证等至关重要。
- Linux:
sudo apt install chrony/sudo dnf install chrony-> 配置/etc/chrony.conf->sudo systemctl enable --now chronyd。 - Windows Server: “服务”中确保“Windows Time”服务运行,或配置组策略指定NTP服务器。
- Linux:
- 安装和配置主机入侵检测系统 (HIDS): 如 OSSEC, Wazuh (开源), 或商业产品,监控关键文件和目录的变更、可疑行为。
- 文件系统权限: 遵循最小权限原则设置文件和目录权限 (
chmod,chown– Linux; ACLs – Windows),关键系统目录权限应严格。 - SELinux/AppArmor (Linux): 启用并配置(建议使用
enforcing模式),为进程提供额外的强制访问控制层,学习基本管理命令 (setenforce,getenforce,semanage,audit2allow)。
用户与权限管理

- 创建专用服务账户: 为每个运行的服务(如Web服务器、数据库)创建独立的、无登录权限的系统用户,限制其权限范围。
- 管理用户账户:
- 使用强密码策略(长度、复杂度、有效期)。
- 定期审计用户账户,禁用或删除不再需要的账户。
- 对于需要管理员权限的用户,使用
sudo(Linux) 或将其加入“Administrators”组 (Windows),避免直接使用root/Administrator。
- 组管理: 使用组来管理权限,将用户加入相应组,然后赋予组权限。
- SSH密钥管理: 集中管理用户的公钥,定期轮换密钥。
- 集中身份认证 (可选但推荐): 对于多台服务器环境,集成LDAP (如 OpenLDAP, FreeIPA) 或 Active Directory 进行统一认证。
软件包管理与服务安装
- 使用包管理器:
- Linux:
apt/dpkg(Debian/Ubuntu),dnf/yum/rpm(RHEL系)。 - Windows: “Microsoft Store”(部分应用)、Chocolatey(第三方社区包管理器)、Winget(微软官方,较新)、直接下载安装程序。
- Linux:
- 添加官方仓库: 优先使用操作系统官方或软件供应商提供的仓库。
- 安装必要软件: 如文本编辑器 (
vim,nano), 网络诊断工具 (curl,wget,net-tools,tcpdump), 进程查看器 (htop,top), 压缩工具等。 - 安装所需服务软件: 如Web服务器 (
nginx,apache2), 数据库 (mysql-server,postgresql), 编程语言环境 (python3,nodejs,php-fpm), 应用服务器等。 - 服务管理:
- Linux (systemd):
sudo systemctl start|stop|restart|status|enable|disable service-name - Windows: “服务”管理控制台 (
services.msc) 或 PowerShell (Start-Service,Stop-Service,Restart-Service)。
- Linux (systemd):
存储管理
- 磁盘分区与格式化: 使用
fdisk/gdisk/parted(Linux), Disk Management (Windows) 管理分区,使用mkfs(Linux) 或格式化对话框 (Windows) 创建文件系统(ext4, xfs, ntfs等)。 - 逻辑卷管理 (LVM – Linux):
- 优点:灵活扩展(在线添加/移除物理卷PV、扩展逻辑卷LV)、快照备份。
- 基本概念:PV -> VG -> LV。
- 常用命令:
pvcreate,vgcreate,lvcreate,lvextend,resize2fs/xfs_growfs(扩展文件系统)。
- 挂载文件系统: 编辑
/etc/fstab(Linux) 或使用Disk Management分配盘符 (Windows) 实现持久化挂载。 - 磁盘配额 (Linux): 限制用户或组的磁盘使用量 (
quota,edquota,setquota)。 - 文件系统监控: 监控磁盘使用率 (
df -h),设置告警阈值,使用du查找大文件/目录。 - RAID配置: 在硬件层面(RAID卡)或软件层面(
mdadm– Linux, Storage Spaces – Windows Server) 配置,提供冗余或性能提升,理解不同RAID级别(0, 1, 5, 6, 10)的优缺点。
监控与日志
- 系统监控:
- 核心指标: CPU利用率、内存使用率(物理、交换)、磁盘I/O(吞吐量、IOPS、延迟)、磁盘空间、网络流量(入/出)、关键进程状态、系统负载。
- 工具:
- 基础命令:
top/htop,free,vmstat,iostat,df,iftop/nload(Linux); 任务管理器/性能监视器 (Windows)。 - 集中监控系统 (强烈推荐): Prometheus + Grafana (开源流行), Zabbix, Nagios, Datadog, New Relic, Dynatrace (商业),配置数据采集(Agent/Exporter)和告警规则。
- 基础命令:
- 应用监控: 监控应用特定指标(如Web请求数、响应时间、错误率、队列长度、数据库连接数、缓存命中率),通常需要应用暴露指标或使用专用Agent。
- 日志管理:
- 重要性: 故障排查、安全审计、性能分析、合规性要求。
- 关键日志位置:
- Linux:
/var/log/(syslog, auth.log, messages, kern.log, 以及应用日志如/var/log/nginx/,/var/log/mysql/). - Windows: 事件查看器 (Application, Security, System logs),以及应用自身的日志目录。
- Linux:
- 日志轮转 (log rotation): 使用
logrotate(Linux) 或内置机制 (Windows) 防止日志填满磁盘。 - 集中日志管理 (强烈推荐): ELK Stack (Elasticsearch, Logstash, Kibana), Graylog, Loki + Grafana, Splunk (商业),将服务器日志集中收集、索引、分析和展示。
备份与恢复策略
- 3-2-1 规则: 至少保留 3 份数据副本,使用 2 种不同的存储介质,1 份存放在异地。
-
- 系统配置:
/etc,/var(部分),/home, 脚本, 防火墙规则, 包列表 (dpkg --get-selections/rpm -qa), 用户信息 (/etc/passwd,/etc/shadow,/etc/group– Linux), 系统状态备份工具 (sysrepocfg– RHEL,timeshift– Ubuntu)。 - 应用数据: 数据库数据文件或dump文件, Web应用代码和配置文件, 用户上传的文件等。这是最重要的!
- 全盘/系统镜像: 用于灾难恢复(如使用Clonezilla, Veeam, Acronis, 云快照)。
- 系统配置:
- 备份方法:
- 脚本 +
rsync/scp/rclone(到远程服务器或云存储)。 - 数据库备份工具:
mysqldump,pg_dump, MongoDBmongodump, RedisSAVE/BGSAVE(需处理持久化)。 - 专业备份软件:Bacula, Bareos, Duplicity, BorgBackup, Restic, Veeam, Commvault, 云厂商备份服务。
- 脚本 +
- 备份频率与保留策略:
- 根据数据变化频率和重要性设定(如数据库:每日全备 + 每小时增量;配置文件:每日或变更时)。
- 设定合理的保留周期(如保留最近7天每日备份、4周每周备份、12个月每月备份)。
- 加密备份: 对包含敏感数据的备份进行加密(使用
gpg,openssl或备份软件内置功能)。 - 定期恢复测试: 这是最关键的一步! 定期(至少每季度)模拟灾难场景,执行恢复演练,验证备份的完整性和可用性,记录恢复过程和时间(RTO – 恢复时间目标)。
日常维护与更新
- 定期系统更新:
- 应用步骤2中配置的自动更新。
- 手动检查与更新 (推荐): 定期(如每周)手动登录检查更新,特别是安全更新,阅读更新说明,在测试环境验证后应用到生产环境,制定变更窗口。
- 监控审查: 每天检查监控仪表盘和告警信息,及时响应异常。
- 日志审查: 定期检查关键日志(安全日志、应用错误日志),查找异常或攻击迹象。
- 磁盘空间管理: 监控磁盘使用情况,清理临时文件、旧日志(确保轮转配置生效)、过时备份。
- 用户账户审计: 定期审查用户列表,禁用/删除不再需要的账户。
- 服务健康检查: 定期验证关键服务(Web, DB, App)是否正常运行(可通过脚本或监控系统自动检查)。
- 备份状态检查: 每天验证备份作业是否成功完成,检查备份文件大小和日期是否合理。
- 安全扫描: 定期使用漏洞扫描工具(如 OpenVAS, Nessus, Wazuh Vulnerability Detector)扫描服务器,及时修补漏洞。
- 文档更新: 任何配置变更或维护操作后,及时更新相关文档。
性能调优(基础)

- 方法论:
- 监控: 识别瓶颈(CPU? Memory? Disk I/O? Network?)。
- 分析: 使用工具深入分析(
perf,strace,vmstat,iostat,sar, Application Profilers)。 - 调整: 修改配置参数(一次只改一个变量!)。
- 测试: 评估调整效果。
- 迭代: 重复过程。
- 常见调优点:
- 内核参数 (Linux):
/etc/sysctl.conf(网络参数如net.core.somaxconn,net.ipv4.tcp_tw_reuse; 虚拟内存参数如vm.swappiness)。谨慎修改! - 文件系统参数: 挂载选项 (如
noatime,data=writeback– ext4)。 - 应用配置: Web服务器 (worker进程/线程数、连接数限制、缓存), 数据库 (内存缓冲区大小、连接池、查询优化、索引), JVM参数 (堆大小、GC策略)。
- 资源限制: 使用
ulimit(Linux) 或 Windows资源管理器限制进程资源消耗。
- 内核参数 (Linux):
- 避免过度调优: 优先优化应用程序代码和架构,硬件升级通常是解决资源瓶颈最直接的方式。
故障排查基础
- 保持冷静,收集信息:
- 问题现象是什么?(错误信息、服务不可用、性能下降?)
- 影响范围?(单用户?单服务?整个服务器?)
- 何时发生的?最近有什么变更?(代码发布、配置修改、系统更新?)
- 查看日志: 这是最重要的线索来源!检查系统日志、安全日志、应用日志,使用
journalctl(Linux systemd),grep,tail -f,less等工具。 - 检查监控: 查看故障时间点的CPU、内存、磁盘、网络指标是否有异常峰值或耗尽。
- 验证服务状态:
systemctl status service-name(Linux), 服务管理控制台 (Windows)。 - 检查资源使用:
top/htop,free -m,df -h,iostat,iftop/nload(Linux); 任务管理器 (Windows)。 - 网络连通性:
ping,traceroute/tracert,telnet/nc <ip> <port>,netstat -tulnp/ss -tuln(Linux 查看监听端口),netstat -ano(Windows),Test-NetConnection(Windows PowerShell)。 - 进程诊断:
ps auxf,strace/ltrace(Linux 跟踪系统/库调用),lsof(查看文件/端口打开情况)。 - 尝试重启: 有时重启服务甚至服务器能临时解决问题(但需查明根本原因)。
- 回滚变更: 如果最近有变更,考虑回滚到之前稳定状态。
- 搜索引擎和文档: 错误信息通常是解决问题的钥匙。
- 寻求帮助: 在内部团队或社区论坛寻求帮助时,提供详尽的背景信息和已排查步骤。
自动化与配置管理简介
- 为什么需要? 管理大量服务器时,手动配置效率低下、易出错、难以保证一致性。
- 核心工具:
- 配置管理:
- Ansible: Agentless,基于YAML剧本,易上手。
- Puppet: 声明式模型,有Agent,成熟强大。
- Chef: 基于Ruby DSL,灵活性高。
- SaltStack: 速度快,支持事件驱动。
- Terraform: 基础设施即代码 (IaC),专注于资源(服务器、网络、存储)的创建和编排,常与配置管理工具配合使用。
- 脚本语言: Bash, PowerShell, Python 用于编写自动化任务脚本。
- 配置管理:
- 核心概念:
- Idempotency (幂等性): 无论执行多少次,结果都应该是一致的。
- Declarative vs. Imperative: 声明“最终状态” vs. 描述“具体步骤”。
- 状态管理: 工具确保系统状态符合定义的配置。
- 应用场景: 自动化服务器初始化配置、软件安装、配置文件分发、用户管理、定期维护任务等。
文档
- 文档是运维的生命线! 没有文档,知识会随着人员流失而消失。
-
- 服务器清单: 主机名、IP、用途、操作系统版本、硬件配置/实例类型、责任人。
- 网络拓扑图: 清晰的网络结构图。
- 安装与配置手册: 详细记录操作系统安装步骤、关键配置参数(IP、主机名、分区方案)、安全加固步骤。
- 服务配置文档: 每个关键服务(Web, DB, App)的安装、配置、启动参数、数据目录位置、备份恢复步骤。
- 用户与权限列表: 用户账户、所属组、权限说明。
- 备份策略文档: 备份内容、频率、方法、存储位置、恢复流程、验证记录。
- 监控与告警配置: 监控项、告警阈值、告警接收人。
- 变更记录 (Change Log): 记录所有对生产环境的变更(时间、操作人、变更内容、原因、回滚计划)。
- 故障处理手册 (Runbook/Playbook): 针对常见故障场景的标准化处理步骤。
- 维护计划: 定期维护任务(更新、备份检查、日志审查等)的时间表。
- 文档要求: 准确、清晰、及时更新、易于查找(使用Wiki如Confluence、GitHub Wiki或文档管理系统)。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/284563.html

