三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

UOS统信服务器安全加固实战:从密码策略到SSH超时,手把手配置避坑

UOS统信服务器安全加固实战:从密码策略到SSH超时,手把手配置避坑

UOS统信服务器安全加固实战:从密码策略到SSH超时,手把手配置避坑

在数字化转型浪潮中,服务器安全已成为企业IT基础设施的命脉。作为国产操作系统的代表,UOS统信服务器凭借其自主可控的特性,正逐步成为关键行业的基础设施选择。但对于刚接触UOS的运维人员来说,如何快速构建符合企业级要求的安全防护体系,往往面临诸多实操困惑——修改了配置文件却不确定是否生效?参数调整后服务异常如何排查?不同安全模块之间如何协同工作?

本文将系统性地拆解UOS服务器安全加固的全流程,不仅提供可立即执行的命令清单,更会深入解析每个参数背后的安全逻辑,并附赠经过验证的排错技巧。无论您是首次部署UOS的运维新人,还是需要构建标准化安全基线的架构师,都能获得即插即用的实战方案。

1. 密码策略:构建第一道防线

密码是服务器安全最基础的防线,但90%的入侵事件都源于弱密码漏洞。UOS系统通过libpam-pwquality模块提供企业级密码复杂度控制,正确的配置能有效抵御暴力破解。

1.1 密码复杂度引擎安装与配置

首先确保系统已安装密码策略引擎:

sudo apt-get update sudo apt-get install -y libpam-pwquality cracklib-runtime

关键配置文件位于/etc/pam.d/common-password,建议使用以下优化配置:

password requisite pam_pwquality.so retry=3 minlen=10 maxrepeat=3 \ ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 \ difok=5 enforce_for_root reject_username gecoscheck

参数解析表:

参数安全意义推荐值企业级建议
minlen最小长度10金融行业建议12+
maxrepeat重复字符3避免"aaa111"类密码
ucredit大写字母-1至少1个大写
difok新旧差异5防止微小修改
enforce_for_rootroot限制启用特权账户更需保护

注意:修改后立即生效,但仅对新密码生效。建议配合chage -l 用户名检查现有账户状态。

1.2 密码生命周期管理

在/etc/login.defs中设置密码时效策略:

PASS_MAX_DAYS 90 # 密码最长有效期 PASS_MIN_DAYS 1 # 修改间隔(防频繁更改) PASS_WARN_AGE 14 # 过期提醒

企业常见问题解决方案:

  • 历史密码重复:安装libpam-pwhistory并配置remember=5
  • 紧急密码重置:sudo passwd -e 用户名强制下次登录修改
  • 批量检查工具:sudo chage -l $(getent passwd | cut -d: -f1)

2. 登录防护:智能锁定与审计

2.1 失败锁定机制

在/etc/pam.d/login和/etc/pam.d/sshd中添加:

auth required pam_tally2.so \ deny=5 unlock_time=1800 \ even_deny_root root_unlock_time=3600

锁定状态检查命令:

# 查看失败次数 sudo pam_tally2 --user=用户名 # 手动解锁账户 sudo pam_tally2 --user=用户名 --reset

2.2 会话超时最佳实践

SSH会话安全需要双重保障:

  1. 全局超时设置(/etc/profile):
export TMOUT=900 # 15分钟无操作断开 readonly TMOUT # 防止用户修改
  1. SSH服务端保活(/etc/ssh/sshd_config):
ClientAliveInterval 300 # 5分钟检测 ClientAliveCountMax 2 # 2次无响应断开 TCPKeepAlive yes # 检测真实连接状态

排坑指南:若连接频繁断开,检查网络设备可能存在的TCP会话超时设置,企业级网络通常需要协调防火墙策略。

3. 深度防护:审计与文件监控

3.1 auditd高级配置

安装审计服务:

sudo apt-get install -y auditd audispd-plugins

关键目录监控示例:

# 监控敏感目录 sudo auditctl -w /etc/ -p wa -k sysconfig_change sudo auditctl -w /usr/sbin/ -p x -k privileged_exec # 监控用户操作 sudo auditctl -a always,exit -F arch=b64 -S execve -k process_trace

永久生效配置(/etc/audit/rules.d/sec.rules):

-w /etc/passwd -p wa -k identity_access -w /etc/shadow -p wa -k identity_access -a always,exit -F path=/usr/bin/sudo -F perm=x -k privileged_commands

3.2 审计日志分析技巧

常用分析命令:

# 实时监控 sudo ausearch -k sysconfig_change | aureport -f -i # 生成日报 sudo aureport --start today --event --summary # 可疑进程追踪 sudo ausearch -sc execve -k process_trace -i

日志保存策略优化(/etc/audit/auditd.conf):

max_log_file = 50 # 单个日志MB数 num_logs = 10 # 保留日志数量 space_left = 100 # 磁盘警戒空间(MB)

4. 安全基线验证与维护

4.1 自动化检查脚本

创建/usr/local/bin/security_check.sh:

#!/bin/bash { echo "=== 密码策略检查 ===" sudo grep "^password" /etc/pam.d/common-password sudo grep -E "^PASS_" /etc/login.defs echo "=== SSH配置检查 ===" sudo grep -i "^ClientAlive" /etc/ssh/sshd_config sudo grep -i "^TCPKeepAlive" /etc/ssh/sshd_config echo "=== 审计规则检查 ===" sudo auditctl -l } | tee /var/log/security_audit_$(date +%F).log

4.2 定期维护方案

建议的安全维护日历:

  1. 每日:

    • 检查/var/log/auth.log异常登录
    • 审计关键命令sudo ausearch -m EXECVE -ts today
  2. 每周:

    • 验证密码策略sudo pam_tally2
    • 备份审计规则sudo auditctl -l > /backup/audit_rules_$(date +%U).conf
  3. 每月:

    • 审查用户权限sudo getent passwd | awk -F: '$3 <1000 {print}'
    • 更新审计规则sudo augenrules --load

在最近一次为客户部署UOS服务器的实践中,我们发现默认配置的SSH保活参数与客户网络环境存在兼容性问题。通过引入TCPKeepAlive参数并结合tcpdump抓包分析,最终定位到是中间防火墙的TCP会话超时设置过短导致。这个案例告诉我们,任何安全配置都需要结合具体环境进行验证测试。

← 返回列表