赞
踩
Telnet
是
Teletype network
的缩写,现在已成为一个专有名词,表示远程登录协议和方式,分为
Telnet
客户端和
Telnet
服务器程序。
Telnet
可以让用户在本地
Telnet
客户端上远端登录到远程
Telnet
服务器上。下面为大家介绍下Telnet是什么以及有什么用等基础知识。
专业的说,Telnet
是Internet
上远程登录的一种程序也可以理解为有一套标准协议;它可以让您的电脑通过网络登录到网络另一端的电脑上,甚至还可以存取那台电脑上的文件。当然,不是每一台电脑都可以登录,前提是这台电脑有对外开放或者是必须拥有使用者帐号及密码;最重要的是与所想连接的电脑都得连上Internet
Telnet
服务器软件是我们最常用的远程登录服务器软件,是一种典型的客户机/服务器模型的服务,它应用Telnet
协议来工作。那么,什么是Telnet
协议?它都具备哪些特点呢?
Telnet
是位于OSI
模型的第7层—应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP
协议。就是说他是一种基于TCP
的应用层协议。这一协议需要通过用户名和口令进行认证,是Internet
远程登陆服务的标准协议。应用Telnet
协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:
Telnet
定义一个网络虚拟终端为远程系统提供一个标准接口。客户机程序不必详细了解远程系统,他们只需构造使用标准接口的程序;Telnet
包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;Telnet
对称处理连接的两端,即Telnet
不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。Telnet
提供远程登录功能,使得用户在本地主机上运行Telnet
客户端,就可登录到远端的Telnet
服务器. 在本地输入的命令可以在服务器上运行,服务器把结果返回到本地,如同直接在服务器控制台上操作. 这样就可以在本地远程操作和控制服务器。
在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务 器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。 Telnet
是常用的远程控制Web
服务器的方法。
Telnet
命令允许与使用Telnet
协议的远程计算机通讯。运行 Telnet
时可不使用参数,以便输入由 Telnet
提示符 (Microsoft Telnet>
) 表明的Telnet
上下文。可从 Telnet
提示符下,使用 Telnet
命令管理运行 Telnet
客户端的计算机。
Telnet
客户端命令提示符接受以下命令:
open
: 使用 openhostname
可以建立到主机的 Telnet 连接。close
: 使用命令 close 命令可以关闭现有的 Telnet 连接。display
: 使用 display 命令可以查看 Telnet 客户端的当前设置。send
: 使用 send 命令可以向 Telnet 服务器发送命令。支持以下命令:ao
: 放弃输出命令。ayt
: “Are you there”命令。esc
: 发送当前的转义字符。ip
: 中断进程命令。synch
: 执行 Telnet 同步操作。brk
: 发送信号。quit
:使用 quit 命令可以退出 Telnet 客户端。set
: 使用带有下列参数之一的 set 命令为当前会话配置 Telnet 客户端。bsasdel
: Backspace 将作为删除而发送。codeset option
: 只有当语言设置为日语时才可用。将当前代码集设置为选项,可以为下列选项之一:crlf
: 新行模式:导致 Return 键发送 0x0D, 0x0A。delasbs
: Delete 将作为退格键发送。escapecharacter
: 从 Telnet 会话模式转换到 Telnet 命令模式。当处于 Telnet 命令模式时,按 Enter 将会返回到 Telnet 会话模式。localecho
: 打开 localecho。logfilename
: 指定为该会话将 Telnet 日志写入到的文件的名称。如果不指定该文件的路径,将在当前目录中创建文件。指定日志文件还会启动日志记录。logging
: 启动该会话的日志。mode {console | stream}
:操作的模式。ntlm
:启动 NTLM 身份验证。term {ansi | vt100 | vt52 | vtnt}
:希望 Telnet Client 模拟的终端的类型。?
: 显示 set 的帮助信息。unset
: 使用 unset 命令可以关闭先前使用 set 命令设置的选项。status
: 使用 status 命令可以确定运行 Telnet 客户端的计算机是否已成功连接。?/help
: 显示“帮助”信息Telnet
由客户软件、服务器软件以及telnet
通信协议等三部分组成。
Telnet
客户软件运行在用户的计算机上。当用户执行Telnet
命令进行远程登录时,客户软件将完成下列功能:
TCP
连接。它在一个周知的23号TCP端口上打开一个套接字,如果远程主机上的Telnet
服务器软件一直在这个周知的端口上侦听连接请求,则这个连接便会建立起来。Telnet
协议传送给远程主机。远程主机必须运行Telnet
服务器软件,这样才能提供Telnet远程登录服务。Telnet
服务器软件将完成下列功能:
telnet
本身是一种协议,所以在windows
和linux
之间是可以相互远程的。
Telnet
本身是一种应用层协议,故在使用Telnet
时可以把它看成是一种系统命令。而且是是黑客的常用手法之一,且不会讲原有的操作用户踢下来(就是说你登陆了,别人都不知道),然而用mstsc
登陆的话,就必须将现在正在使用的用户踢下来才可以。
TELNET
一般是登录开放Telnet
服务的机器的23端口
两者最明显的区别是登陆方式不同,TELNET
是文本方式的登陆,命令行操作;MSTSC是图象界面操作。
Telnet
服务虽然使用方便,但由于其安全性不高,因此目前通常使用SSH(Secure Shell)
代替Telnet
进行远程管理。SSH
是一个在应用程序中提供安全通信的协议,通过SSH
可以安全地访问服务器,因为SSH
基于成熟的公钥加密体系,把所有传输的数据进行加密,保证数据在传输时不被恶意破坏、泄露和篡改。SSH
还是用了多种加密和认证方式,解决了传输中数据加密和身份认证的问题,能有效防止网络嗅探和IP
欺骗等攻击。
使用Telnet
这个用来访问远程计算机的TCP/IP
协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他 们会利用你安全意识的缺乏。传统的网络服务程序如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心 的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到中间人
(man-in-the- middle)这种方式的攻击。
所谓中间人
的攻击方式,就是中间人
冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
SSH
是替代Telnet
和其他远程控制台管理应用程序的行业标准。SSH
命令是加密的并以几种方式进行保密。
在使用SSH
的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令
SSH1
使用RSA
加密密 钥,SSH2
使用数字签名算法(DSA
)密钥保护连接和认证。加密算法包括Blowfish
,数据加密标准(DES
),以及三重DES(3DES)
。
SSH
保护并且有助于防止欺骗,“中间人”攻击,以及数据包监听。
通过使用SSH
把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS
和IP
欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH
有很多功能,它既可以代替telnet
,又可以为ftp、pop
、甚至ppp
提供一个安全的“通道”。
ssh简介
ssh
是(Secure Shell protocol
) 的简写,安全外壳协议(SSH
)是一种在不安全网络上提供安全远程登录
及其它安全网络服务的协议。
一个就是类似 telnet
的远程联机使用 shell
的服务器,即 ssh
另一个就是类似 FTP
服务的 sftp-server ,提供更安全的 FTP 服务
/etc/ssh/ssh_host*
的文件,若系统刚刚安装完成时,由于没有这些公钥,因此 sshd
会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥ssh
服务器,则需要使用适当的客户端程序来联机,包括 ssh, putty
等客户端程序连接~/.ssh/known_hosts
。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥ssh 协议
使用的是tcp 22
号端口,telnet
使用的是tcp
的23
号端口,ssh
协议是C/S架构,分为服务器端与客户端。
服务器端的程序有 sshd
客户端的程序有,Windows下 putty,SecureCRT,SSHSSH Secure Shell Client …… Linux下有,ssh
OpenSSH
包括sshd
主程序与ssh
客户端
vim /etc/ssh/sshd_config 1. SSH Server 全局设定,port ,协议 …… # Port 22 #默认端口,也可以使用多个端口 Protocol 2 #协议版本号 # ListenAddress 0.0.0.0 #默认值是监听所有接口的 SSH 要求 # PidFile /var/run/sshd.pid #放置 SSHD 这个 PID 的文件 # LoginGraceTime 2m #2分钟之内不输入密码,自动断开 # Compression delayed #使用压缩数据模式进行传输,登入后才将数据压缩 (delayed) 2. 主要私有Key 存放文件 # HostKey /etc/ssh/ssh_host_key # SSH version 1 使用的私钥 # HostKey /etc/ssh/ssh_host_rsa_key # SSH version 2 使用的 RSA 私钥 # HostKey /etc/ssh/ssh_host_dsa_key # SSH version 2 使用的 DSA 私钥 3. 关于登录文件的数据与daemon的名称 SyslogFacility AUTHPRIV #记录日志/var/log/secure # LogLevel INFO #日志等级 4. 安全设置 # PermitRootLogin yes #是否允许 root 登入 # StrictModes yes #是否让 sshd 去检查用户家目录或相关文件的权限数据 # PubkeyAuthentication yes #使用密钥登录系统 # AuthorizedKeysFile .ssh/authorized_keys #用户登录公钥存放位置 PasswordAuthentication yes #登录密码认证 # PermitEmptyPasswords no #否允许以空的密码登入 # RhostsAuthentication no #系统不使用 .rhosts认证 # IgnoreRhosts yes #是否取消使用 ~/.ssh/.rhosts 来做为认证 # RhostsRSAAuthentication no #专门给 version 1 用的,使用 rhosts 文件在 /etc/hosts.equiv # HostbasedAuthentication no #上面的项目类似,不过是给 version 2 使用的 # IgnoreUserKnownHosts no #是否忽略家目录内的 ~/.ssh/known_hosts ChallengeResponseAuthentication no #允许任何的密码认证 UsePAM yes #利用 PAM 管理使用者认证,可以记录与管理 5. 登录后项目 # PrintMotd yes #登入后是否显示出一些信息 # PrintLastLog yes #显示上次登入的信息 # TCPKeepAlive yes #当达成联机后,服务器会一直传送 TCP 封包给客户端以判断对方式否一直存在联机 UsePrivilegeSeparation yes #是否权限较低的程序来提供用户操作 MaxStartups 10 #同时允许几个尚未登入的联机画面 DenyUsers * #设定受阻止的使用者名称 DenyUsers test #阻止用户 DenyGroups test #阻止组 6. SFTP 设定 Subsystem sftp /usr/lib/ssh/sftp-server # UseDNS yes #为了要判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名,不过在内网这项目设定为 no 会让联机达成速度比较快
使用方式:sftp root@localhost
和sftp
支持的命令
针对远程服务器主机 (Server) 的行为
变换目录到 `/etc/test` 或其他目录 cd /etc/test cd PATH 列出目前所在目录下的文件名 ls dir 建立目录 mkdir directory 删除目录 rmdir directory 显示目前所在的目录 pwd 更改文件或目录群组 chgrp groupname PATH 更改文件或目录拥有者 chown username PATH 更改文件或目录的权限 chmod 644 PATH 其中,644 与权限有关 建立链接文件 ln oldname newname 删除文件或目录 rm PATH 更改文件或目录名称 rename oldname newname 离开远程主机 exit (or) bye (or) quit 针对本机 (Client) 的行为(都加上 l, L 的小写 ) 变换目录到本机的 PATH 当中 lcd PATH 列出目前本机所在目录下的文件名 lls 在本机建立目录 lmkdir 显示目前所在的本机目录 lpwd 针对资料上传/下载的操作 将文件由本机上传到远程主机 put [本机目录或文件] [远程] put [本机目录或文件] 如果是这种格式,则文件会放置到目前远程主机的目录下 将文件由远程主机下载回来 get [远程主机目录或文件] [本机] get [远程主机目录或文件] 若是这种格式,则文件会放置在目前本机所在的目录当中!可以使用通配符,例如: get * get *.rpm
scp [-pr] [-l 速率] file [账号@]主机:目录名 #上传scp [-pr] [-l 速率] [账号@]主机:file 目录名 #下载
选项与参数:
案例:
scp /etc/hosts* root @127.0.0.1 :~ #上传
scp root@127.0.0.1:/etc/bashrc /tmp #下载
基于口令的认证:这个就不用说了,就是输入用户名和密码
基于密钥的认证,具体步骤如下
客户端建立两把钥匙(公钥与私钥)
ssh-keygen [-t rsa|dsa] #可选 rsa 或 dsa
[root@localhost ~]# ssh-keygen #默认算法
[root@localhost ~]# ls -l .ssh/
total 8
-rw------- 1 root root 1675 May 27 03:05 id_rsa
-rw-r--r-- 1 root root 408 May 27 03:05 id_rsa.pub
将公钥数据上传到服务器上
scp ~/.ssh/id_rsa.pub root@192.168.1.254:~ #上传到 root 的家目录底下即可
将公钥放置服务器端的正确目录与文件名(scp 或 ssh-copy-id)
方法一 scp
方法二 ssh-copy-id
命令格式:ssh-copy-id –i /path/to/pubkey USERNAME@ERMOTE_HOST
案例:
ssh-copy-id –i .ssh/id_rsa.pub root@192.168.1.254
FTP
:文件传输协议。先说说他的功能吧,主要就是从运行FTP
服务器的计算机传输文件。可以交互使用。这里要注意,只有安装了tcp/ip
协议的机器才能使用ftp
命令。
命令格式:
ftp [-v][-d][-i][-n][-g][-s:filename][-a][-w:windowsize][computer]
说说他们的含义:
-v
: 不显示远程服务器响应-n
: 禁止第一次连接的时候自动登陆-i
: 在多个文件传输期间关闭交互提示-d
: 允许调试、显示客户机和服务器之间传递的全部ftp命令-g
: 不允许使用文件名通配符,文件名通配符的意思是说允许在本地文件以及路径名中使用通配字符-s
:filename 指定包含ftp命令的文本文件。在ftp命令启动后将自动运行这些命令。在加的参数里不能有空格。-a
: 绑定数据连接时,使用任何的本地端口-w
: windowsize 忽略默认的4096传输缓冲区computer
: 指定要连接的远程计算机的ip地址理解了上面的,就说说一些具体的命令,个人觉得虽然现在工具用起来很方便了,但懂这些命令在很多地方还是很有用的,就像现在nt下的命令提示符
?
: 显示ftp
命令的说明。后面可以加参数,是加需要解释的命令名,不加则显示包含所有命令列表。append
:使用当前文件类型设置,将本地文件附加到远程计算机中。append local-file [remote-file]
其中local-file
是说指定要添加的本地文件。remote-file
是说指定要将local-file附加到远程计算机文件,要是省了这个,则是使用本地文件名做远程文件名。ascii
: 默认情况下,将文件传输类型设置为ASCIIbell
:响玲开关,意思是文件传输完成后是否有玲声提醒。默认是关闭的。binary
:将文件传输类型设置为二进制。cd
:更改远程计算机上的工作目录。如cd data 其中data是要进入的远程计算机的目录。close
:结束与远程服务器的ftp会话,并返回命令解释程序。dir
:显示远程的文件以及子目录列表。如dir data local-filelocal-file
是指定要保存列表的本地文件,不指定的话就在屏幕输出。debug
:调试开关,打开的时候打印每个发送到远程计算机的命令,命令前有——>默认情况是关闭的。disconnnect
:与远程计算机断开连接,但还保持着ftp命令提示符。get
:使用当前文件传输类型,把远程的文件拷贝到本地计算机上。get remote-file local-file
glob
:文件名通配开关hash
:转换每个传输数据快的散列标记打印(#).数据快的大小是2048字节。默认情况下是关闭的,help
:显示ftp命令的解释,如help commmand 其中command就是你要解释的命令,如果不加command这个参数的话就会显示所有命令的列表!
:这个命令差点忘记了功能是在本地计算机上运行指定命令。如! command
其中command
就是你要运行的命令,如果不加command这个参数的话,则显示本地命令提示, 这时输入exit
命令就能返回到ftp
了。lcd
:更改本地计算机的本地目录,在默认的时候是启动ftp的目录.这个不要觉得没用啊,在你使用ftp的时候为了传递文件不是常改变本地和远程计算机的目录吗?lcd [directory]
其中[directory]是指定要进入的本地计算机的目录,如果你不加这个参数,就会显示出本地计算机的工作目录.literal
:向远程ftp服务器发送协商参数,报告.ls
:显示远程目录的文件和字目录.ls remote-directory local-file
remote-directory
是指要查看的列表的目录,不指定的话显示的是当前工作目录。local-file
是指定要保存列表的本地文件.不指定的话是在屏幕上输出.mdelete
:删除远程计算机上的文件.如mdelete remote-file …mdir
:显示远程目录的文件和子目录列表,他允许指定多个文件.mget
:使用当前文件传输类型将多个远程文件复制到本地计算机.mkdir
:创建远程目录.mls
:显示远程目录的文件和目录简表mput
:使用当前文件传输类型,将本地文件复制到远程计算机.open
:连接到指定ftp服务器上,prompt
:转换提示,在多个文件传输的时候,ftp提示可以有选择的检索或保存文件,如果关闭提示,则mget和mput命令传输所有文件,在默认情况下是打开的.put
:使用当前文件传输类型将本地文件复制到远程计算机中,pwd
:显示远程呢感计算机上的当前目录.quit
:结束与远程计算机的ftp会话,并退出ftp.quote
:向远程ftp服务器发送协议,报告.期待ftp单码应答,这个命令的功能和literal相同.recv
:使用当前文件传输类型将远程文件复制到本地计算机,他与get命令作用相同。remotehelp
:显示远程命令的帮助.这个命令的用法和help,!一样可以参考他的用法.rename
:更改远程计算机上的文件名。rmdir
:删除远程目录.send
:使用当前文件传输类型将本地文件复制到远程计算机.send和put命令的功能一样。如send local-file remote-filestatus
:显示ftp连接和转换的当前状态trace
:转换报文跟踪,运行ftp的命令时,trace将显示没个报文的理由。type
:设置或显示文件传输类型.type [type-name]
type-name
的意思是文件传输的类型,默认是ASCII,没加这个参数就是显示当前的传输类型.user
:指定连接到远程计算机的用户.user user-name [passwd] [account]
verbose
:转换冗余模式。这里如果打开,会显示所有ftp响应,文件传输结束的时候会显示传输的效率和统计信息,默认的情况是打开的Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。