当前位置: 首页 > news >正文

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

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

接手一台全新的UOS统信服务器时,安全加固往往是新手运维最容易忽视却最关键的环节。想象这样一个场景:凌晨三点收到告警,发现服务器因弱密码被暴力破解,而业务数据已遭泄露——这种噩梦完全可以通过基础安全配置避免。本文将模拟真实运维场景,带你逐项完成从密码复杂度到会话管理的全流程加固,每个步骤都附带可立即执行的命令和参数详解,最终形成可复用的安全检查清单。

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

密码如同服务器的门锁,默认配置往往过于简单。我们首先通过libpam-pwquality模块实现企业级密码强度控制。安装前建议更新软件源:

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

关键配置位于/etc/pam.d/common-password,使用vim编辑时建议先备份:

sudo cp /etc/pam.d/common-password{,.bak} sudo vim /etc/pam.d/common-password

找到pam_pwquality.so行替换为以下参数组合:

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

参数解析表

参数作用推荐值
minlen最小密码长度10
maxrepeat允许重复字符数3
ucredit至少大写字母数-1
dcredit至少数字数-1
difok新旧密码差异字符数4

注意:修改后立即生效,下次用户修改密码时就会触发新规则。测试时可先用passwd testuser验证策略是否生效。

密码有效期管理在/etc/login.defs中配置,建议企业环境采用以下标准:

PASS_MAX_DAYS 90 # 密码最长有效期 PASS_MIN_DAYS 7 # 密码修改最小间隔 PASS_WARN_AGE 14 # 过期前提醒天数

2. 防暴力破解:失败锁定机制

连续登录失败是暴力破解的典型特征,通过pam_tally2模块可实现智能锁定。同时配置控制台和SSH两种登录方式:

# 控制台登录配置 sudo vim /etc/pam.d/login # 在auth段添加: auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=3600 # SSH登录配置 sudo vim /etc/pam.d/sshd # 添加相同内容

锁定机制对比

  • 普通用户:5次失败锁定30分钟
  • root用户:5次失败锁定60分钟
  • 解锁方式:自动解锁或手动pam_tally2 --user=username --reset

实际运维中发现,生产环境建议将root用户的deny值设为3,并配合邮件告警更安全。

3. SSH安全增强:从超时到加密算法

SSH是服务器最重要的入口,需要多层防护。首先设置会话超时,在/etc/profile末尾添加:

export TMOUT=900 # 15分钟无操作断开 readonly TMOUT # 防止用户修改

然后优化SSH守护进程配置,编辑/etc/ssh/sshd_config

ClientAliveInterval 300 # 5分钟检测一次心跳 ClientAliveCountMax 2 # 最多检测2次 Protocol 2 # 禁用SSHv1 PermitRootLogin without-password # 禁止密码登录root

SSH加密算法优化方案

# 添加在sshd_config文件末尾 Ciphers aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-512,hmac-sha2-256 KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384

修改后务必测试配置并重启服务:

sshd -t && systemctl restart sshd

4. 审计追踪:auditd实战配置

审计系统是事中监控、事后追责的关键。安装后建议先检查服务状态:

sudo apt -y install auditd sudo systemctl enable --now auditd

监控敏感文件的操作示例:

# 监控/etc/passwd的读写执行和属性修改 sudo auditctl -w /etc/passwd -p rwxa -k passwd_changes # 监控SSH配置文件修改 sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_modification

永久规则需写入/etc/audit/rules.d/audit.rules,格式为:

-w /etc/shadow -p wa -k shadow_file -w /usr/sbin/ -p x -k privileged_exec

常用审计查询命令:

# 查看最近10条审计日志 ausearch -i -l 10 # 按关键词查询 ausearch -k passwd_changes -i # 生成日报 aureport -m -i --summary -ts today

5. 防火墙与端口管理

UOS默认使用firewalld,建议改用更直观的ufw:

sudo apt -y install ufw sudo ufw default deny incoming sudo ufw allow 22/tcp # 仅开放SSH sudo ufw enable

检查开放端口的小技巧:

sudo netstat -tulnp | grep -v 127.0.0.1

对于必须开放的服务端口,建议修改默认端口号。比如修改SSH端口:

sudo vim /etc/ssh/sshd_config # 修改为: Port 5922

别忘了同步防火墙规则:

sudo ufw allow 5922/tcp sudo ufw deny 22/tcp

6. 自动化安全检查脚本

将关键检查项整合为可定期运行的脚本security_check.sh

