Linux Telnet服务的替换

网络 网络管理
这里我们对Linux的Telnet服务进行了介绍。那么主要是替换。这里我们使用的是SSH的替换。那么具体操作请见正文。

在一些设置中,我们常会遇到Telnet服务的问题。这里我们主要讲解一下Linux下的Telnet的替换问题。那么首先让我们了解一下系统环境。不知道您有没有发现,最近的Linux套件中,都将Telnet的功能自『预设启动』的条件,改为需要由使用者开启的状态?也就是说,RedHat在7.x版本以后,如果您需要Telnet服务,那么你就必须要自行启动他,因为他已经被排除在『预设启动』的服务项目之外了!为什么呢?这是由于Telnet服务本身在传送资料或者是在进行任何工作的时候,都是以『明码』的状态来传送指令,这样一来,当有心人士以listen的功能监听你的资料封包时,那么你所传送的资料将会被撷取而遭到窃取了!所以,基本上,那是非常不安全的一种传输资料方式!因此,在最近所释出的Linux版本中,例如RedHat7.x版本,他们的Telnet服务就已经不再是『预设启动』的功能了!

那如果我们要从远端连线到主机的话,应该怎么办?既然使用Telnet这种明码的方式行不通的话,那么我们要使用何种方式呢?呵呵,现在有更好的方式来提供喔!那就是使用openssh这个套件啦!这个SSH的服务,最重要的是可以使用『非明码』的方式来传送你所键入的资料封包,也就是说,你的资料在网路上,即使被监听而遭窃取了,由于SSH是一种加密过后的封包,故而即使被窃取了,该资料要经过解密也不是三天两头的事情,所以呢,就可以比较安全的工作啦!此外,SSH同时也提供配合PAM的安全模组,与TCPWrappers的封包限制(也就是/etc/hosts.allow与/etc/hosts.deny的机制),因此呢,安全性也就比较高一些啰!此外,最便利的一点是,你可以使用root的身份经由ssh登入你的主机喔!

好了!底下我们就来说一说,要如何将你的Telnet改成以ssh来连接呢?由于RedHat7.x以后,预设的ssh是『开启』的状态,所以你几乎不需要任何设定就可以使用ssh啰,那如果是RedHat6.x以前的系统呢?那也很简单的,你只要安装底下两个套件(假如您安装RedHat6.x是以完全安装为主)就可以啰!

主机系统的SSH建置:

◆RedHat7.x系统:

由于RedHat7.x系统本身就已经开启了sshd了,所以你可以直接以ssh来连上你的主机啰!不过,如果没有正常开启SSH的话,那样要如何启动呢?也是很简单的,你可以这样:

1.以『/usr/sbin/setup』程式进入setup的话面中;

2.选择『SystemServices』这个项目;

3.然后向下移动到『[*]sshd』,将[*]勾选(按下空白键即可);

4.然后以tab按键移动到『OK』按下enter;

这样就设定完开机启动了!然后以底下的方式来启动ssh服务:

/etc/rc.d/init.d/sshdstart

来启动sshd这个服务,要知道有没有正常的启动ssh呢?呵呵,只要输入底下的指令:

netstat-a|more

如果一切正常的话,你将会看到类似底下的这一行:

tcp00*:ssh*:*LISTEN

那就表示ssh已经成功的启动了!不过,如果万一你的Linux系统并没有安装ssh这个服务呢?呵呵!那就安装他吧!其实,ssh这支服务的主要程式称为openSSH啰!然后,如果您想要重先安装openssh来提供ssh的服务,那么RedHat的网站上随时更新的Errata您就不能不去看看!你可以按底下的连结上去RedHat下载属于您系统的***的openssh这个套件!

小红帽的Errata网页

然后按下您的RedHat版本,进入后,去寻找openssh字眼的套件,那个就是啦!然后按下连结之后,直接找到属于您的系统版本,例如我都是直接捉i386的RPM档案,然后回来以root身份执行:

rpm-ivhopenssh*

如果您只是要升级openssh的话,那就使用:

