熟悉Linux运维和网络安全排查的朋友都知道,/var/log/secure是CentOS、RedHat系列Linux服务器最重要的安全审计日志文件,系统全部账户远程登录、权限校验、服务访问、设备鉴权、应用接口访问的拒绝拦截记录,都会统一归档存储在这个日志文件内。服务器被外网攻击、内网人员违规越权访问、账户密码错误、服务白名单拦截、关键目录非法访问产生的拒绝访问行为,全部可以通过针对性操作查询这个日志文件完成溯源。下面我用通俗的实操口吻,从日志基础认知、基础查询、精准筛选、批量统计、异常研判全流程,讲解全套可直接落地的secure日志拒绝访问记录查询操作,适合日常安全巡检、等保核查、入侵溯源全场景使用。
先给大家科普这个日志文件的底层属性,方便大家理解查询逻辑。/var/log/secure是系统安全认证专属日志,由系统rsyslog服务默认采集生成,不需要人工配置开启;只要服务器运行正常,所有鉴权失败、访问被拦截、权限不足、策略拒绝的操作行为,都会打上Failed、denied、refused标签存入文件。和其他系统日志不同,这个文件专门归集安全类拦截数据,没有冗余业务运行日志,查询拒绝访问行为精准度远高于其他系统日志。Ubuntu系列服务器对应日志为/var/log/auth.log,操作查询命令逻辑完全通用,大家可以直接平移操作。
最简单的入门级查询操作:直接浏览全部原始拒绝访问记录。新手运维人员可以直接用cat命令读取全量日志,筛选系统标记的拒绝访问条目。标准操作命令cat /var/log/secure | grep -E "denied|Failed|refused",这条命令通过多关键词匹配,一次性筛选出全部权限拒绝、登录失败、访问拦截、服务拒绝四类高危记录。执行之后页面会按照时间顺序,展示每条拒绝访问行为的发生时间、操作账户、访问源IP、目标访问端口、系统拦截原因。日常浅层巡检,这条命令就能满足绝大多数基础查询需求,命令简单容易记忆,不存在复杂参数配置。
针对性场景精准查询操作,也是入侵排查最常用的操作方式。我们可以根据排查场景,定向查询某一类专项拒绝访问记录。想要查询远程账户登录拒绝记录,执行命令grep "Failed password" /var/log/secure,主要筛查SSH、远程控制台账号爆破登录被系统拒绝的记录;想要查询服务器本地权限越权被拒绝记录,执行grep "Permission denied" /var/log/secure,排查内部账号非法访问系统关键目录、修改系统配置权限不足被拦截的行为;想要查询第三方应用服务外联访问拒绝记录,执行grep "Connection refused" /var/log/secure,排查服务器主动访问外网高危端口被防火墙和系统内核拦截的记录。
时段定向查询操作,适合事后溯源复盘安全事件。很多时候我们只需要查询某一个故障时间段的拒绝访问记录,不需要调取全年日志。可以结合grep和时间筛选参数,精准截取指定时段拦截日志。典型实操案例:查询今日凌晨0点到6点全部拒绝访问记录,通过时间正则匹配命令定向抓取对应时段数据,过滤其他时段正常日志数据。这种操作可以快速定位安全故障对应时间节点的拦截行为,排查效率大幅提升,不用翻阅百万级冗余日志数据。
高级批量统计与溯源查询操作,适合大规模安全巡检。我们可以结合awk、sort命令,统计一段时间内发起大量拒绝访问请求的高危IP地址,命令自动汇总同一IP触发拦截行为的次数。短时间内触发几十上百次拒绝访问记录的外网IP,基本都属于恶意扫描、入侵试探的高危攻击IP,运维人员可以直接将这类IP加入服务器黑名单,做长期访问拦截。
给大家梳理实操工作中的关键注意事项。第一,/var/log/secure日志会随着服务器运行自动轮转归档,老旧日志会以secure-日期压缩文件格式留存,查询历史跨年、跨月拒绝访问记录,需要解压归档日志文件再执行查询命令;第二,日志出现大批量同网段拒绝访问记录,大概率是网段扫描攻击,单点零散拒绝条目多为员工输错密码、业务程序配置参数异常导致的正常误报;第三,排查出高危拒绝访问记录后,优先核查该行为后续是否突破系统拦截成功访问服务器,判断入侵行为是否落地得逞。
这套全套查询操作没有复杂配置,全部服务器原生命令,不依赖第三方审计平台,中小型企业运维人员可以熟练掌握,把该日志的拒绝访问筛查纳入日常巡检清单,可以提前拦截绝大多数未入侵成功的前置攻击行为,筑牢服务器第一层安全防护屏障。