知道 telnet 是什么吗?咦!不就是连接 BBS 的工具吗?!嘿嘿!没错!他确实也是 BBS 软件类的挂上的一个服务器啦!不过这里我们暂不玩弄 BBS !因为 VBird 目前也还没有打算玩他!呵呵! telnet 可以说是历史相当悠久的远程联机服务器哩!而且支持他的软件也相当的多!例如知名的 netterm 就直接支持他啦!联机之后的界面也漂亮,在 client 端的中文传输与输入也没有问题!相当的不错用!不过,他最麻烦的地方就是.....比较不安全而已啦~
底下我们谈一谈怎么激活与使用 telnet 服务器吧!
· telnet 服务器:激活与关闭服务
还记得『认识服务』那个章节吧!?还记得 super daemon 呦!?没错啦,我们的 telnet 就是挂在底下的一支服务而已!那个咚咚就是有名的 xinetd 啰!( 注:在某些旧版的套件上面也有使用 inetd 的,激活的方式有点不太一样,不过差异不大啦!只要懂得基本的常识,那么就不会有问题啰!所以要多瞧一瞧 Linux 基础篇 啦! ) 激活的方式就是 (1)将 xinetd 里面关于 telnet 的项目开启,然后 (2)重新激活一次 xinetd 就成功啦!那么如何开启 telnet 的项目呢?很简单,有两个方式,
1. 使用 ntsysv :
还记得 ntsysv 这个好用的东西吗?对了,在 Red Hat 底下有这么一个好用的设定工具,你可以使用 ntsysv 出现的窗口之中,将 telnet 勾选起来,然后按下 OK 离开即可啰!
2. 使用 vi 修改 /etc/xinetd.d/telnet 这个档案:
那么如果不是 Red Hat 的 Linux 系统呢?基本上, ntsysv 也只是修改 /etc/xinetd.d 这个目录下的资料而已,所以我们当然可以手动自己修改他啦!
看到了没!?只要将 disable (取消的意思) 变成 no ,也就是不取消,亦即是开启啦!
设定完开启之后,自然就是要激活啦,刚刚提到 telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定激活的 telnet 自然也就可以被激活啦!而激活的方式也有两种方式,其中 service 仅支持在 Red Hat 底下,所以通常我还是以 /etc/rc.d/init.d 底下的 scripts 为激活的主要方法啦!
那么要看有没有激活服务呢?怎么看?其实也很简单啦,还记得我们在 限制 Linux port 的联机 那一章吗?使用 netstat 就可以啦!

看到了吗?没错,那个 telnet 就是激活的项目啦!( 考一个问题,那个 port 对应的服务名称在哪一个档案里面查询到的呢?在每一个 Linux 系统都有的档案呦!忘记了呀!?看看 这里 ,然后用 vi 去看看那一个档案的内容吧! ^_^ )那么要如何关闭呢?呵呵!那就真的是太简单啦!就将刚刚的步骤再做一次,而将设定值转变一下即可!步骤如下啦!

