当前位置:首页>Linux>Windows/Linux服务器的安全加固

Windows/Linux服务器的安全加固

  • 2026-09-30 14:53:36
Windows/Linux服务器的安全加固

服务器安全加固是网络安全防护的第一道防线,本文从身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范五大维度,详细讲解Windows和Linux系统的安全加固配置方法。

一、身份鉴别:第一道防线

Windows系统配置

1. 密码策略强化

打开路径:控制面板→所有控制面板项→windows工具→本地安全策略 → 账户策略 → 密码策略,如下图

配置项
推荐值
说明
密码必须符合复杂性要求
已启用
强制要求大小写+数字+特殊字符
密码最小长度
8个字符
低于8位密码极易被暴力破解
密码最短使用期限
0天
允许立即更换密码
密码最长使用期限
90天
定期更换降低泄漏风险
强制密码历史
5个
防止用户重复使用旧密码
用可还原的加密存储
已禁用
防止密码被反向解密

2. 账户锁定策略

打开路径:控制面板→所有控制面板项→windows工具→本地安全策略 → 账户策略 → 账户锁定策略

配置项
推荐值
说明
账户锁定时间
30分钟
锁定后需等待的时间
账户锁定阈值
5次
连续失败5次即锁定
重置锁定计数器
30分钟
失败计数器重置时间

效果:登录失败5次,锁定账户30分钟,有效防御暴力破解攻击。

3. 屏幕保护锁定

  • 等待时间:10分钟
  • 勾选"在恢复时显示登录屏幕"

Linux系统配置

1. 密码复杂度配置

编辑 /etc/pam.d/system-auth:

password requisite pam_pwquality.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1

参数说明:

  • minlen=8:密码最小8位
  • lcredit=-1:至少1个小写字母
  • ucredit=-1:至少1个大写字母
  • dcredit=-1:至少1个数字
  • ocredit=-1:至少1个特殊字符

2. 密码有效期配置

编辑 /etc/login.defs:

PASS_MAX_DAYS 90    # 密码最长有效期90天PASS_MIN_DAYS 0     # 密码最短使用天数PASS_WARN_AGE 7     # 提前7天警告
PS:此处改完不会修改已有账号的设置,需要用chage命令对已有账号进行逐个更新chage -d 0 用户名    # 强制单个用户下次登陆时修改密码

3. 登录失败锁定

编辑 /etc/pam.d/system-auth:

auth required pam_faillock.so preauth deny=5 unlock_time=300 even_deny_root root_unlock_time=300

效果:

  • 普通用户失败5次,锁定5分钟
  • root用户失败5次,同样锁定5分钟

4. 会话超时自动退出

编辑 /etc/profile,添加:

export TMOUT=3600

效果:空闲60分钟自动断开连接。

5. 禁用Telnet,启用SSH

# 停止Telnet服务systemctl stop telnet.socketsystemctl disable telnet.socket# 确保SSH运行systemctl enable sshdsystemctl start sshd

二、访问控制:最小权限原则

Windows系统配置

1. 禁用默认账户

# 禁用Guest账户net user guest /active:no# 重命名Administrator账户wmic useraccount where name='Administrator' call rename name='Admin_新名称'

2. 账户权限分离

角色
权限范围
系统管理员
系统配置、软件安装、服务管理
安全管理员
安全策略配置、审计日志查看
审计管理员
日志审计、安全事件分析

禁用超级管理员账户,实现三权分立。

3. 远程登录限制

  • 方法一:只允许特定IP远程登录

    • 控制面板→所有控制面板项→windows工具→本地安全策略 → IP安全策略,限制RDP端口来源IP
  • 方法二:只允许本地管理

    • 禁用远程桌面服务

Linux系统配置

1. 文件权限加固

# 关键文件权限chmod 644 /etc/passwdchmod 640 /etc/shadowchmod 644 /etc/rsyslog.conf

2. 禁止root远程登录

编辑 /etc/ssh/sshd_config:

PermitRootLogin no

重启SSH服务:

systemctl restart sshd

3. 禁用多余默认账户

# 锁定无用账户usermod -L admusermod -L syncusermod -L shutdownusermod -L haltusermod -L mailusermod -L uucpusermod -L operatorusermod -L gamesusermod -L gopherusermod -L ftp

4. 账户权限分离

创建三权分立账户:

# 系统管理员useradd -m -G wheel sysadmin# 安全管理员useradd -m secadmin# 审计管理员useradd -m audadmin

5. 访问控制策略

# 保持 root 属主不动chown -R root:root /var/log/chmod 750 /var/log/# 审计管理员只读权限setfacl -R -m u:audadmin:r /var/log/

三、安全审计:留痕可追溯

Windows系统配置

1. 启用审核策略

打开路径:控制面板→所有控制面板项→windows工具→本地安全策略 → 本地策略 → 审核策略

2. 日志存储策略

  • 日志满时存档,不覆盖事件
  • 审计记录保存6个月以上
  • 每月备份审计日志
  • 推送至日志审计系统集中管理