rpm-Uvhopenssh*

更有甚者,直接以up2date来升级,(不过会比较慢一些喔!)

up2date-iopenssh

升级成功之后,就可以直接的以上面的方式来启动ssh这个服务了!

VBird的经验在上一次更新openSSH套件的时候,那是因为网路上发表了旧的openssh可能有些安全方面的问题,所以VBird就去更新了,但是没想到更新完成之后SSH竟然不会动!当真是吓了一大跳!后来,找了一些档案之后,才发现,原来预设的PAM模组的属性搞错了!你可以到/etc/pam.d这个目录下去看一下,会发现sshd的属性竟然是600,与其他的档案属性都不同,后来执行了:chmod644sshd就OK啰!如果你也更新之后发现有这个问题,可以参考看看啰!

◆RedHat6.x以前版本的Linux启动ssh服务:

好了,那么要如何的在RedHat6.x以前的版本上执行ssh这个服务呢?其实也是很简单的,如前所说的,ssh其实是openssh套件的一种,而openssh有使用到openssl这个资料保密的套件,(其实还有其他的套件需要安装,不过,由于我这里预设条件是您已经用『完整安装』来安装您的Linux系统,所以其他的套件应该都已经安装完整了才对!)VBird不是很建议使用RPM来安装openssh,因为在RedHat6.x以前的版本上面安装openssh的RPM实在是太麻烦了!所以,我们就使用tarball的方式来安装吧!#p#

下载openssl与openssh:

到哪里下载呢?直接到他们的网站上去看看相关的讯息吧!到目前为止(2002/01/18),openssh***版本为3.0.2(2001/12/3释出),而openssl***则是0.9.6c(2001/12/21)这个版本:

openSSH网站

openSSL网站

或者您也可以在这里下载OpenSSH与OpenSSL这两个档案.

安装:

由于openssh会使用到openssl的资料,所以当然需要先安装openssl之后,在安装openssh啰:

[root@tsairoot]#cd/usr/local/src[root@tsaisrc]#tar-zxvf/root/openssh-3.0.2p1.tar.gz[root@tsaisrc]#tar-zxvf/root/openssl-0.9.6c.tar.gz[root@tsaisrc]#cdopenssl-0.9.6c[root@tsaiopenssl-0.9.6c]#./config--prefix=./usr/local/openssl将资料安装在/usr/local/openssl这个目录,这样安装的好处是,往后在移除该套件较为容易!直接移除该目录就好了!.[root@tsaiopenssl-0.9.6c]#make开始编译啰![root@tsaiopenssl-0.9.6c]#maketest测试一下是否正常,应该不会有问题才是![root@tsaiopenssl-0.9.6c]#makeinstall安装到/usr/local/openssl中啰!安装好openssl之后,他的函式库马上就自动启动了!然后开始安装openssh吧![root@tsaiopenssl-0.9.6c]#cd./openssh-3.0.2p1[root@tsaiopenssh-3.0.2p1]#./configure--prefix=/usr/local/openssh--with-pam--with-tcp-wrappers注意喔!上面是同一行喔!--with-pam在加入PAM模组的安全防护,而--with-tcp-wrappers则是加入TCPWrappers的安全防护啰!.[root@tsaiopenssh-3.0.2p1]#cdcontrib/redhat[root@tsairedhat]#cpsshd.pam/etc/pam.d/sshd这个步骤在将PAM这个安全模组拷贝到PAM的预设路径去,也就是/etc/pam.d这个目录啦!另外,特别注意,sshd这个档案的属性必须为644,而所有人是root才行,否则ssh不会动!![root@tsairedhat]#cd./.[root@tsaiopenssh-3.0.2p1]#make<==编译[root@tsaiopenssh-3.0.2p1]#makeinstall

上面这样就安装完毕啦!

启动:

再来就是需要启动SSH这个套件了,你应该可以到/usr/local/openssh去,进入/usr/local/openssh/sbin去执行sshd这个档案,也就是:

/usr/local/openssh/sbin/sshd

