服务器基线检查是保障系统安全的底线操作,通过核对和加固系统默认配置,能有效堵住绝大多数常规漏洞,把攻击者挡在门外。
为什么你的服务器总被盯上
很多运维人员都有过这样的经历:刚买的新服务器,系统装好,业务刚跑起来,没过半天就收到云厂商的告警短信,提示服务器正在对外发起异常流量,这往往不是因为你被哪个高级黑客组织盯上了,而是因为系统默认配置太宽松。参考2
据统计,相当一部分服务器入侵事件是因为默认配置未修改导致的,黑客用扫描器在互联网上无差别探测,只要你的SSH端口开着,root密码是弱口令,或者某些高危端口暴露在公网,你就成了待宰的羔羊。
行业共识认为,安全左移是降低风险成本最有效的方式,在系统上线前就把该关的关掉、该改的改掉,这比买多贵的防护软件都管用,这就是基线检查的意义所在,它不涉及多高深的攻防技术,拼的就是谁更细心、谁更守规矩。参考2
企业服务器安全基线配置场景与核心步骤
在企业实际生产环境中,基线配置不是拍脑袋决定的事情,它需要一套标准化的流程,无论是新系统上线前的硬化,还是等保测评前的整改,都有一套约定俗成的动作。
账号与口令安全加固
账号是进入系统的第一道门,很多企业内网为了方便,开发人员共用一个admin账号,甚至密码全公司通用,这种场景一旦一台机器被攻破,整个内网都会沦陷。
- 禁用root远程登录:直接用root远程登录风险极高,需要修改SSH配置文件,路径为
/etc/ssh/sshd_config,将PermitRootLogin参数修改为no,修改后执行systemctl restart sshd生效。 - 设置密码复杂度与有效期:修改
/etc/login.defs文件,将PASS_MAX_DAYS设为90天,PASS_MIN_LEN设为8位,同时在/etc/security/pwquality.conf中设置minclass=3,要求密码至少包含大写字母、小写字母、数字和特殊字符中的三类。 - 清理闲置账号:使用
lastlog命令查看长期未登录的账号,对于离职人员的账号要及时删除,命令为。userdel -r 用户名
服务与端口最小化原则
装系统时如果选择了“最小化安装”,默认开启的服务并不多,但很多时候运维人员图省事,会装一大堆开发工具和组件,导致系统暴露面激增。
- 关闭非必要服务:白天用
systemctl list-unit-files --type=service | grep enabled查看开机自启服务,像cups(打印服务)、postfix(邮件服务)如果业务不需要,直接禁用:systemctl disable cups。 - 管控监听端口:运行
netstat -tulpn查看所有对外监听的端口,除了业务必需的80、443和远程管理的22端口,其他端口如果不需要对外暴露,一律在防火墙拦截。 - 配置防火墙策略:使用
firewall-cmd只放行特定IP访问SSH端口,命令示例:firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source-address=公司出口IP port=22 protocol=tcp accept",然后firewall-cmd --reload。
服务器基线检查怎么做:Linux系统实操路径
很多人知道要改配置,但不知道具体怎么查,下面提供一些可以直接复制粘贴的命令,拿一台CentOS或Ubuntu系统就能直接跑。
身份鉴别机制核查
系统里有没有“后门”账号,查一下就知道,黑客入侵后经常会给自己留一个具备root权限的隐藏账号。
- 检查空口令账户:执行
awk -F: '($2 == "") {print $1}' /etc/shadow,如果输出为空,说明没有空口令账号,如果有输出,必须立刻给该账号设置密码:passwd 输出的用户名。 - 排查UID重复的账号:正常情况下,只有root账号的UID是0,执行
awk -F: '($3 == 0) {print $1}' /etc/passwd,如果除了root还输出了其他用户名,说明这个账号被提权了,必须立刻删除。 - 限制密码重试次数:修改
/etc/pam.d/system-auth或/etc/pam.d/common-auth,在对应行加入auth required pam_tally2.so deny=5 unlock_time=300,表示密码输错5次锁定300秒。
文件与目录权限管控
Linux系统的权限控制非常细,但很多关键文件如果权限设置不当,后果不堪设想。
- 核查关键系统文件权限:
/etc/passwd存储用户信息,权限必须是644;/etc/shadow存储密码哈希,权限必须是000或640,用ls -l /etc/passwd /etc/shadow查看,不对的用chmod 644 /etc/passwd和chmod 000 /etc/shadow修正。 - 查找SUID/SGID异常文件:SUID意味着普通用户执行该文件时拥有文件属主的权限,黑客经常利用这点提权,执行
find / -perm /4000 -o -perm /2000 -type f -exec ls -ld {} ; 2>/dev/null,重点排查非系统默认目录下的SUID文件,发现异常立刻取消:chmod u-s 异常文件路径。 - 检查全局可写目录:除了
/tmp目录,系统里不应该有其他全局可写的目录,执行find / -w -type d 2>/dev/null,如果发现/var/log等目录权限是777,必须改回正常权限,并给/tmp目录加上粘滞位:chmod 1777 /tmp。
服务器基线检查工具对比及选型指南
几十台机器靠人工敲命令还能应付,几百上千台机器全靠人工查是不现实的,这时候就得靠工具。
开源工具与商业产品差异
业内专家指出,工具的选择取决于企业规模和合规要求,开源工具灵活但学习成本高,商业工具省事但价格不菲。
| 工具类型 | 代表产品 | 适用场景 | 优缺点 |
|---|---|---|---|
| 开源 | Lynis, OpenSCAP | 中小企业、个人运维、技术极客 | 免费,支持自定义规则;但缺乏统一管理台,需人工分析日志 |
| 商业 | 绿盟BVS, 启明星辰天镜 | 大型企业、等保合规、金融医疗行业 | 自动化报告,支持多资产批量下发;采购成本较高 |
工具落地的痛点与对策
工具落地往往卡在成本和人力上,这时候老板通常会问:服务器基线检查服务价格大概多少,其实商业工具的授权费按资产数量计费,几十台机器的授权可能每年几万块起步。
如果是找第三方外包服务,比如找一家北京服务器基线检查服务公司,他们通常按次收费或者按年签运维包,单次检查几千元不等,对于预算有限的中小企业,更务实的做法是用Ansible配合Lynis开源工具,自己写Playbook定期跑巡检脚本,把结果输出到ELK日志平台做可视化展示。
日常巡检与持续合规
建立自动化基线巡检闭环
基线检查不是做完一次就万事大吉了,配置漂移是常态,开发人员为了排查问题临时改了某个参数,排查完忘了改回去,这就留下了隐患。
- 脚本化定时巡检:把前面提到的检查命令写成一个Shell脚本,用Cron定时任务每天凌晨跑一次,如果发现异常,直接通过企业微信机器人发告警。
- 配置文件版本控制:把
/etc目录下的核心配置文件纳入Git管理,一旦文件被修改,不仅能立刻发现,还能一键回滚到上一个安全版本。 - 集成到CI/CD流水线:在系统镜像打包阶段就引入基线扫描,如果镜像扫描不达标,直接阻断发布流程,不让不合规的机器上线。
基线检查不是一锤子买卖,而是日常运维的必修课,把配置规范落实到每一次上线部署中,系统安全才有底气。
服务器基线检查常见问题解答
Q1:服务器基线检查和漏洞扫描有什么区别?
基线检查看的是配置对不对,比如密码是不是太短、端口是不是关了、文件权限是不是太大;漏洞扫描看的是软件有没有已知漏洞,比如OpenSSL版本是不是有CVE编号,两者互补,不能互相替代。参考2
Q2:Windows服务器的基线检查重点是什么?
Windows系统重点看组策略,包括密码策略是否开启复杂度要求、账户锁定策略是否设置阈值、是否禁止Guest账户登录、是否关闭了默认共享(C$、D$等),以及是否开启了事件日志审计功能。
Q3:多久做一次基线检查合适?
新系统上线前必须做一次全量基线加固,日常运维中,建议每周或每月做一次自动化基线巡检,如果发生安全事件,必须立刻做一次基线核查以确认是否被篡改配置。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/526509.html



