Telnet是TelecommunicationNetwork的英文缩写,意为远程登录,是最主要的Internet应用之一。远程登录可以让您在一台入网的计算机的键盘上通过网络与远程的一台计算机相连,如同是那台计算机的终端一样。一旦连接成功,远程计算机就可以为您提供为本地提供的一切服务。实验:telnetbbs.sjtu.edu.cntelnetbbs.pku.edu.cnTelnet采用Client/Server模式,在用户要登录的远程系统上必须运行Telnet服务程序,在用户的本地计算机上需要安装Telnet客户软件,Telnet的最基本的应用是共享远程系统的资源,只要有访问权限,您就可以该计算机上的相关资源,包括超级计算机,精密绘图仪,高速打印机等硬件资源,也包括一些计算程序等软件资源及大型数据库的信息资源。Telnet的第二个应用是使用远程主机上提供的Internet信息服务工具如Gopher,News,去访问其他的Internet信息服务。Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门。Telnet协议是TCP/IP协议族中的一员,它最初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。黑客的最爱•当终端服务这个基于图形界面访问的服务推出之后,现在已经很少有人利用Telnet服务进行远程访问和远程办公了。但是Telnet服务却摇身一变成为了黑客的最爱。据统计,被黑客利用得最多的一个系统服务,就是Telnet服务。–黑客为什么不喜欢使用同样基于远程访问,并且更加方便直观的终端服务,而偏爱Telnet服务呢?难道因为黑客就喜欢在黑乎乎的命令窗口中操作吗?–因为使用Telnet服务进行远程控制更加隐蔽,对系统的资源消耗也非常小,并且只需要一个命令即可开启和关闭它。所以对于网络安全来讲Telnet服务是一个非常危险的服务。MicrosoftWindows从Vista开始,telnet用户端不再是预先安装,而要手动从程式集里启动才可以使用。在之前的版本,只要电脑启动了TCP/IP服务,telnet用户端都同时可以使用。Telnet也是目前多数纯文字式BBS所使用的协议,部分BBS尚提供SSH服务,以保证安全的资讯传输。SSH是一个用来代替Telnet的传统的远程登录程序的工具,主要想解决口令在网上明文传输的问题使用Telnet协议进行远程登陆时需要满足以下条件:☆在本地计算机上必须装有包含Telnet协议的客户程序;☆必须知道远程主机的IP地址或域名;☆必须知道登录标识与口令。·Telnet远程登录服务分为以下4个过程:1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名;2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(NetVirtualTerminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。现在以登录到北大图书馆为例说明,如何使用Telnet1.运行命令:“telnet162.105.140.2”或“telnetpul2.pku.edu.cn”2.登录成功后,在login后输入登录名:“PULROS”3.完成前二步后,即可进入北大图书馆系统,屏幕显示如下:适应异构为了使多个操作系统间的Telnet交互操作成为可能,就必须详细了解异构计算机和操作系统。为了适应异构环境,Telnet协议定义了数据和命令在Internet上的传输方式,此定义被称作网络虚拟终端NVT(NetVirtualTerminal)•NVT使用7位标准ASCII码来表示数据,每个7位的字符都以8位(一个字节)的格式发送,最高位固定为1•当用户从本地键入普通字符时,NVT将按其原始含义传送•当用户键入组合键时,NVT将它转化为特殊的ASCII字符在网络上传送•NVT把两个字符的序列CR-LF定义为标准行结束符它的应用过程如下:对于发送的数据:客户机软件把来自用户终端的按键和命令序列转换为NVT格式,并发送到服务器,服务器软件将收到的数据和命令,从NVT格式转换为远地系统需要的格式;对于返回的数据:远地服务器将数据从远地机器的格式转换为NVT格式,而本地客户机将将接收到的NVT格式数据再转换为本地的格式。TELNET命令TELNET命令格式如下:IAC命令代码几乎全部Telnet命令都至少由2个字节组成:☆第一个字节0xFF(十进制的255)称为IAC(InterpretAsCommand,作为命令来解释),是一个转义字符,表示该字符后面的字节才是命令代码☆第二个字节包含了将要执行命令的代码*如果数据中包含取值为255的字节,为了避免将其后的字节错误地解释为命令,必须接连发送两个取值为255的字节例:catfile1误输入为catfilea后的修改。输入:“c”“a”“t”“”“f”“i”“l”“e”“a”IACEC“1”命令编码描述IAC(作为命令来解释)255表示跟在该命令之后的数据应作为命令来解释DON’T254表示选项参数指定的启用选项的请求已被拒绝DO253表示选项参数指定的启用选项的请求已被接受WON’T252通知目标计算机,选项参数指定的启用选项的请求已被拒绝WILL251通知目标计算机,选项参数指定的启用选项的请求已被接受SB(子协商开始)250表示后面所跟的命令序列是某一选项的子协商GA(继续)249允许以半双工通信方式传输EL(删除当前行)248通知服务器删除当前行EC(删除前一字符)247通知服务器删除前一字符AYT(你还在吗)246客户端发给服务器用于检测服务器进程是否还在运行的命令AO(终止输出)245完成进程,但不向客户发送输出IP(中断进程)244中断、终止或结束某个进程BRK(中断)243表示数据传输的中断DM(数据标记)242SYNCH的数据部分NOP(空操作)241表示不对客户端或服务进行任何操作SE(子协商结束)240表示某一选项的子协商命令序列结束EOR(记录结束)239表示文件的最后一行已传输出去SUSP(暂停当前处理)237表示客户端通知服务器挂起当前正在进行的操作EOF(文件结束)236表示传文件中的数据已全部传输出去数据流向将Telnet设计为应用级软件有一个缺点,那就是:效率不高。数据信息被用户从本地键盘键入并通过操作系统传到客户机程序,客户机程序将其处理后返回操作系统,并由操作系统经过网络传送到远地机器,远地操作系统将所接收数据传给服务器程序,并经服务器程序再次处理后返回到操作系统上的伪终端入口点,最后,远地操作系统将数据传送到用户正在运行的应用程序,这便是一次完整的输入过程;输出将按照同一通路从服务器传送到客户机。强制命令Telnet协议必须使用外带信令以便强制服务器读取一个控制命令。我们知道TCP用紧急数据机制实现外带数据信令,那么Telnet只要再附加一个被称为数据标记(datemark)的保留八位组,并通过让TCP发送已设置紧急数据比特的报文段通知服务器便可以了,携带紧急数据的报文段将绕过流量控制直接到达服务器。作为对紧急信令的相应,服务器将读取并抛弃所有数据,直到找到了一个数据标记。服务器在遇到了数据标记后将返回正常的处理过程。选项协商Telnet选项的协商方式也很有意思,它对于每个选项的处理都是对称的,即任何一端都可以发出协商申请;任何一端都可以接受或拒绝这个申请。另外,如果一端试图协商另一端不了解的选项,接受请求的一端可简单的拒绝协商。因此,有可能将更新,更复杂的Telnet客户机服务器版本与较老的,不太复杂的版本进行交互操作。如果客户机和服务器都理解新的选项,可能会对交互有所改善。否则,它们将一起转到效率较低但可工作的方式下运行。所有的这些设计,都是为了增强适应异构性,可见Telnet的适应异构性对其的应用和发展是多么重要。IAC命令码选项码选项协商命令码:WILL、DO、WONT、DONT选项协商需要3个字节:一个IAC字节,接着一个字节是WILL,DO,WONT和DONT这四者之一,最后一个字节指明激活或禁止的选项代码。例如“WILLX”意思是“你是否同意我使用X选项”,“DOX”意思是“我同意你使用X选项”,“DONTX”意思是“我不同意你使用X选项”。但现在Telnet已经越用越少了。主要有如下三方面原因:第一,个人计算机的性能越来越强,致使在别人的计算机中运行程序要求逐渐减弱。第二,Telnet服务器的安全性欠佳,因为它允许他人访问其操作系统和文件。第三,Telnet使用起来不是很容易,特别是对初学者。