第26章 Telnet和Rlogin

所属:TCP/IP详解 卷1:协议 来源:TCP/IP详解 卷1:协议

本章介绍Telnet和Rlogin协议,包括Telnet协议、选项协商、Rlogin协议和远程登录等。


26.1 引言

远程登录

远程登录(Remote Login):

  • 通过网络登录到另一台计算机
  • 就像坐在那台计算机前一样
  • 可以执行命令
  • 可以操作

远程登录就是远程操作计算机。


为什么需要远程登录

为什么需要远程登录:

  • 服务器在机房
  • 不能每次都去机房
  • 远程就能操作
  • 方便管理
  • 多人共用一台机器

远程登录方便管理远程机器。


两种远程登录协议

两种远程登录协议:

  1. Telnet

    • 标准的远程登录协议
    • 通用
    • 跨平台
    • 选项协商
  2. Rlogin

    • BSD Unix的
    • 简单
    • 专为Unix设计
    • 信任机制

Telnet和Rlogin两种。


本章讨论的内容

本章讨论的内容:

  • Telnet协议
  • Telnet选项协商
  • Rlogin协议
  • 远程登录的工作原理
  • 两者的比较

本章介绍远程登录协议。


26.2 Telnet协议

什么是Telnet

Telnet:

  • 远程登录协议
  • 应用层
  • 用TCP
  • 端口23
  • 通用的远程登录
  • 跨平台

Telnet是标准的远程登录协议。


Telnet的特点

Telnet的特点:

  1. 通用

    • 不针对特定系统
    • 各种系统都能用
    • 跨平台
  2. 网络虚拟终端(NVT)

    • 定义了一个虚拟的终端
    • 双方都按这个来
    • 兼容各种终端
  3. 选项协商

    • 可以协商各种选项
    • 比如终端类型、窗口大小
    • 灵活
  4. 对称

    • 客户端和服务器是对称的
    • 都可以发起协商

Telnet通用、灵活。


网络虚拟终端

网络虚拟终端(NVT, Network Virtual Terminal):

  • Telnet定义的虚拟终端
  • 双方都用NVT来通信
  • 然后各自转换成本地的
  • 这样就兼容各种终端

NVT的特点:

  • 字符集:ASCII
  • 行结束:CR+LF
  • 控制字符:有定义
  • 半双工,默认一次一行

NVT是虚拟的标准终端。


Telnet的工作过程

Telnet的工作过程:

  1. 建立TCP连接

    • 客户端连服务器23端口
    • TCP连接建立
  2. 选项协商

    • 双方协商各种选项
    • 终端类型、窗口大小等
    • 互相说我能支持什么
  3. 登录

    • 服务器发登录提示
    • 用户输入用户名密码
    • 登录
  4. 交互

    • 用户输入,发过去
    • 服务器输出,发回来
    • 就像本地终端一样
  5. 退出

    • 用户退出
    • 连接关闭

建立连接→协商→登录→交互→退出。


26.3 Telnet选项协商

什么是选项协商

选项协商(Option Negotiation):

  • Telnet可以协商各种选项
  • 双方商量支持哪些功能
  • 让功能更丰富
  • 不只是最基本的NVT

选项协商让Telnet更灵活。


协商的命令

协商的命令:

  • 都以IAC(Interpret As Command)开头
  • IAC是字节255

四种协商命令:

命令代码说明
WILL251我想启用这个选项
WONT252我不想启用这个选项
DO253请你启用这个选项
DONT254请你不要启用这个选项

四种协商命令。


协商的规则

协商的规则:

  1. 一方说WILL

    • 我想启用
    • 对方可以回DO(同意)或DONT(不同意)
  2. 一方说DO

    • 请你启用
    • 对方可以回WILL(同意)或WONT(不同意)
  3. 一方说WONT

    • 我不想启用
    • 对方必须回DONT
  4. 一方说DONT

    • 请你不要启用
    • 对方必须回WONT

协商有规则。


常见选项

常见的Telnet选项:

选项代码说明
Echo1回显
Suppress Go Ahead3抑制继续(全双工)
Terminal Type24终端类型
Window Size31窗口大小
Terminal Speed32终端速率
Remote Flow Control33远程流控
Linemode34行模式

很多选项。


子协商

子协商(Subnegotiation):

  • 有些选项需要更多信息
  • 不是光说启用就行
  • 需要交换具体数据
  • 用子协商

例子:终端类型

  • 协商启用终端类型选项
  • 然后子协商
  • 服务器问:你是什么终端类型?
  • 客户端答:我是xterm
  • 这样服务器就知道了

