系统安全加固完整流程:漏洞扫描、补丁更新、无用服务禁用、SSH安全配置实操指南

91 阅读9分钟

在网络攻击日益频繁的当下,系统漏洞、弱配置、无用服务暴露等问题都可能成为黑客入侵的突破口。做好系统安全加固,是保障服务器、工作站稳定运行的核心防线。

一、系统安全加固前的准备工作

开始加固前,建议做好两项基础准备,避免操作失误导致系统故障:

  1. 备份关键数据和配置文件,比如Linux的/etc目录、Windows的注册表,可使用tar打包备份或系统自带备份工具,确保加固失败后能快速回滚。
  2. 记录当前系统状态,包括已安装的服务、开放的端口、SSH配置参数等,方便后续对比验证加固效果。
  3. 确保系统能正常联网(补丁更新、工具下载需网络支持),或提前下载离线补丁包、扫描工具安装包。

二、漏洞扫描:精准定位系统安全隐患

漏洞扫描是安全加固的前提,目的是找出系统中存在的高危漏洞、配置缺陷、弱口令等问题,常用工具分开源免费和商业付费两类,可根据需求选择。

1. Linux系统漏洞扫描实操

  • 推荐工具:OpenVAS(开源免费)、Nessus(商业版功能全,有免费试用)、Lynis(轻量命令行工具)

  • 操作步骤(以OpenVAS为例):

    1. 安装OpenVAS:Ubuntu系统用“sudo apt install openvas”,CentOS系统需先配置EPEL源,再执行“yum install openvas”。
    2. 初始化配置:执行“sudo gvm-setup”,等待初始化完成后,启动服务“sudo gvm-start”。
    3. 扫描操作:打开浏览器访问https://localhost:9392,登录后创建新扫描任务,输入目标主机IP,选择扫描策略(推荐“Full and fast”快速全面扫描),点击启动。
    4. 结果分析:扫描完成后,查看报告中的高危、中危漏洞,重点关注CVE编号对应漏洞(如Heartbleed、Shellshock等经典高危漏洞),记录漏洞详情和修复建议。
  • 轻量替代方案(无图形化界面): 执行“sudo lynis audit system”,工具会自动扫描系统配置、漏洞、弱口令等,扫描结束后输出结果摘要,按提示查看详细报告。

2. Windows系统漏洞扫描实操

  • 推荐工具:微软安全基线分析器(MSBA)、OpenVAS Windows版、360安全卫士(企业版)
  • 操作步骤(以MSBA为例):
    1. 下载安装MSBA:从微软官网下载对应系统版本的工具,双击安装后打开。
    2. 选择扫描项:勾选“计算机和设备”,输入本机IP或选择“本地计算机”,勾选“安全更新”“密码策略”“防火墙配置”等扫描模块。
    3. 开始扫描:点击“扫描”,等待几分钟后生成报告,重点查看“未安装的安全更新”“不符合基线的配置”等高危项。

漏洞扫描注意事项

  • 扫描时尽量避开业务高峰期,避免占用过多系统资源影响业务运行。
  • 对扫描出的漏洞按“高危→中危→低危”优先级处理,优先修复可远程利用的高危漏洞。
  • 定期扫描(建议每月1次),新漏洞爆发后及时补充扫描。

三、补丁更新:修复漏洞的核心操作

补丁更新是修复已发现漏洞的关键,不同系统的更新方式不同,核心原则是“及时更新、按需更新”,避免遗漏关键补丁。

1. Linux系统补丁更新(CentOS/Ubuntu)

