原文地址:https://blog.****.net/zhujiangm/article/details/4540778

服务器:CentOS-5.1(192.168.1.87)
客户机:FC6(192.168.1.86) Windows XP(192.168.1.88)

虽然telnet的明文传输有很大的安全隐患,而且现在基本上也被SSH来取代了,但是为了学习还是有必要了解一下,好了,进入正题

实验名:telnet服务器配置

一、安装telnet软件包(通常要两个)。
  
  1、 telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序;
  2、是 telnet-server 软件包,这个才是真正的 Telnet server 软件包!
  安装之前先检测是否这些软件包已安装,方法如下:
  [root@linuxchao root]#rpm –qa |grep telnet
telnet-server-0.17-38.e15
  如果没有检测到软件包,需要进行安装,CentOS服务器模式默认已安装了telnet软件包,但是服务器需要telnet-server软件包才行(安装

包在光盘内 也可在在网络上下载安装)

我的是硬盘安装的CentOS系统,所以会挂载硬盘分区之后再挂载镜像,光盘安装方法相似!

[root@linuxchao root]mount /dev/hda6 /mnt/da #da是我在/mnt下建立的目录,hda6分区为centos镜像所在
[root@linuxchao root]mount -t iso9660 -o loop /mnt/da/CentOS-5.1-i386-bin-DVD.iso /mnt/iso #iso目录也是我建的
[root@linuxchao root]cd /mnt/iso/CentOS #这个目录是rpm包所在的目录
[root@linuxchao root]rpm -ivh telnet-server-0.17-38.e15.rpm
上面就安装好telnet服务器软件包了,现在来查看一下。
  [root@linuxchao root]#rpm –qa |grep telnet
  telnet-0.17-38.e15
telnet-server-0.17-38.e15

二、启动telnet服务
  
  1、开启服务
  方法一:使用ntsysv,在出现的窗口之中,将 telnet 勾选起来,然后按下 OK 即可 !
  方法二:编辑 /etc/xinetd.d/telnet
  [root@linuxchao root]# vi /etc/xinetd.d/telnet
  找到 disable = yes<==就是改这里,将 yes 改成 no 即可!服务预设是关闭的
方法三:使用chkconfig命令直接开启
  [root@linuxchao root]chkconfig telnet on
  2、激活服务
  telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然

也就可以被激活。
  [root@linuxchao root]# service xinetd restart
或者[root@linuxchao root]# /etc/rc.d/init.d/xinetd restart #这个是比较正规的方法

三、测试服务
  
  [root@linuxchao root]#telnet localhost
  如果配置正确,系统提示输入远程机器的用户名和密码
  Login:
  Password:
  注:默认只允许普通用户,因此可先建立一个普通用户来做测试,不过也可以通过下面的方法来解决root访问的问题

Telnet root用户的登入
  
  root 不能直接以 telnet 连接上主机。 telnet 不是很安全,默认的情况之下就是无法允许 root 以 telnet 登入 Linux 主机的 。若要允许root用户登入,可用下列方法

 

  [root@linuxchao root]# vi /etc/pam.d/remote
  #auth required pam_securetty.so #将这一行加上注释!  
  或
  # mv /etc/securetty /etc/securetty.bak
  这样一来, root 将可以直接进入 Linux 主机。不过,建议不要这样做。还可以在普通用户进入后,切换到root用户,拥有root的权限!

四、客户端访问实验

基础由于LINUX为了提高TELNET的安全性和防止未授权的用户利用TELNET的BUG
下面我们来看一下二种错误:
第一种:
[root@linuxchao ~]# telnet 192.168.1.87
Trying 192.168.1.87...
telnet: connect to address 192.168.1.87: No route to host
telnet: Unable to connect to remote host: No route to host

解决方法:这种问题防火墙没有允许telnet服务,连接被阻止,默认CentOS只允许SSH,所以进入其自定义选项,在telnet前打个勾!

第二种
[root@test xinetd.d]# telnet 172.25.1.3
Trying 172.25.1.3...
Connected to 172.25.1.3 (172.25.1.3).
Escape character is \'^]\'.
getnameinf localhost: Success
Temporary failure in name resolution: Illegal seek
Connection closed by foreign host.

这一个就是/etc/hosts文件配置问题
解决方法:我在里面加两个IP地址,内容如下:

[linuxchao@localhost ~]$ more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1localhost.localdomainlocalhost
::1localhost6.localdomain6localhost6
192.168.1.88
192.168.1.86
说明:因为客户机的名字不好记就没写进去,内容格式应为 127.0.0.1 pcname

总结:在使用telnet时要记得1.打开防火墙对telnet的限制2./etc/hosts对客户机的限制3.注意/etc/hosts.allow与/etc/hosts.deny两个文件

里的内容,都有可能会限制访问,这里只是局域网测试就不说多了。

五、Telnet服务限制
  
  如果原本的默认值你并不满意,那么你可以修改成比较安全一点的机制。假设你这个 Linux 是一部主机,而且他有两块网络接口,分别是

对外的 192.168.0.1 与对内的212.45.16.5 这两个,如果你想要让对内的接口限制较松,而对外的限制较严格,你可以这样的来设定:
  #vi /etc/xinetd.d/telnet
  # 先针对对内的较为松散的限制来设定:
  service telnet
  { disable    = no         <==预设就是激活 telnet 服务
  bind       = 212.45.16.5    <==只允许经由这个适配卡的封包进来
  only_from    = 212.45.16.0/24   <==只允许 210.45.160.0/24 这个网段的主机联机进来使用 telnet 的服务
  .....
  }
  # 再针对外部的联机来进行限制
  service telnet
  
  {
  disable     = no<==预设就是激活 telnet 服务
  bind       = 192.168.0.1<==只允许经由这个适配卡的封包进来
  only_from    = 192.168.0.0/16<==只允许 192.168.0.0 ~ 192.168.255.255 这个网段联机进来使用 telnet 的服务
  only_from    = .edu.cn<==重复设定,只有教育网才能联机!
  no_access    = 192.168.25.{10,26}<==不许这些 PC 登入
  access_times  = 1:00-9:00 20:00-23:59 <==每天只有这两个时段开放服务
  ......
  }