Telnet与SSH两大协议有什么区别
作为系统管理员,我们的重要职责之一就是管理并监控生产服务器和企业服务器,更新服务器内核,安装最新的软件包和补丁,以及每天执行其他服务器常规任务,同时远程访问服务器。
其实有两大协议可用于访问服务器:
•Telnet
•SSH
不妨逐个讨论这两大协议:
Telnet
1. Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。
2. Telnet使用端口23,它是专门为局域网设计的。
3. Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。
4. Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。
5. 在Linux系统上,telnet很容易使用yum来安装:
[root@pbx2 ~]# yum install telnet
telnet的最佳用途就是检查远程主机上任何特定服务的状态。比如说,如果我们想要检查在本地服务器上通过端口80运行的Apache Web服务的状态,可以这么做:
[root@pbx2 ~]# telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[root@pbx2 ~]#
现在,我们可以看到,该Web服务已被停止,telnet也无法连接,所以我们不得不在服务器上重启服务,如下所示:
[root@pbx2 ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK]
现在再次检查:
[root@pbx2 ~]# telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
所以apache服务现已运行,以同样方式检查服务器上通过端口运行的SSH守护程序的状态:
[root@pbx2 ~]# telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
^]
telnet> quit
Connection closed.
SSH
1. SSH代表安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。
2. SSH默认情况下通过端口22运行;不过,很容易更改这个端口。
3. SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。
4. 一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。
5. SSH还使用公钥用于对访问服务器的用户验证身份,这是一种很好的做法,为我们提供了极高的安全性。
6.SSH主要用在所有流行的操作系统上,比如Unix、Solaris、Red-Hat Linux、CentOS和Ubuntu等。
7. 我们可以更改服务器的SSH端口,具体如下所示:
[root@pbx2 ssh]# vim /etc/ssh/sshd_config
打开该配置文件后,寻找Port,其在默认情况下应该会采用如下所示的注释:
#Port 22
去掉注释,更改端口,比如我就将它改成了端口10089。
Port 10089
保存文件后退出,使用下面这个命令,对SSH守护程序进行重置:
service sshd restart
我们还可以禁用服务器的根访问权,只要在同一个文件中稍微改动一下,搜索下面这个参数:
#PermitRootLogin yes
去掉注释,把“yes”换成“no”
PermitRootLogin no
结束语
以上这些是针对Linux服务器的非常基本的安全技巧,我们会在下一篇文章中着重介绍重要的Linux安全加固技巧。通过Telnet或SSH访问服务器的知名工具则有Putty、MTPutty和Secure CRT。到目前为止,SSH是最主要的访问协议,它还用于访问思科设备。