怎样用Telnet进行日志分析
导读:用 Telnet 进行日志分析的可行路径 一、定位日志来源 系统侧日志:在 Debian/Ubuntu 上,服务与内核消息通常写入 journald 与 /var/log/syslog;认证类事件常写入 /var/log/auth.log...
用 Telnet 进行日志分析的可行路径
一、定位日志来源
- 系统侧日志:在 Debian/Ubuntu 上,服务与内核消息通常写入 journald 与 /var/log/syslog;认证类事件常写入 /var/log/auth.log。若系统启用了 Telnet 服务(如通过 xinetd 或 systemd socket 激活),相关的“连接/断开/拒绝”等提示可能出现在这些文件中。可用如下方式快速检索:
- 查看服务日志:journalctl -u telnet.socket -f
- 检索关键字:grep -i “telnet” /var/log/syslog;grep -i “telnet” /var/log/auth.log
- 按时间筛选:journalctl --since “2025-11-24 09:00:00” --until “2025-11-24 18:00:00”
- 网络侧证据:若系统未记录 Telnet 会话细节,可用 tcpdump 抓取 TCP 23 端口流量,直接观察连接建立、断开与交互内容(Telnet 为明文协议):
- 抓包命令:sudo tcpdump -i any -nn -s0 -vv port 23
- 重要说明:在很多发行版中,Telnet 默认并不会自动写入详尽的会话日志,需结合系统日志与抓包综合分析。
二、快速排查与定位问题
- 服务与端口:确认 Telnet 服务是否运行并监听 23 端口
- 检查 socket/服务:systemctl status telnet.socket 或 systemctl status telnet.service
- 查看监听:ss -lntp | grep :23 或 netstat -tulpn | grep :23
- 防火墙与连通性:临时放行或关闭防火墙做 A/B 测试(如 firewalld/ufw),确认是否为策略阻断
- 认证与 Shell:若连接后立即断开,常见原因包括用户凭证错误、默认 shell 不可用或配置错误;可结合日志(如 /var/log/auth.log 或 /var/log/secure)与用户配置(/etc/passwd 中用户的 shell)排查
- 建议:完成取证后,优先迁移到 SSH 并禁用 Telnet,降低明文传输风险。
三、用 Python 自动拉取设备日志(适合路由器/交换机/防火墙等)
- 场景:很多网络设备仅支持 Telnet 管理,可用脚本自动登录并执行“show log / display log”等命令,集中采集与分析。
- 示例(Python 3,使用标准库 telnetlib):
- 安装:无需额外依赖(Python 自带 telnetlib)
- 代码示例:
- import telnetlib, time
- HOST, PORT = “192.0.2.10”, 23
- USER, PASS = “admin”, “cisco123”
- tn = telnetlib.Telnet(HOST, PORT, timeout=10)
- tn.read_until(b"login: “); tn.write(USER.encode() + b”\n")
- tn.read_until(b"Password: “); tn.write(PASS.encode() + b”\n")
- tn.write(b"show log\n"); time.sleep(2)
- data = tn.read_very_eager()
- print(data.decode(errors=“ignore”))
- tn.close()
- 提示:不同厂商提示符与分页方式不同,需调整 read_until 的匹配字符串与超时;对输出做正则与时间戳解析,便于入库与告警。
四、分析技巧与加固建议
- 关键字筛选与统计:
- 连接与接受:grep -i “telnet.*accepted” /var/log/syslog | wc -l
- 失败与拒绝:grep -i “telnet.*refused|fail” /var/log/syslog | tail -n 20
- 时间窗定位:journalctl --since “2025-11-24 10:00” --until “2025-11-24 12:00” | grep -i telnet
- 抓包进阶:
- 仅看 SYN/ACK 建连:sudo tcpdump -i any -nn -s0 ‘tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn’ and port 23
- 导出会话以便离线分析:sudo tcpdump -i any -nn -s0 -w telnet_20251124.pcap port 23
- 日志轮转与完整性:
- 使用 journalctl 或 zcat/less 查看历史轮转文件(如 /var/log/syslog.*.gz)
- 安全加固:
- Telnet 传输为明文,存在凭据泄露与会话劫持风险;建议启用 SSH、限制来源 IP、强制密钥登录、禁用 Telnet 服务。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样用Telnet进行日志分析
本文地址: https://pptw.com/jishu/754127.html
