在Linux系统上启用Telnet服务

一、前言

Telnet是一个用来远程连接服务器或者设备执行操作的一个服务。但是由于是使用明文传输,现在基本上已经弃用了。 为什么我这里还要讲这个安装呢?主要是有时候在Linux系统做升级OpenSSH时,为了保险起见,一般都需要先启用Telnet服务,以防止由于OpenSSH升级失败而登录不上服务器或者设备。 由于Telnet服务在CentOS6和CentOS7上安装和配置方法都不一样,所以需要分开来写。

二、在CentOS6上的安装及启用

2.1 安装telnet-server

在CentOS6中,telnet服务是由xinetd管理的,没有单独的服务,所以需要一起安装xinetd才行。 注意,在Linux系统中,telnet服务相对应的软件名称是telnet-server,而不是telnet,telnet这个名称只是telnet服务的客户端。

# yum install xinetd telnet-server

执行 chkconfig –list,在最后一段会显示由xinetd管理的一些服务。

# chkconfig --list
........
xinetd based services:
	chargen-dgram: 	off
	chargen-stream:	off
	daytime-dgram: 	off
	daytime-stream:	off
	discard-dgram: 	off
	discard-stream:	off
	echo-dgram:    	off
	echo-stream:   	off
	rsync:         	off
	tcpmux-server: 	off
	telnet:        	off
	time-dgram:    	off
	time-stream:   	off

可以看到,telnet服务是off的状态。

2.2 配置文件,启用telnet服务

由于是xinetd服务管的,配置文件都在/etc/xinetd.d目录下。 修改/etc/xinetd.d/telnet文件,只要把其中的“disable = yes”改为“ disable = no”,就是启用telnet服务了。

# cat /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \\
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}

修改完,重启xinetd服务就可以了。

# chkconfig xinted on
# service xinetd restart

2.3 启用root用户登录

默认情况下,telnet不允许root用户登陆,需要做些配置。 在 /etc/securetty 文件最后,多添加一些pts终端入口,就可以以root用户登陆了。

# vim /etc/securetty
......
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
pts/9

2.4 防火墙的设置

为了方便,可以直接关闭防火墙。 # service iptables stop

如果一定要开防火墙的话,可以放行telnet服务的端口23. # iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT

三、在CentOS7上的安装及启用

3.1 安装telnet-server

Telnet服务在CentOS7上是单独的一个服务,不用安装xinetd,只要安装telnet-server,然后启动telnet服务就可以了。

# yum install telnet-server

3.2 启动telnet服务

# systemctl enable telnet.socket
# systemctl start telnet.socket

3.3 启用root用户登录

如果要使用root用户登录,也是需要在/etc/securetty文件中添加pts终端入口的,可以参考上面的教程。

3.4 防火墙的设置

为了方便,可以直接关闭防火墙。

# systemctl stop firewalld

如果一定要开防火墙的话,可以放行telnet服务的端口23.

#firewall-cmd --permanent --zone=public --add-port=23/tcp     //永久 
#firewall-cmd --zone=public --add-port=23/tcp      //临时
#firewall-cmd --reload

四、使用telnet客户端远程登录

要使用telnet客户端,需要先安装telnet客户端软件。

# yum install telnet

telnet命令格式: telnet 远程服务器IP地址或主机名 远程服务器telnet服务端口

实例:

# telnet 192.168.3.11
Trying 192.168.3.11...
Connected to 192.168.3.11.
Escape character is \'^]\'.
CentOS release 6.8 (Final)
Kernel 2.6.32-642.el6.x86_64 on an x86_64
login: root
Password:
Last login: Wed Dec  4 08:09:40 from 192.168.1.103