UOS统信服务器安全加固实战:从密码策略到SSH超时,一篇搞定
UOS统信服务器安全加固实战:从密码策略到SSH超时,一篇搞定
在数字化转型浪潮中,服务器安全如同大厦的地基,看似不起眼却关乎全局。作为国产操作系统的代表,UOS统信以其出色的兼容性和稳定性赢得了越来越多企业的青睐。但对于刚接触UOS的运维新手来说,如何快速构建一套可靠的安全防线往往令人头疼——密码策略设置不当可能导致暴力破解风险,SSH配置疏漏可能成为入侵通道,而缺乏有效的审计机制则会让安全事件无从追溯。本文将手把手带您完成从基础到进阶的完整安全加固流程,每个步骤都经过生产环境验证,特别针对UOS系统的特性进行了优化适配。
1. 密码策略:构建第一道防线
密码是系统安全的第一道闸门,但默认配置往往过于宽松。我们首先通过PAM(可插拔认证模块)实现企业级密码复杂度控制。在UOS系统中,需要先确保基础组件就位:
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 gecoscheck=1 reject_username enforce_for_root各参数的实际影响如下表所示:
| 参数 | 安全作用 | 推荐值 | 注意事项 |
|---|---|---|---|
| minlen | 最小密码长度 | 10 | 低于8位易被暴力破解 |
| maxrepeat | 最大重复字符数 | 3 | 防止"aaaabbbb"类密码 |
| ucredit | 大写字母要求 | -1 | 负数表示至少需要1个 |
| difok | 新旧密码差异字符数 | 5 | 防止微小修改旧密码 |
| enforce_for_root | root账户强制策略 | 启用 | 避免特权账户例外 |
重要提示:修改PAM配置后,建议新开终端会话测试,避免配置错误导致所有用户被锁定的灾难性后果。
密码时效策略则需要修改/etc/login.defs文件,以下设置兼顾安全性与运维便利性:
PASS_MAX_DAYS 90 # 密码最长有效期 PASS_MIN_DAYS 1 # 密码修改最小间隔 PASS_WARN_AGE 14 # 过期前提醒天数2. 登录保护:智能防暴力破解
面对日益猖獗的暴力破解攻击,单纯的复杂密码已不足够。UOS通过pam_tally2模块实现智能登录保护,建议同时在/etc/pam.d/login和/etc/pam.d/sshd文件中添加:
auth required pam_tally2.so deny=5 unlock_time=600 even_deny_root root_unlock_time=1200这套配置实现了分级防护机制:
- 普通用户:5次失败尝试后锁定10分钟
- root账户:相同次数锁定但时长加倍(20分钟)
- 自动解锁:无需管理员干预,避免服务中断
实时查看登录失败记录的实用命令:
# 查看所有用户失败次数 pam_tally2 --user # 手动解锁特定账户 pam_tally2 --user=username --reset3. SSH安全:加密通道的精细管控
作为最主要的远程管理通道,SSH需要特别的安全关注。首先优化/etc/ssh/sshd_config中的关键参数:
# 连接保持设置 ClientAliveInterval 300 # 5分钟检测一次心跳 ClientAliveCountMax 2 # 最多允许2次检测失败 # 会话超时设置 LoginGraceTime 1m # 登录等待超时 MaxAuthTries 3 # 每次连接最大认证尝试次数 # 高级防护 UseDNS no # 禁用DNS反向解析 AllowUsers admin@192.168.1.* # IP白名单限制为预防会话劫持,建议在/etc/profile全局设置TMOUT:
# 设置600秒无操作超时 readonly TMOUT=600 export TMOUTSSH密钥管理的最佳实践:
- 禁用root直接登录:
PermitRootLogin no - 强制密钥认证:
PasswordAuthentication no - 使用Ed25519算法:
ssh-keygen -t ed25519 -C "work@server"
4. 审计追踪:auditd的实战部署
完整的审计系统是事后追责的关键。UOS默认包含auditd服务,通过以下命令确保运行正常:
sudo systemctl enable --now auditd sudo auditctl -e 1 # 立即启用审计规则文件监控的黄金法则示例:
# 监控关键目录的写和执行操作 auditctl -w /etc/passwd -p wa -k identity_access auditctl -w /etc/shadow -p wa -k identity_access auditctl -w /bin -p x -k binary_execution # 监控sudo使用情况 auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_exec永久规则应写入/etc/audit/rules.d/sec.rules,推荐包含以下内容:
# 系统调用审计 -a always,exit -F arch=b64 -S open,openat -F success=0 -k file_access_denied # 特权命令监控 -a always,exit -F path=/usr/bin/passwd -F perm=x -k password_change审计日志分析技巧:
# 按时间范围查询 ausearch -ts today -k password_change # 生成可视化报告 aureport -m -i | head -205. 进阶加固:内核参数与SELinux
系统层面的安全调优能大幅提升整体防护等级。编辑/etc/sysctl.conf添加:
# 网络防护 net.ipv4.tcp_syncookies = 1 net.ipv4.conf.all.rp_filter = 1 # 内存保护 vm.mmap_min_addr = 65536 # 进程限制 kernel.randomize_va_space = 2立即生效的命令:
sudo sysctl -p对于高安全环境,建议启用UOS的SELinux模块:
sudo apt install selinux-basics selinux-policy-default sudo selinux-activate sudo reboot常见SELinux管理命令速查:
# 查看当前状态 sestatus # 修改文件上下文 chcon -t httpd_sys_content_t /var/www/html # 策略分析工具 audit2allow -a