CentOS系统:

  • 查看可更新补丁:执行“yum check-update”,列出所有待更新的软件包和补丁。
  • 批量更新补丁:执行“yum update -y”,自动下载并安装所有补丁(需联网)。
  • 离线更新(无网络环境):
    1. 另一台联网的同版本CentOS机器上,执行“yum install --downloadonly --downloaddir=/tmp/patches 软件包名”,下载补丁包到本地。
    2. 将补丁包拷贝到目标机器,执行“yum localinstall /tmp/patches/* -y”,完成离线安装。
  • 注意事项:更新内核补丁后需重启系统,执行“reboot”生效;更新前可先用“yum update 软件包名 --dry-run”模拟更新,查看是否有依赖冲突。

Ubuntu系统:

  • 更新软件源:执行“apt update”,同步最新的软件包列表。
  • 批量更新补丁:执行“apt upgrade -y”,更新所有已安装软件的补丁。
  • 内核更新:执行“apt dist-upgrade -y”,处理内核及依赖包的更新,更新后重启系统。

2. Windows系统补丁更新

方法1:通过Windows Update自动更新(适合个人或小型环境)

  • 打开“设置→更新和安全→Windows更新”,点击“检查更新”,系统会自动搜索并下载安装所有可用补丁。
  • 安装完成后按提示重启电脑,部分补丁需重启后才能生效。

方法2:通过WSUS服务器更新(适合企业环境)

  • 登录WSUS服务器,在“更新服务”中选择需要部署的补丁(按系统版本、漏洞等级筛选)。
  • 创建更新部署任务,选择目标计算机组,设置安装时间(建议非业务高峰期),等待客户端自动同步安装。

注意事项:

  • 部分特殊软件(如数据库、工业控制软件)可能与最新补丁冲突,更新前需在测试环境验证兼容性。
  • 关闭自动更新的系统,需定期手动检查补丁,避免长期不更新导致漏洞积累。

四、禁用无用服务:减少系统攻击面

系统默认安装的很多服务(如Telnet、FTP、RPC、打印服务等),如果长期不使用,会成为黑客攻击的入口,建议禁用不必要的服务,只保留核心业务所需服务。

1. Linux系统禁用无用服务

  • 查看当前运行的服务: CentOS 7+:执行“systemctl list-unit-files --type=service --state=enabled”,列出所有已启用的服务。 Ubuntu:执行“systemctl list-services --type=service --state=running”,查看正在运行的服务。
  • 常见无用服务及禁用命令:
    • Telnet服务(远程登录,不安全):systemctl stop telnetd && systemctl disable telnetd
    • FTP服务(文件传输,无加密):systemctl stop vsftpd && systemctl disable vsftpd
    • RPC服务(远程过程调用,易被利用):systemctl stop rpcbind && systemctl disable rpcbind
    • 打印服务(cups,无打印需求时):systemctl stop cups && systemctl disable cups
  • 禁用注意事项:
    1. 禁用前先确认服务用途,比如“sshd”(SSH服务)、“network”(网络服务)是核心服务,不可禁用。
    2. 禁用后执行“systemctl daemon-reload”,刷新服务配置。
    3. 可通过“systemctl status 服务名”验证服务是否已停止。

2. Windows系统禁用无用服务

  • 打开服务管理界面:按下“Win+R”,输入“services.msc”,回车打开。
  • 查看服务状态:列中“状态”为“正在运行”且“启动类型”为“自动”的服务,需重点排查。
  • 常见无用服务及禁用方法:
    • Telnet服务:右键“属性”,启动类型改为“禁用”,点击“停止”,确定。
    • 远程注册表:启动类型改为“禁用”,停止服务(防止远程修改注册表)。
    • 打印后台处理程序:无打印需求时,改为“禁用”并停止。
    • 分布式链接跟踪客户端:非域环境下可禁用。
  • 禁用注意事项:
    1. 服务名称可能因Windows版本略有差异,禁用前可百度服务用途。
    2. 部分服务依赖其他服务,禁用时会提示“存在依赖关系”,需先禁用依赖服务或确认无需该服务。
    3. 禁用后重启电脑,确保系统正常运行,无业务异常。

五、SSH安全配置:加固远程登录防线

SSH是Linux系统远程登录的常用方式,默认配置存在安全风险(如默认端口22、允许密码登录等),需针对性配置,提升登录安全性。

1. 核心配置步骤(Linux系统)

  • 编辑SSH配置文件:执行“vim /etc/ssh/sshd_config”,修改以下关键参数(按实际需求调整):
    1. 更改默认端口:将“#Port 22”改为“Port 2222”(自定义端口,建议10000-65535之间,避免与常用端口冲突)。
    2. 禁用root用户登录:将“PermitRootLogin yes”改为“PermitRootLogin no”(防止黑客暴力破解root账号)。
    3. 禁用密码登录,开启密钥登录: 将“PasswordAuthentication yes”改为“PasswordAuthentication no”, 确保“PubkeyAuthentication yes”(开启密钥登录), “AuthorizedKeysFile .ssh/authorized_keys”(指定公钥文件路径)。
    4. 限制登录用户:添加“AllowUsers user1 user2”(仅允许user1、user2登录,逗号分隔,避免无关用户登录)。
    5. 缩短登录超时时间:添加“ClientAliveInterval 300”(5分钟无操作自动断开连接),“ClientAliveCountMax 3”(超时后重试3次)。
  • 配置公钥登录(关键步骤):
    1. 客户端生成密钥对:执行“ssh-keygen -t rsa -b 4096”(4096位加密,更安全),按提示保存密钥(默认路径~/.ssh/id_rsa)。
    2. 上传公钥到服务器:执行“ssh-copy-id -p 2222 user1@服务器IP”,输入user1的密码,公钥会自动上传到服务器的~/.ssh/authorized_keys。
  • 重启SSH服务生效:执行“systemctl restart sshd”(CentOS)或“systemctl restart ssh”(Ubuntu)。
  • 验证配置:客户端执行“ssh -p 2222 user1@服务器IP”,无需输入密码即可登录,说明配置成功。

2. 额外安全加固建议

  • 防火墙限制SSH访问:只允许指定IP段登录,比如CentOS用“firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="2222" accept'”,然后“firewall-cmd --reload”。
  • 定期更换SSH密钥:建议每3-6个月重新生成一次密钥对,避免密钥泄露风险。
  • 查看SSH登录日志:执行“cat /var/log/secure | grep sshd”,监控异常登录尝试,发现多次失败登录可临时封禁IP。

六、系统安全加固后验证与维护

1. 加固效果验证

  • 漏洞扫描复测:加固完成后,用之前的扫描工具重新扫描,确认高危漏洞已修复。
  • 端口检测:用nmap工具扫描服务器端口(nmap 服务器IP),确认无用端口已关闭,SSH默认端口22已不再开放。
  • 登录测试:尝试用root用户、密码登录SSH,应提示登录失败;用配置好的用户和密钥登录,可正常访问。

2. 长期维护建议

  • 定期巡检:每月检查一次补丁更新情况、服务运行状态、SSH登录日志,及时发现新的安全隐患。
  • 同步漏洞情报:关注CNNVD(国家信息安全漏洞库)、CVE漏洞库,新高危漏洞爆发后,第一时间更新补丁。
  • 备份加固配置:将/etc/ssh/sshd_config、防火墙规则等配置文件备份,方便后续系统迁移或重建时复用。