子协商交换具体数据。


26.4 Rlogin协议

什么是Rlogin

Rlogin:

  • Remote Login
  • BSD Unix的远程登录协议
  • 专为Unix设计
  • 比Telnet简单
  • 端口513

Rlogin是Unix的远程登录。


Rlogin的特点

Rlogin的特点:

  1. 专为Unix设计

    • 只针对Unix
    • 不用考虑其他系统
    • 简单
  2. 信任机制

    • 基于主机信任
    • 可信主机可以免密登录
    • 方便但不安全
  3. 简单

    • 没有选项协商
    • 连接建立时就把信息都发过去
    • 比Telnet简单
  4. 端口

    • 客户端用特权端口(<1024)
    • 服务器用513
    • 作为一种弱验证

Rlogin简单,专为Unix。


Rlogin的工作过程

Rlogin的工作过程:

  1. 建立TCP连接

    • 客户端用特权端口
    • 连服务器513端口
  2. 客户端发信息

    • 一个字节的0
    • 客户端用户名
    • 服务器端用户名
    • 终端类型和速率
    • 窗口大小
    • 等等
    • 都在开头发过去
  3. 服务器验证

    • 检查主机是否可信
    • 检查用户
    • 可信的话直接登录
    • 不可信的话要密码
  4. 交互

    • 正常交互
    • 和Telnet类似

连接建立时就把信息都发过去。


Rlogin的信任机制

Rlogin的信任机制:

  • 基于主机信任
  • 服务器配置可信主机
  • 可信主机上的同名用户
  • 可以直接登录,不用密码

配置文件:

  • /etc/hosts.equiv
  • ~/.rhosts

问题:

  • 不安全
  • 容易被伪造
  • IP可以伪造
  • 现在很少用了

信任机制方便但不安全。


26.5 Telnet vs Rlogin

比较

Telnet vs Rlogin:

对比项TelnetRlogin
设计目标通用,跨平台Unix专用
复杂度复杂,选项协商简单
灵活性高,很多选项低,固定
端口23513
客户端端口任意特权端口
认证用户名密码主机信任+密码
安全性一般(明文)差(信任机制)
跨平台好差(Unix only)

各有特点。


现在的情况

现在的情况:

  • Telnet和Rlogin都不安全
  • 都是明文传输
  • 密码也是明文
  • 现在都用SSH代替了
  • SSH加密,安全

为什么还学:

  • 历史意义
  • 有些老设备还在用
  • 理解远程登录的原理

现在都用SSH了。


26.6 小结

远程登录概述

  1. 什么是远程登录

    • 通过网络登录远程计算机
    • 就像本地一样操作
  2. 两种协议

    • Telnet:通用
    • Rlogin:Unix专用

Telnet协议

  1. 什么是Telnet

    • 标准远程登录协议
    • 端口23
    • 跨平台
  2. 特点

    • 通用
    • NVT网络虚拟终端
    • 选项协商
    • 对称
  3. NVT

    • 虚拟终端
    • 标准格式
    • 双方转换
  4. 工作过程

    • 建立连接
    • 选项协商
    • 登录
    • 交互
    • 退出

Telnet选项协商

  1. 什么是选项协商

    • 协商各种功能
    • 灵活
  2. 四种命令

    • WILL:我想启用
    • WONT:我不想启用
    • DO:请你启用
    • DONT:请你不要启用
  3. 常见选项

    • 回显
    • 终端类型
    • 窗口大小
    • 等等
  4. 子协商

    • 交换具体数据
    • 比如终端类型具体是什么

Rlogin协议

  1. 什么是Rlogin

    • BSD Unix的远程登录
    • 端口513
    • 简单
  2. 特点

    • Unix专用
    • 简单
    • 主机信任
    • 特权端口
  3. 工作过程

    • 建立连接
    • 客户端发所有信息
    • 服务器验证
    • 交互
  4. 信任机制

    • 主机信任
    • 免密登录
    • 不安全

比较

  1. Telnet

    • 通用、灵活、复杂
  2. Rlogin

    • 简单、Unix专用、信任机制
  3. 现在

    • 都不安全
    • 都用SSH代替

关键概念

  1. 远程登录

    • 远程操作计算机
  2. Telnet

    • 标准协议
    • NVT
    • 选项协商
  3. Rlogin

    • Unix专用
    • 简单
    • 主机信任
  4. 选项协商

    • WILL/WONT/DO/DONT
    • 子协商

Telnet Rlogin