服务器基线如何加固

wen 网络安全 30

本文目录导读:

服务器基线如何加固

  1. 操作系统层(Linux & Windows)
  2. 应用服务层(以SSH和Web服务器为例)
  3. 网络安全层
  4. 数据与数据库层
  5. 基线加固的标准化流程
  6. 总结清单(快速检查)

服务器基线加固是网络安全防护的基础环节,旨在通过一系列的配置、策略和补丁管理,减少系统的攻击面并提升其抗攻击能力,以下是从操作系统、应用服务、网络安全和数据库四个维度的通用加固建议,覆盖常见的 LinuxWindows 服务器。

操作系统层(Linux & Windows)

账户与权限管理

  • 禁用默认/无用账户
    • Linux:锁定 root 以外的系统账户(如 lp, sync, games),使用 usermod -L 用户名passwd -l 用户名
    • Windows:禁用 Guest 账户,重命名 Administrator 为其他名称。
  • 最小权限原则
    • Linux:普通用户归属 staff 组,避免直接使用 root,通过 sudo 严格授权,审计 /etc/sudoers 文件。
    • Windows:将用户从 Administrators 组移除,仅分配所需权限。
  • 口令策略
    • 通用:强密码(大小写+数字+特殊字符,12位以上)。
    • Linux:修改 /etc/login.defs 设置 PASS_MAX_DAYS 90PASS_MIN_DAYS 7PASS_MIN_LEN 12
    • Windows:通过 secpol.msc (本地安全策略) -> 账户策略 -> 密码策略 设置。

系统补丁与服务管理

  • 关闭不必要服务
    • Linux:执行 systemctl list-unit-files 查看状态,禁用无用服务如 cups, avahi-daemon, bluetooth 等。
    • Windows:禁用 Print Spooler(若无需打印)、Remote Desktop Services(若无需远程桌面)等。
  • 及时打补丁
    • Linux:配置自动安全更新(yum-cronunattended-upgrades)。
    • Windows:通过 WSUS 或组策略统一管理更新。
  • 内核参数优化(部分安全选项):
    • Linux:在 /etc/sysctl.conf 添加以下参数并执行 sysctl -p
      • net.ipv4.conf.all.accept_source_route=0(禁用源路由)
      • net.ipv4.conf.all.accept_redirects=0(禁用ICMP重定向)
      • net.ipv4.tcp_syncookies=1(开启SYN Cookies防洪水攻击)
      • fs.suid_dumpable=0(禁止SUID程序产生内核转储)

日志与审计

  • Linux:启用 auditd 服务,记录关键操作(如 -w /etc/passwd -p wa -k user-modify)。
  • Windows:启用高级审计策略(如 过程追踪账户登录事件),并配置日志大小、覆盖规则。

应用服务层(以SSH和Web服务器为例)

SSH(Linux远程连接)

  • 禁止root直接登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no
  • 更换默认端口:设置 Port 2222(或其他高位端口,需确保防火墙放行)。
  • 使用密钥认证:设置 PasswordAuthentication no,仅允许公钥登录。
  • 限制IP来源:通过 AllowUsers user@IPiptables 限制来源IP。

Web服务器(Nginx/Apache/IIS)

  • 隐藏版本信息
    • Nginxserver_tokens off;
    • ApacheServerTokens Prod
    • IIS:移除 X-Powered-By 响应头。
  • HTTP安全头
    • 配置 Strict-Transport-Security(强制HTTPS)、X-Content-Type-Options: nosniff(防MIME嗅探)、X-Frame-Options: DENY(防点击劫持)。
  • 目录权限:确保上传目录(如 /uploads)禁止执行脚本(Nginx中配置 location ~* \.(php|pl|py)$ { deny all; })。
  • 请求限制:配置 limit_req_zone(Nginx)或 mod_evasive(Apache)防CC攻击。

网络安全层

防火墙配置(iptables/firewalld/Windows Defender Firewall)

  • Linux (iptables示例)
    • 默认拒绝所有入站:iptables -P INPUT DROP
    • 放行SSH(指定端口):iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
    • 仅允许内网访问数据库:iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT
  • Windows:使用组策略或高级安全Windows Defender防火墙,配置入站规则对特定端口放行特定IP。

网络隔离

  • DMZ区:将对外服务的服务器(Web、邮件)放在DMZ,与内网核心数据库物理或逻辑隔离。
  • VLAN划分:使用交换机VLAN将生产环境、测试环境、办公网络隔离开。

数据与数据库层

文件系统权限

  • 敏感文件保护
    • chmod 600 /etc/shadow(Linux用户密码)
    • chmod 644 /etc/passwd(禁止可写)
  • Windows:NTFS权限仅允许 SYSTEMAdministrators 访问 C:\Windows\System32\config 等目录。
  • 防篡改:对核心配置文件(如 /etc/ssh/sshd_config)设置 chattr +i(不可修改属性)。

数据库(MySQL / SQL Server)

  • 移除默认账户DROP USER 'test'@'localhost'; DROP DATABASE test;
  • 弱口令与默认端口
    • 端口:如 MySQL 3306 改为 33060(需防火墙配合)。
    • 密码:使用随机生成的强密码(可借助密码管理器)。
  • 权限最小化:应用账号仅授予 SELECT, INSERT, UPDATE, DELETE 权限,拒绝 DROP, ALTER, CREATE
  • SSL/TLS加密:开启数据库连接加密(要求客户端连接使用 --ssl-mode=REQUIRED)。

基线加固的标准化流程

建议将以上操作形成自动化脚本配置管理工具(如 Ansible、SaltStack、Chef、Puppet),确保所有服务器统一配置:

  1. 基线模板化:编写符合 CIS Benchmark(如 CIS Linux / Windows Benchmark)的脚本。
  2. 定期扫描:使用工具(如 OpenVAS、Nessus、微软基线分析器 MBSA)检查漏洞和配置漂移。
  3. 变更记录:加固操作需通过变更管理流程,并回退原始配置(保存备份快照)。

总结清单(快速检查)

层面 关键操作 检查点
账户 禁用默认账户、设置强密码策略、使用密钥/多因素 passwd -S 检查锁定状态
服务 关闭未用服务(Telnet、FTP)、更新补丁 systemctl list-unit-files
网络 最小化开放端口、防火墙规则精确到IP netstat -anptu(Linux)
应用 隐藏版本、限制文件上传执行 通过浏览器或 curl 查看响应头
日志 日志轮转、远程日志存储(如SIEM) last 命令检查近期登录

通过上述步骤,可以显著降低服务器被利用的风险,加固是一个持续的过程,需要结合漏洞情报和业务变化不断调整,如果需要针对特定系统(如云服务器、容器环境)的细化方案,可以进一步提供细节。

抱歉,评论功能暂时关闭!