一、Telnet介绍
Telnet协议是TCP/IP协议族中的一员,属于客户机/服务器(Clinet/Server,即C/S)模型的服务,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作能力。在终端使用者的电脑上使用Telnet程序,用它连接到服务器。终端使用者可以在Telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登陆服务器。Telnet是常用的远程控制web服务的方法,Telnet在网络服务并非安全,当然我的系统和信息也招不来"别有用心"的人,也就无所谓了。
Telnet协议基本内容:Telnet协议位于OSI模型的第7层——应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。
Telnet提供三种基本服务:1.Telnet定义一个网络虚拟终端为远程系统提供一个标准接口。客户机不需要详细了解远程系统,只需要构造使用标准接口的程序;2.Telnet包括一个允许客户机和服务器协商选项的机制,而且提供一组标准选项;3.Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
二、安装方法和步骤
1.查看telnet运行状态
$ sudo netstat -a | grep telnet
如果输出为空,表示没有开启该服务
2.安装openbsd-inetd和telnet
$ sudo apt-get install openbsd-inetd telnet -y #Ubuntu12.04 需要安装服务telnetd
3.重启openbsd-inetd
$ sudo /etc/init.d/openbsd-inetd restart
4.查看telnet运行状态
$ sudo netstat -a | grep telnet
三、Telnet测试
1.本地测试
$ telnet 127.0.0.1 # 因为127.0.0.1是本地回环地址,指本机IP地址,用于测试本机网络协议是否安装正确
2.SecureCRT远程测试
快速连接-->协议Telnet,主机名xxx.xxx.xxx.xxx(Telnet服务主机的网络IP地址,需处于同一网络、同一网段下)、端口23,即可使用Telnet远程登陆。
输入用户名和密码即可登陆成功:
四、ssh介绍
ssh(安全外壳协议)为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;ssh为建立在应用层基础上的安全协议。和Telnet一样,也属于客户机/服务器(Clinet/Server,即C/S)模型的服务,但ssh是目前比较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。利用ssh协议可以有效防止远程管理过程中的信息泄露问题,所以ssh是替代Telnet和其他远程控制台管理应用程序的行业标准。
ssh功能和好处:传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,他们在网络上用明文传送口令和数据,非常容易就可以被人截获这些口令和数据。而且,这些服务程序的安全验证方式也是有弱点的,很容易受到"中间人"(man-in-the-middle)这种方式攻击。所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被"中间人"一转手做了手脚之后,就会出现很严重的问题。通过使用ssh,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能防止DNS欺骗和IP欺骗。使用ssh,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。ssh有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
ssh主要由3部分组成:
传输层协议(ssh-trans)
提供了服务器认证,保密性及完整性,以及提供压缩功能。ssh-trans通常运行再TCP/IP连接上,也可能用于其它可靠数据流上。ssh-trans提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计再此协议之上。
用户认证协议(ssh-userauth)
用于向服务器提供客户端用户鉴别功能。它运行再传输层协议ssh-trans上面。当ssh-userauth开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希算法)。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。ssh-userauth也需要知道低层协议是否提供保密性保护。
连接协议(ssh-connect)
将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发TCP/IP连接和转发X11连接。
注意:ssh(Secure Shell)分两个不兼容的版本——ssh1和ssh2。ssh1分1.3和1.5两个版本。1.ssh1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是发现这种方法又缺陷。2.ssh2避免了RSA的专利问题,并修补了CRC的缺陷。ssh2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC。同时ssh2增加了AES和Twofish等对称加密算法。
五、安装方法和步骤
1.查询ssh服务状态
$ ps -e | grep sshd
2.安装ssh
PS:从网上查到安装ssh-server和ssh-client,但是Ubuntu16.04网络安装包并未检索到该安装包,结果在ssh安装包中检索了ssh-server服务,所以本人安装的是ssh。
$ sudo apt-get installssh
3.配置/etc/ssh/sshd_config文件
#PermitRootLogin prohibit-password
#注释以上一行,添加以下三行内容,最后两行解决超时问题
PermitRootLogin yes
ClientAliveInterval 60
ClientAliveCountMax 86400
4.重启ssh
$ sudo /etc/init.d/ssh restart
5.查询ssh服务状态
$ ps -e | grep sshd
PS:每个远程客户端对应一条信息
六、ssh测试
1.本地测试
$ ssh 127.0.0.1 # 因为127.0.0.1是本地回环地址,指本机IP地址,用于测试本机网络协议是否安装正确
2.SecureCRT远程测试
快速连接-->协议SSH2,主机名xxx.xxx.xxx.xxx(SSH服务主机的网络IP地址,需处于同一网络、同一网段下)、端口22,保存用户名和密码,即可使用SSH远程登陆。