UOS统信服务器安全加固保姆级教程:从密码策略到SSH超时,手把手配置实战
UOS统信服务器安全加固实战指南从基础配置到深度防护在数字化转型浪潮中服务器安全已成为企业IT基础设施的重中之重。作为国产操作系统的代表UOS统信服务器凭借其自主可控的特性正被越来越多的政企单位采用。但对于刚接触UOS的运维人员来说如何快速构建一套完善的安全防护体系往往是一个令人头疼的问题。本文将带你从零开始通过实战操作原理剖析的方式逐步完成UOS服务器的安全加固。1. 密码策略深度配置密码是服务器安全的第一道防线。UOS系统默认的密码策略往往过于宽松我们需要通过多层次的配置来强化这一环节。1.1 密码复杂度强制设置首先安装密码策略增强工具sudo apt-get -y install libpam-pwquality cracklib-runtime然后修改PAM密码策略配置文件sudo vim /etc/pam.d/common-password找到pam_pwquality.so行替换为以下配置password requisite pam_pwquality.so retry3 minlen10 maxrepeat3 ucredit-1 lcredit-1 dcredit-1 ocredit-1 difok5 gecoscheck1 reject_username enforce_for_root各参数详解参数作用推荐值minlen密码最小长度10maxrepeat允许重复字符最大次数3ucredit至少包含的大写字母数-1lcredit至少包含的小写字母数-1dcredit至少包含的数字数-1ocredit至少包含的特殊字符数-1difok新旧密码最小差异字符数51.2 密码生命周期管理修改/etc/login.defs文件设置密码过期策略sudo vim /etc/login.defs推荐配置PASS_MAX_DAYS 90 # 密码最长有效期 PASS_MIN_DAYS 7 # 密码修改最小间隔 PASS_WARN_AGE 14 # 密码过期前警告天数注意此设置仅对新创建用户生效已有用户需使用chage命令单独设置。1.3 登录失败处理机制为防止暴力破解配置登录失败锁定策略sudo vim /etc/pam.d/common-auth添加以下内容auth required pam_tally2.so deny5 unlock_time600 even_deny_root root_unlock_time1200关键参数说明deny5允许5次失败尝试unlock_time600普通用户锁定10分钟root_unlock_time1200root用户锁定20分钟2. SSH服务安全加固SSH是服务器远程管理的核心通道也是攻击者重点关注的入口必须进行严格配置。2.1 基础安全配置编辑SSH主配置文件sudo vim /etc/ssh/sshd_config推荐修改以下参数Port 22222 # 修改默认端口 PermitRootLogin no # 禁止root直接登录 MaxAuthTries 3 # 最大认证尝试次数 ClientAliveInterval 300 # 客户端活动检查间隔 ClientAliveCountMax 2 # 客户端活动检查次数 LoginGraceTime 1m # 登录宽限时间 AllowUsers adminuser1 adminuser2 # 只允许特定用户登录2.2 会话超时控制为防止会话被长期挂起设置会话超时全局超时设置对所有用户生效sudo vim /etc/profile添加export TMOUT1800 # 30分钟无操作自动断开SSH特定超时设置sudo vim /etc/ssh/sshd_config确保有以下配置ClientAliveInterval 300 ClientAliveCountMax 22.3 密钥认证强化密码认证存在被暴力破解风险推荐使用密钥认证生成密钥对在客户端执行ssh-keygen -t ed25519 -C your_emailexample.com将公钥上传至服务器ssh-copy-id -p 22222 usernameserver_ip在服务器上禁用密码认证sudo vim /etc/ssh/sshd_config修改PasswordAuthentication no ChallengeResponseAuthentication no3. 系统审计与监控完善的审计系统能帮助我们追踪异常行为及时发现安全威胁。3.1 auditd审计系统配置安装审计工具sudo apt-get install -y auditd常用审计规则示例监控重要文件访问sudo auditctl -w /etc/passwd -p wa -k passwd_changes sudo auditctl -w /etc/shadow -p wa -k shadow_changes监控特权命令执行sudo auditctl -a always,exit -F archb64 -S execve -k executed_programs永久保存审计规则sudo vim /etc/audit/rules.d/audit.rules添加规则后加载sudo augenrules --load sudo systemctl restart auditd3.2 日志管理策略配置日志轮转防止日志文件过大sudo vim /etc/logrotate.conf推荐配置weekly rotate 12 create compress delaycompress missingok notifempty关键目录日志监控配置示例sudo vim /etc/rsyslog.d/50-default.conf添加# 监控登录行为 auth,authpriv.* /var/log/auth.log # 监控sudo使用 local2.* /var/log/sudo.log4. 网络层安全防护4.1 防火墙配置UOS默认使用firewalld基础配置命令查看当前区域sudo firewall-cmd --get-default-zone开放SSH端口sudo firewall-cmd --permanent --add-port22222/tcp限制访问源IPsudo firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.0/24 port port22222 protocoltcp accept拒绝所有其他入站连接sudo firewall-cmd --permanent --set-targetDROP重新加载配置sudo firewall-cmd --reload4.2 内核参数调优修改sysctl.conf增强网络安全性sudo vim /etc/sysctl.conf推荐添加以下参数# 禁用ICMP重定向 net.ipv4.conf.all.accept_redirects 0 net.ipv4.conf.default.accept_redirects 0 # 开启SYN Cookie防护 net.ipv4.tcp_syncookies 1 # 禁用IP源路由 net.ipv4.conf.all.accept_source_route 0 net.ipv4.conf.default.accept_source_route 0 # 开启反向路径过滤 net.ipv4.conf.all.rp_filter 1 net.ipv4.conf.default.rp_filter 1应用配置sudo sysctl -p5. 定期维护与检查5.1 安全更新策略配置自动安全更新sudo vim /etc/apt/apt.conf.d/50unattended-upgrades启用Unattended-Upgrade::Allowed-Origins { ${distro_id}:${distro_codename}-security; };手动检查更新sudo apt update sudo apt list --upgradable5.2 系统健康检查创建定期检查脚本/usr/local/bin/security_check.sh#!/bin/bash # 检查rootkit echo ### Rootkit检查 ### sudo rkhunter --check --sk # 检查可疑进程 echo ### 进程检查 ### ps aux | awk $330.0 || $430.0 {print} # 检查异常登录 echo ### 登录检查 ### last -n 10 # 检查SUID文件变更 echo ### SUID文件检查 ### find / -perm -4000 -type f -exec ls -la {} \; | sort -k 3设置定时任务sudo crontab -e添加0 3 * * * /usr/local/bin/security_check.sh /var/log/security_check.log在实际运维中我发现很多安全问题都源于基础配置的疏忽。比如有一次客户服务器被入侵原因竟然是SSH仍然使用默认端口22且允许root登录。通过本文的这些配置可以避免90%的自动化攻击尝试。