Telnet服务——虚拟终端
Telnet是TCP/IP协议簇中的一员,Internet远程登陆服务的标准协议和主要方式。在Telnet程序中,可以输入命令在服务器运行,就像直接在服务器上运行似的,不过具体还得看你用哪个用户。Telnet位于OSI模型的第7层——应用层,与此同处应用层的还有HTTP、FTP、NFS、SMTP。这一协议需要通过用户名和口令进行认证,是常用远程控制服务器的方法。
.
一、服务的安装
telnet:Telnet客户端工具,系统默认已安装
telnet-server:Telnet服务端工具
查看系统安装了没
[root@linux2 ~]# rpm -qa | grep telnet
telnet-server-0.17-47.el6.i686
telnet-0.17-47.el6.i686
我的系统已经安装好Telnet了
Telnet软件包主要有这两个配置文件
/etc/xinetd.d/telnet ##主要配置文件
/usr/sbin/in.telnetd ##服务器守护进程文件,里面都是二进制
Telnet有个优点,那就是,它不是独立运行的,它还有个超级保镖:xinetd超级守护进程,一般情况下,我们都是使用xinetd对Telnet服务器进行配置管理的。
二、服务的设置和启用
Telnet服务安装后默认是不会被xinetd启用的,要修改主配置文件/etc/cinetd.d/telnet才能够启用它。
那么我们看看这文件里都有些什么东西
[root@linux2 ~]# more/etc/xinetd.d/telnet
# default: on
# description: The telnet server servestelnet sessions; it uses \
# unencryptedusername/password pairs for authentication.
service telnet
{
disable = yes ##默认是yes的,Telnet开机不自动启用
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd ##这个呢就是xinetd超级守护进程文件
log_on_failure += USERID
instances = 1 ##并发连接数是1,最多允许一台机器链接
}
再看看xinetd有没有开机自动启动
[root@linux2 ~]# chkconfig --list|grepxinetd
xinetd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
默认是关闭的,开启它
[root@linux2 ~]# chkconfig xinetd on
[root@linux2 ~]# chkconfig --list|grepxinetd
xinetd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
基于 xinetd 的服务:
已经启用了,再看看主配置文件/etc/xinetd.d/telnet,发现disabled还是yes啊,
那怎么办?你可以选择手动修改它为no,
也可以执行[root@linux2 ~]# chkconfig telnet on,打开配置文件一看,已经改了,改完之后就重启xined服务。
[root@linux2 ~]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@linux2 ~]# ps -ef|grep xinetd
root 6058 1 0 02:11 ? 00:00:00 xinetd -stayalive -pidfile/var/run/xinetd.pid
进程已经在运行了。
更改监听端口(看服务需要)
Telnet服务器的默认在端口23监听所有客户机的连接请求,为了安全起见按,可以更改端口。
端口配置文件/etc/serverces
[root@linux2 ~]# vim /etc/services
telnet 2233/tcp
telnet 2233/udp
三、Telnet客户端连接测试
1、在连接之前,要确保登陆的用户是否存在。
2、看看防火墙默认是ACCEPT还是DROP,最好是清空它。
开始连接:
[root@linux2 ~]# telnet 192.168.46.3
Trying 192.168.46.3...
Connected to 192.168.46.3.
Escape character is '^]'.
Red Hat Enterprise Linux Server release6.2 (Santiago)
Kernel 2.6.32-220.el6.i686 on an i686
login: root //不允许root用户登陆
Password:
Login incorrect
//如果想要使用root用户,可以先以普通用户登陆之后在su到root用户
login: gdlc
Password:
Last login: Sun Jun 7 01:17:25 from 192.168.46.3
已经登陆成功,看看日志文件提示什么呢
Jun 7 02:22:55 linux2 xinetd[6058]: START: telnet pid=6221from=::ffff:192.168.46.3
我们再用另外一个Telnet客户端连接看看
[root@linux2 ~]# telnet 192.168.46.3
Trying 192.168.46.3...
Connected to 192.168.46.3.
Escape character is '^]'.
Connection closed by foreign host //失败,被远程主机关闭了连接
?、???为什么会这样?看看日志文件
Jun 7 02:23:21 linux2 xinetd[6058]: FAIL: telnet service_limitfrom=::ffff:192.168.46.3
结果提示FAIL,并且service_limit,因为主配置文件那里我们设置了最多允许一个连接数啊instances = 1
连接成功后使用w命令看哪些用户在Telnet服务器上登陆了
[root@linux2 Desktop]# w
02:52:58 up 9 min, 4 users, load average: 0.12, 0.17, 0.13USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot tty1 :0 02:45 9:10 17.49s 17.49s /usr/bin/Xorg :0 -root pts/0 :0.0 02:45 16.00s 0.08s 0.02s telnet 192.168.46.
当退出Telnet远程服务时,,也是提示被远程主机关闭了
[gdlc@linux2 ~]$ logout
Connection closed by foreign host.
Windows上面连接Telnet也是使用同样的命令
C:\Users\Kernelry>telnet 192.168.46.3
弹出以下画面,成功登陆!
总结:在配置各个服务器或者应用程序时,必须要知道它的作用,再看看他们各自配置文件的作用,然后再清楚配置文件里面的内容,比如
/etc/xinetd.d/telnet
disable = yes ##默认是yes的,Telnet开机不自动启用
server = /usr/sbin/in.telnetd ##这个呢就是xinetd超级守护进程文件
instances = 1 ##并发连接数是1,最多允许一台机器链接
要是不清楚配置文件里的概述,那就算成功配置了也对自己没帮助