就完成启动的程序啰!如果不相信的话,那就执行netstat-a|more看看有没有ssh这个服务吧!

既然启动了ssh那么Telnet服务自然就不需要继续存在啰!没错,因为ssh可以完全取代Telnet的功能的!所以呢,请:

vi/etc/inetd.conf

找到底下这一行:

Telnetstreamtcpnowaitroot/usr/sbin/tcpdin.Telnetd

在前面加上一个注解符号『#』就可以啦!然后退出之后,执行:

/etc/rc.d/init.d/inetrestart

重新启动inet这个服务,然后以netstat-a|more看一下,Telnet服务就不见了,那我们就用ssh来取代。#p#

用户端的SSH连线软体

Linuxsysem:

好了,现在我们知道主机可以使用ssh来进行连线的服务,但是怎样在用户端(Client)执行连线的软体呢?哈哈!很简单,如果你是以Linux系统来连线的话,那么你应该可以在/usr/bin里面找到一个ssh的软体,(如果是使用tarball的话,那么ssh就会在/usr/local/openssh/bin里面啰!)你可以这样来执行连线程式:

ssh-lusernamehost.name.domain

假设我要以vbird这个帐号登入一个名为testing.adsldns.org的主机,那么就以:ssh-lvbirdtesting.adsldns.org来执行登入连线的程序!然后如果是***次登入的话,你会发现到有一个讯息,告诉你要不要接受一个认证码,直接选择yes就可以连线啰!使用ssh***的另一个好处,root也可以登入喔!

Windowssystem:

那万一你是使用Windows为Client呢?那也没问题,你可以到PuTTy的网站上下载putty这支程式:

http://www.chiark.greenend.org.uk/~sgtatham/putty/

或者是在这里下载.这支程式完全不需要安装,直接以滑鼠双击他,就会自动的执行了!

安全性的设定

好了!虽然openssh是比较安全没错,但是并不是一定安全的!所以,你仍然可以设定一些简单的安全防护来防止一些问题的发生!其实,说穿了,就是将一些你不想要让他登入的IP挡掉他就是了,然后只开放一些可以登入的IP就是了!

防火墙:

由于ssh这个服务是开启在port22,所以你可以使用ipchains或iptables来开放一些你允许的IP以port22进入!

TCPWrappers:

如果不会设定ipchains或iptables,那也没关系!刚刚我们在安装的时候不是有选择--with-tcp-wrappers吗?呵呵,这个时候就派的上用场了!你可以到/etc/hosts.allow去设定你允许的IP连线到你的主机里面,例如你允许192.168.1.1-192.168.1.255连线到你的主机,那么你可以:

sshd:192.168.1.0/24:Allow

而将其他的IP都挡掉在/etc/hosts.deny当中:

sshd:ALL:Deny

如此一来则ssh只会开放给192.168.1.1-255之间的电脑啰!以后要再开放的话,那就再将其他的IP加到/etc/hosts.allow当中去就好啰!

责任编辑:佟健 来源: 计世网
相关推荐

2009-10-14 09:38:45

linux telne服务开启linux

2010-07-16 14:31:11

Linux Telne

2010-07-15 17:56:08

2010-07-22 14:24:13

telnet服务

2010-07-15 13:27:07

Linux telne

2010-07-20 14:55:16

Telnet端口

2009-11-26 15:41:02

SUSE LINUX系

2010-07-20 15:01:31

Telnet服务

2010-07-25 14:18:51

telnet服务

2010-07-19 10:45:41

Telnet服务

2010-07-26 13:12:42

2010-07-16 13:30:26

2010-07-15 10:00:40

2009-12-01 13:35:39

Telnet服务

2010-07-22 12:54:15

开启telnet服务

2010-07-26 12:30:11

Telnet服务器

2010-07-15 10:58:12

启动telnet服务

2010-07-20 16:19:46

配置Telnet服务

2009-12-01 13:28:04

Telnet服务

2010-07-16 15:58:44

点赞
收藏

51CTO技术栈公众号