很多传统运维和老旧业务生产环境中,还在大量使用Telnet远程管理协议和FTP文件传输协议,这两种协议本身存在先天安全缺陷:传输账号密码和业务数据全部明文传输,不具备加密校验能力,也是黑客重点爆破攻击的两类应用服务。日常排查这两类服务的异常登录、暴力破解、非法访问行为,我们不需要部署大型日志审计平台,直接使用Linux系统原生内置命令就能精准调取、筛选、分析全部登录尝试日志。我用大白话给大家逐条讲解实操命令、使用场景、参数含义和筛选案例,零基础运维照着复制粘贴就能完成排查,同时讲清楚不同命令的适用场景和排查细节。
首先大家要记住基础存储路径,Linux系统下Telnet远程登录日志、FTP服务登录日志,默认归集存放于/var/log/目录下,不同CentOS、Ubuntu系统版本目录基本通用,少量系统会存放在rsyslog归集目录,所有查看命令都基于这个默认目录执行。Windows服务器的Telnet和FTP日志会存放在系统事件查看器和服务专属日志目录,工业生产环境还是Linux服务器使用居多,我们重点讲解生产环境主流Linux命令实操。
第一个核心基础命令:cat查看全量原始登录日志。最简单的基础查看命令cat /var/log/secure | grep telnet,这条命令可以直接调取服务器全部Telnet服务原始登录尝试记录。命令逻辑很简单,cat负责读取日志文件全部内容,grep是精准匹配筛选关键词,telnet为服务检索关键词。执行命令后,页面会输出服务器所有Telnet服务的登录成功、登录失败、连接中断、超时重试全部行为日志。排查老旧历史异常登录痕迹,用这条基础命令最合适。配套FTP全量日志查看命令为cat /var/log/secure | grep ftp,执行逻辑和Telnet完全一致,能够抓取全部FTP账户登录、文件访问、站点连接尝试记录。
第二个高频实操命令:tail实时监控异常登录尝试。排查正在发生的攻击行为时,不能翻看历史静态日志,要用tail实时滚动查看日志命令。命令格式tail -f /var/log/secure | grep telnet,参数-f代表实时监听日志动态刷新,服务器产生新的Telnet登录请求,页面会第一时间弹窗展示。运维排查人员可以实时监控当下的爆破攻击行为,现场锁定攻击IP和攻击频次。排查FTP实时攻击把关键词替换为ftp即可,这条命令应急排查效率最高,适合突发安全事件现场值守排查。
第三个进阶筛选命令:grep过滤批量异常失败登录。绝大多数恶意入侵都是大量失败登录爆破,我们可以精准筛选密码验证失败、权限拒绝的异常日志。命令grep “Failed password” /var/log/secure | grep telnet,这条命令专门过滤Telnet全部登录失败尝试行为,能清晰看到攻击源IP、尝试登录用户名、爆破时间、连接端口。对应FTP失败登录命令grep “Failed password” /var/log/secure | grep ftp,生产环境排查爆破攻击优先使用这条命令,过滤掉正常合规登录日志,只展示高危异常登录行为。
第四个统计分析命令:awk统计高频爆破攻击IP。发现大量异常登录尝试后,我们需要统计哪个IP攻击频次最高,定位主要攻击源头。组合命令grep telnet Failed /var/log/secure | awk '{print $11}' | sort | uniq -c,这条命令可以自动统计全部Telnet爆破IP的攻击次数,从高到低排序,高频IP基本就是恶意黑客攻击主机。FTP服务替换关键词即可完成同源IP攻击统计,方便后续批量封禁高危IP网段。
给大家讲清楚实操易错细节:Telnet和FTP服务关闭之后,历史登录日志不会自动清除,依旧可以用以上命令复盘历史攻击痕迹;部分企业修改了日志归集目录,执行命令前需要先用find命令定位secure日志真实存放路径;这两类协议明文传输数据,日志内可以直接看到登录账号明文,排查时注意做好敏感数据保密。
还要提醒大家,生产环境非必要情况下尽量关闭外网Telnet服务。这类协议抗攻击能力薄弱,日志排查只能事后溯源和应急处置,无法从源头规避攻击,搭配防火墙IP封禁、账户白名单机制,配合以上日志查看命令,能全方位管控两类服务的登录安全风险。