#!/bin/bash echo "==== 密码策略检查 ====" grep -E 'minlen|credit' /etc/pam.d/common-password echo "==== SSH配置检查 ====" sshd -T | grep -E 'Protocol|PermitRootLogin|PasswordAuthentication' echo "==== 审计规则检查 ====" auditctl -l echo "==== 开放端口检查 ====" ss -tulnp | awk 'NR>1 {print $5}'

添加执行权限并设置每周自动运行:

chmod +x security_check.sh (crontab -l 2>/dev/null; echo "0 3 * * 1 /path/to/security_check.sh >> /var/log/security_check.log") | crontab -

7. 备份与恢复策略

所有安全配置都应建立回滚机制。推荐配置备份方案:

# 关键配置文件备份 BACKUP_DIR=/var/backups/server_config mkdir -p $BACKUP_DIR cp /etc/pam.d/{common-password,login,sshd} $BACKUP_DIR cp /etc/ssh/sshd_config $BACKUP_DIR/sshd_config.$(date +%Y%m%d) # 打包审计规则 tar czf $BACKUP_DIR/audit_rules_$(date +%Y%m%d).tar.gz /etc/audit/rules.d/

恢复时只需解压并重启相应服务:

sudo cp $BACKUP_DIR/common-password /etc/pam.d/ sudo pam-auth-update
http://www.cnnetsun.cn/news/2779949.html

相关文章:

  • 别再傻傻分不清了!用大白话和一张图讲透有限元里的拉格朗日和欧拉
  • 调味品质检高效预审:IACheck通审Agent版如何修正理化数据修约与书写错误
  • 从手机连网到高速下载:拆解5G双连接(DC)中PCell与PSCell的‘分工协作’实战
  • 别再傻傻分不清了!5G NR里的PCell、SCell、PScell、SpCell到底啥关系?一张图给你讲明白
  • Week 2 -- Day 4:Agent 系统(上)— 工具与 ReAct
  • 拆解一颗芯片的诞生:手把手图解MOSFET制造中的12个关键步骤(附工艺对照表)
  • PowerBuilder 12.5 实战:用自定义可视对象(Custom Visual)快速搞定日期范围查询组件
  • 2024青岛烧烤实测!那些年一起吃串的地方,本地人私藏老牌连锁餐厅
  • 别再死记硬背了!用这5个真实业务场景,彻底搞懂数据库关系代数(附SQL对照)
  • 【2024智能娱乐生产力跃迁】:仅用3类开源AI工具+1套标准化API协议,将内容生产效率提升470%(实测数据)
  • 别再死记硬背数组地址公式了!用Python模拟龙书6.4节习题,彻底搞懂行/列优先存储
  • 给PL/0编译器“打补丁”:手把手教你用C语言实现IF-ELSE和复合运算符
  • 新手友好:在快马平台上从零开始构建你的第一个winhance工具
  • Claude Code多文件实战:跨文件操作和项目管理的最佳实践
  • 【Claude情景规划实战指南】:20年AI架构师亲授5大高阶技巧,避开90%团队踩过的认知陷阱
  • 如何3分钟破解JSXBIN加密文件:Jsxer反编译工具终极指南
  • 新手入门网页开发,用快马AI生成带注释的谷歌邮箱注册页面代码
  • 别再傻傻分不清了!SystemVerilog里logic、reg和wire到底该用哪个?(附代码避坑指南)
  • 探秘近 50 年 ANSI 编码:如何成就多彩终端交互体验?
  • 从零到一:用TensorFlow 2.3和MobileNet构建一个高精度果蔬识别App(附完整代码和数据集)
  • 实战派指南:用Python脚本自动查询LTE频段参数与计算EARFCN
  • 告别理论懵圈!用Multisim动画演示高频谐振功放LC回路调谐与效率关系
  • 告别命令行恐惧:用Docker一键部署Viper(炫彩蛇)图形化渗透平台
  • 网站突然崩溃卡顿?带你彻底读懂 DDoS 攻击与防御
  • 免费分享一个站长域名筛选工具:Domain Finder Pro
  • 别再乱用fread了!C语言文件读取的5个实战避坑指南(含Windows/Linux差异)
  • 【计算机毕业设计案例】基于springboot+微信小程序的新冠疫情防控信息管理系统(程序+文档+讲解+定制)
  • 语义压缩,才是提示词工程的底层心法
  • 为什么AI搞不定Base64?一个开源项目Issue里的“暗号”告诉你真相
  • 医疗大模型临床应用突围战(FDA/国药监双认证实操手册)