这样就关掉啦!很简单吧!
· telnet 客户端:好用的联机软件
刚刚上面提到的都是在服务器端的设定而已!那么在客户端有什么好用的软件可以连上 Server 的呢?最常见到的应该就是 netterm 这个鼎鼎大名的联机软件了吧!我想,只要玩过 BBS 的大概都晓得这个软件才对!所以这里就不提了!另外,目前几乎所有的操作系统都提供了 telnet 这个程序,这个程序可以直接轻易的就连上 telnet server 呢!例如您要在 Linux 上面连上自己的 telnet 服务器,可以这样做:
这样就联机进来啦!很简单吧!那么在 Windows 的环境底下呢?同样的,也是可以使用 telnet 的程序联机到 Linux 的 telnet server 里面来!没有问题的啦!可以依序这样做:
1. 按下 Windows 内的 『开始』
2. 选择 『执行』
3. 在出现的窗口中输入 『telnet your.IP.or.hostname』
这样就可以进入 Linux 的环境中了!很方便吧!
· telnet 安全性:iptables, TCP_Wrappers, 纯建议,
telnet 这个服务器方便归方便,但总是一个不太好的联机解决方案,因为毕竟他是一个以『明码』传输的协议,什么是『明码』呢?简单的说,当你使用 telnet 的时候,你总是会在屏幕上面输入资料吧!?最简单的例子,就是你总是要登入 telnet 的主机画面吧!那么你总是需要输入帐号与密码吧?当主机接受你的资料后才能进行确认!这个时候,你的资料就会经过 telnet 这个协议来传输到主机上面,这个传输时候的资料基本上是没有加密过的,也就是类似 ASCII 码的咚咚!如此一来的话,只要有心人士在某个 router 点去监听你的封包,而且将该资料封包捉下来,进行解读的工作,哈哈!那么你的帐号与密码就被拿走了!所以下一次,别人就可以利用你的帐号与密码了~很危险对不对~是很危险!除此之外, telnet 由于太老牌了,很多的骇客程序已经都写了破解的方式,所以激活之后,其实也很危险的啦!因此实在是建议不要启用 telnet 说!无论如何,有些朋友还是喜欢以 telnet 来联机,那么我们就提一些基本的注意事项好了!
o root 不能直接以 telnet 连接上主机:
基本上,既然 telnet 不是很安全,自然预设的情况之下就是无法允许 root 以 telnet 登入 Linux 主机的!但是,事实上, telnet 只是利用 PAM 模块来管制 root 的登入而已,因此,如果你确定你的环境够安全(例如你的主机并没有连上 Internet ),并且想要开放 root 以 telnet 登入 Linux 主机的话,请修改 /etc/pam.d/login 这个档案的第二行设定即可:
如此一来, root 将可以直接进入 Linux 主机了!不过,还是不建议如此做的!
o 加上防火墙 iptables:
针对 telnet 加设防火墙 iptables 是一个好主意!如果您已经参考了 VBird 之前写的『简易防火墙架设』一文,并且使用里面的 scripts 的话,那么不用担心 telnet 啦!基本上,他原本就仅对内部开放 telnet ,外部是无法连上您的 telnet 的!但是,若是您自己设定了自己的防火墙机制之后,那么想要针对 192.168.0.0/24 这个网域,及 61.xxx.xxx.xxx 这个 IP 进行 telnet 的开放呢?可以增加这几行在您的 iptables 规则之内(请注意:防火墙的规则顺序是很重要的!所以再回头看看 简易防火墙架设 一文是有必要的!)
上面的规则中,第一、二行是针对来源的 IP 来开放 port 23 亦即是 telnet 的协议啦!而最后一行则是将其它的所有来源的,想要连上 telnet 的联机封包都丢掉的意思!怎么样!很简单吧!
o 加上防火墙 /etc/hosts.allow(deny) 机制:
防火墙的机制是越多越好!永远也不嫌多的啦!这里也可以使用 TCP_Wrappers 的机制呢!刚刚是开放了 192.168.0.0/24 这个网段,但是如果你只想要其中的 192.168.0.1 ~ 192.168.0.5 进入呢?而其它的 IP 只要一经联机,就会被记录该 IP ,以提供 root 查询呢?可以这样做:

更详细的 TCP_Wrappers 用法请参考 简易防火墙架设 一文啰!
o 建议事项:
说真的, telnet 真的不是很安全的!简直应该说为『危险』等级的服务,所以尽量不要激活他啦:
1. 非必要时,不要激活 telnet ,如果真的需要激活 telnet ,那么也请在激活并且使用完毕之后,立即将他关掉!
2. 如果确定真的要激活 telnet 时,请确定好限制的联机范围,使用 iptables 来设定联机的限制区域;
3. 加上 TCP_Wrappers 的辅助,加强防火墙的功能!
4. 随时注意登录档案里面关于 login 的事项!并且不要让 root 能以 telnet 登入 Linux 主机!