3. 保护审计进程

配置普通账户无法终止审计进程,防止未经授权中断。


Linux系统配置

1. 启用auditd审计服务

# 安装auditdyum install audit -y   # CentOS/RHELapt install auditd -y  # Ubuntu/Debian# 启动并设置开机自启systemctl enable auditdsystemctl start auditd

2. 配置审计规则

编辑 /etc/audit/rules.d/audit.rules:

# 监控关键文件修改-w /etc/passwd -p wa -k passwd_changes-w /etc/shadow -p wa -k shadow_changes-w /etc/sudoers -p wa -k sudoers_changes# 监控用户切换-w /var/log/secure -p wa -k logins# 监控系统调用-a always,exit -F arch=b64 -S execve -k exec

重启auditd:

augenrules --loadsystemctl restart auditd

3. 启用rsyslog日志服务

systemctl enable rsyslogsystemctl start rsyslog

4. 日志保存策略

  • 审计日志保存6个月以上
  • 每月备份审计日志到独立存储
  • 配置日志轮转 /etc/logrotate.conf

四、入侵防范:封堵攻击入口

Windows系统配置

1. 最小化安装原则

只安装业务必需的组件和应用软件,减少攻击面。

2. 关闭高危端口和服务

关闭默认共享:

net share C$ /deletenet share ADMIN$ /deletenet share IPC$ /delete

禁用Print Spooler服务:

sc stop Spoolersc config Spooler start= disabled

防火墙阻断高危端口:

端口
服务
风险
23
Telnet
明文传输
135
RPC
远程执行
137-139
NetBIOS
信息泄露
445
SMB
勒索病毒入口
netsh advfirewall firewall add rule name="Block_Telnet" dir=in action=block protocol=tcp localport=23netsh advfirewall firewall add rule name="Block_RPC" dir=in action=block protocol=tcp localport=135netsh advfirewall firewall add rule name="Block_SMB" dir=in action=block protocol=tcp localport=445

3. 限制管理地址

只允许特定IP访问管理端口,或只通过本地控制台管理。


Linux系统配置

1. 最小化安装

# 查看已安装软件包rpm -qa   # CentOS/RHELdpkg -l   # Ubuntu/Debian# 卸载非必需软件yum remove package_nameapt remove package_name

2. 关闭高危端口

# 查看监听端口ss -tlnp# 防火墙阻断(firewalld)firewall-cmd --permanent --add-port=22/tcpfirewall-cmd --permanent --remove-service=telnetfirewall-cmd --reload# 或使用iptablesiptables -A INPUT -p tcp --dport 23 -j DROPiptables -A INPUT -p tcp --dport 445 -j DROP

3. 关闭默认共享

Linux无Windows默认共享问题,但需检查Samba配置:

# 检查Samba共享smbclient -L localhost# 禁用不需要的共享vim /etc/samba/smb.conf

4. SSH安全加固

编辑 /etc/ssh/sshd_config:

Port 2222                    # 修改默认端口PermitRootLogin no           # 禁止root登录MaxAuthTries 3              # 最大认证尝试次数ClientAliveInterval 300     # 客户端存活检测ClientAliveCountMax 2       # 检测失败次数

五、恶意代码防范:终端防护

Windows系统

  1. 安装企业级杀毒软件

    • Windows Defender(内置)
    • 火绒企业版
    • 卡巴斯基企业版
  2. 确保病毒库最新

    • 配置自动更新
    • 定期全盘扫描
  3. 启用实时防护

    • 文件实时监控
    • 网络行为监控
    • 注册表保护

Linux系统

  1. 安装防病毒软件
# ClamAV(开源免费)yum install clamav clamd -yfreshclam  # 更新病毒库# 或使用企业版杀毒软件
  1. 定期扫描
# 全盘扫描clamscan -r / --move=/tmp/quarantine/# 定时任务扫描echo "0 2 * * * /usr/bin/clamscan -r / --move=/tmp/quarantine/" >> /var/spool/cron/root

六、加固检查清单

Windows检查项

检查项
状态
密码策略已配置
☐
账户锁定策略已启用
☐
默认账户已禁用/重命名
☐
审核策略已启用
☐
高危端口已关闭
☐
防病毒软件已安装
☐
病毒库已更新
☐

Linux检查项

检查项
状态
密码复杂度已配置
☐
登录失败锁定已启用
☐
root远程登录已禁止
☐
多余账户已禁用
☐
auditd审计已启用
☐
高危端口已关闭
☐
防病毒软件已安装
☐

结语

服务器安全加固不是一次性工作,而是持续的安全运营过程。建议:

  1. 定期复查:定期检查一次加固配置是否被更改
  2. 日志审计:定期审查安全日志,发现异常行为
  3. 漏洞扫描:定期进行漏洞扫描和渗透测试
  4. 应急演练:建立安全事件应急响应流程

本文档基于等保2.0要求整理,适用于CentOS 7+/Ubuntu 18.04+/Windows Server 2016+系统。

最新文章

随机文章