13简易 Telnet 与 SSH 主机设定.docx
《13简易 Telnet 与 SSH 主机设定.docx》由会员分享,可在线阅读,更多相关《13简易 Telnet 与 SSH 主机设定.docx(34页珍藏版)》请在冰豆网上搜索。
13简易Telnet与SSH主机设定
简易Telnet与SSH主机设定
1.学习本章的必备技巧
2.远程联机程序的功能
3.Telnet服务器:
telnet服务器:
激活与关闭服务
telnet客户端:
好用的联机软件
telnet安全性:
iptables,TCP_Wrappers,纯建议
4.SSH服务器:
联机加密技术简介
激活ssh服务
ssh客户端联机:
sshsftpputty
详细设定sshd服务器:
/etc/ssh/sshd_config
制作不用密码可立即登入的ssh用户:
ssh-keygen
安全设定:
sshd_config,iptables,TCP_Wrappers
学习本章的必备技巧:
欢迎再次来到鸟哥的『碎碎念时间』!
在这个章节当中,我们会介绍基本的telnet与ssh这两个远程联机的服务器软件!
联机就联机嘛!
为什么要有两个远程联机呢?
这是因为telnet是较旧,而且是相当不安全的联机服务器,所以我们才要介绍ssh这一个较新而且较安全的服务器呀!
那么在安装的过程当中,我们会使用到一些设定文件的修改,以及指令的下达,还有需要认识一下什么是Superdaemon,所以,你最起码需要知道底下这些知识:
·认识vi
·认识BASHShell
·认识服务
·常用的网络指令
·认识网络安全
·简易防火墙架设
无论如何,将前面关于Linux基础与网络基础的内容看完,会是很好的一件事情!
远程联机程序的功能:
好了,在这个章节当中,首先,我们要先来了解一下,什么是『远程联机服务器』呀!
?
这个东西的功能为何呀!
?
我想,您应该已经听过,一个良好的网络环境当中,一部开放到Internet上面的服务器,基本上,他可以不需要显示卡、屏幕、键盘、鼠标等等的配备!
只要有基本的主机板、CPU、RAM、硬盘再加上一块好一点的网络卡,并且连上Internet!
哈哈!
那么你要操控这部主机的时候,只要透过网络联机进来,然后进行任何修改即可!
嘿!
所以啰,这个时候主机自然不需要接口设备啦!
以VBird为例,目前VBird管理大约七、八部左右的Unix-Like主机,这些主机都不在同一个地方,分布在南台湾各处!
那么当有新的套件的漏洞被发布,或者是需要进行一些额外的设定的时候,VBird人一定要到现场吗?
当然不需要,VBird只要透过网络联机到该主机上面,就可以进行任何工作了!
真的就好象在屏幕前面工作一般的轻松愉快!
^_^!
这就是远程联机服务器啦!
当然还不只这样的功能!
举个例子来说:
当您的工作需要使用到Linux的强大的编译功能时,那么您一定需要Linux对吧!
而且最好是运算速度快一点的主机,这个时候你可以将你研究室最快的那一部主机开放出来,设定一下远程联机服务器,让你的学生啦,或者是研究室的同仁啦,可以透过这部机器帮他们进行研究的工作,这个时候,你的主机就可以让多人进行分享Linux运算的功能啦!
在早期的网络世界里,由于只有Unix机器,而且个人计算机还不流行的时候,想要使用大型主机来进行数值程序的运算时(在我们工程界,比较常使用Fortran这一类的程序语言,至于C语言则较少碰~),就需要向学校单位申请工作站的帐号,并且以远程联机程序连进主机,以使用Unix的资源来进行我们的数值模式运算!
所以啦,那个远程联机服务器的设定,基本上,对于系统管理员是很重要的!
尤其对于大型的工作站类型的Unix-Like主机,由于很多人都需要使用到他的CPU运算核心功能,或者是他的编译程序(compiler)来进行运算,这时的远程联机就更形重要啦!
·服务器类型(Server)的联机程序:
在一般开放网际网络服务的服务器中,由于开放的服务可能会有较为重要的信息,而远程联机程序连进主机之后,可以进行的工作又太多了(几乎就像在主机前面工作一般!
),因此网际网络的远程联机程序通常仅针对少部分系统维护者开放而已!
除非必要,否则Server类型的主机还真的不建议开放联机的服务ㄋㄟ~
·工作站类型(Workstation)的联机程序:
至于工作站的情况就跟服务器不太一样了!
工作站常常仅针对内部的几个使用者开放而已,通常是不希望连上Internet的啦!
而且所谓的工作站自然就是用来做工的!
例如VBird的其中一部Linux就是专门用来进行大型的数值模式计算仿真之用!
这个时候的远程联机服务器可能就得要对多人激活了!
因为工作站的强大运算功能可以让很多人一同使用他的计算能力!
而且也可以免除每部计算机都得要安装compiler的窘境!
要知道,某些工程用的compiler是粉贵的~
·远程联机服务器的主要类型:
目前最常见的远程联机服务器主要有以明码传送资料的telnet服务器,及以加密过的封包进行传送来联机的ssh服务器!
虽然telnet可以支持的client端的软件比较多,不过由于他是使用明码来传送资料,很容易遭到有心人士的撷取!
所以近来我们都呼吁大家多使用ssh这一种联机方式,而舍弃掉telnet这个比较不安全的咚咚啰!
底下我们就分别来谈一谈这两种联机服务器吧!
返回页首
------------------------------------------------------------------------------------------------
Telnet服务器:
知道telnet是什么吗?
咦!
不就是连接BBS的工具吗?
!
嘿嘿!
没错!
他确实也是BBS软件类的挂上的一个服务器啦!
不过这里我们暂不玩弄BBS!
因为VBird目前也还没有打算玩他!
呵呵!
telnet可以说是历史相当悠久的远程联机服务器哩!
而且支持他的软件也相当的多!
例如知名的netterm就直接支持他啦!
联机之后的界面也漂亮,在client端的中文传输与输入也没有问题!
相当的不错用!
不过,他最麻烦的地方就是.....比较不安全而已啦~
底下我们谈一谈怎么激活与使用telnet服务器吧!
·telnet服务器:
激活与关闭服务
还记得『认识服务』那个章节吧!
?
还记得superdaemon呦!
?
没错啦,我们的telnet就是挂在底下的一支服务而已!
那个咚咚就是有名的xinetd啰!
(注:
在某些旧版的套件上面也有使用inetd的,激活的方式有点不太一样,不过差异不大啦!
只要懂得基本的常识,那么就不会有问题啰!
所以要多瞧一瞧Linux基础篇啦!
)激活的方式就是
(1)将xinetd里面关于telnet的项目开启,然后
(2)重新激活一次xinetd就成功啦!
那么如何开启telnet的项目呢?
很简单,有两个方式,
1.使用ntsysv:
还记得ntsysv这个好用的东西吗?
对了,在RedHat底下有这么一个好用的设定工具,你可以使用ntsysv出现的窗口之中,将telnet勾选起来,然后按下OK离开即可啰!
2.使用vi修改/etc/xinetd.d/telnet这个档案:
那么如果不是RedHat的Linux系统呢?
基本上,ntsysv也只是修改/etc/xinetd.d这个目录下的资料而已,所以我们当然可以手动自己修改他啦!
看到了没!
?
只要将disable(取消的意思)变成no,也就是不取消,亦即是开启啦!
设定完开启之后,自然就是要激活啦,刚刚提到telnet是挂在xinetd底下的,所以自然只要重新激活xinetd就能够将xinetd里头的设定重新读进来,所以刚刚设定激活的telnet自然也就可以被激活啦!
而激活的方式也有两种方式,其中service仅支持在RedHat底下,所以通常我还是以/etc/rc.d/init.d底下的scripts为激活的主要方法啦!
那么要看有没有激活服务呢?
怎么看?
其实也很简单啦,还记得我们在限制Linuxport的联机那一章吗?
使用netstat就可以啦!
看到了吗?
没错,那个telnet就是激活的项目啦!
(考一个问题,那个port对应的服务名称在哪一个档案里面查询到的呢?
在每一个Linux系统都有的档案呦!
忘记了呀!
?
看看这里,然后用vi去看看那一个档案的内容吧!
^_^)那么要如何关闭呢?
呵呵!
那就真的是太简单啦!
就将刚刚的步骤再做一次,而将设定值转变一下即可!
步骤如下啦!
这样就关掉啦!
很简单吧!
·telnet客户端:
好用的联机软件
刚刚上面提到的都是在服务器端的设定而已!
那么在客户端有什么好用的软件可以连上Server的呢?
最常见到的应该就是netterm这个鼎鼎大名的联机软件了吧!
我想,只要玩过BBS的大概都晓得这个软件才对!
所以这里就不提了!
另外,目前几乎所有的操作系统都提供了telnet这个程序,这个程序可以直接轻易的就连上telnetserver呢!
例如您要在Linux上面连上自己的telnet服务器,可以这样做:
这样就联机进来啦!
很简单吧!
那么在Windows的环境底下呢?
同样的,也是可以使用telnet的程序联机到Linux的telnetserver里面来!
没有问题的啦!
可以依序这样做:
1.按下Windows内的『开始』
2.选择『执行』
3.在出现的窗口中输入『telnetyour.IP.or.hostname』
这样就可以进入Linux的环境中了!
很方便吧!
·telnet安全性:
iptables,TCP_Wrappers,纯建议,
telnet这个服务器方便归方便,但总是一个不太好的联机解决方案,因为毕竟他是一个以『明码』传输的协议,什么是『明码』呢?
简单的说,当你使用telnet的时候,你总是会在屏幕上面输入资料吧!
?
最简单的例子,就是你总是要登入telnet的主机画面吧!
那么你总是需要输入帐号与密码吧?
当主机接受你的资料后才能进行确认!
这个时候,你的资料就会经过telnet这个协议来传输到主机上面,这个传输时候的资料基本上是没有加密过的,也就是类似ASCII码的咚咚!
如此一来的话,只要有心人士在某个router点去监听你的封包,而且将该资料封包捉下来,进行解读的工作,哈哈!
那么你的帐号与密码就被拿走了!
所以下一次,别人就可以利用你的帐号与密码了~很危险对不对~是很危险!
除此之外,telnet由于太老牌了,很多的骇客程序已经都写了破解的方式,所以激活之后,其实也很危险的啦!
因此实在是建议不要启用telnet说!
无论如何,有些朋友还是喜欢以telnet来联机,那么我们就提一些基本的注意事项好了!
oroot不能直接以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来开放port23亦即是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主机!
返回页首
------------------------------------------------------------------------------------------------
SSH服务器:
既然telnet不是很安全,那么我又需要以远程联机服务来操控我的Linux主机,那么应该怎么办呀!
?
最好的方法当然就是以较为安全的联机机制的方案来解决联机的问题啰!
那么该如何解决这样的问题呢?
这也不难啦,使用SSH即可。
那么SSH是什么呢?
他有什么特异功能?
简单的来说,SSH是SecureSHellprotocol的简写,他可以经由将联机的封包加密的技术,来进行资料的传递,因此,资料当然就比较安全啰!
这个SSH可以用来取代Internet上面较不安全的finger,RShell(rcp,rlogin,rsh等指令),talk及telnet等联机模式。
底下我们将先简介一下SSH的联机模式,来说明为什么SSH会比较安全呢!
特别注意:
这个SSH协议,在预设的状态中,本身就提供两个服务器功能:
1.一个就是类似telnet的远程联机使用shell的服务器,亦即是俗称的ssh;
2.另一个就是类似FTP服务的sftp-server!
提供更安全的FTP服务。
·联机加密技术简介:
基本上,加密的技术通常是藉由所谓的『公钥与私钥』亦即『PublicandPrivatekeys』来进行加密与解密的动作!
如下图所示,当SSH激活服务之后,会产生一支公钥,而身为个人计算机的你,在进行与server的联机时,可以藉由自己产生的私钥来提供server的联机之用,也可以直接藉由server提供的私钥来进行联机!
这个与进行联机时选择的加密版本有关,这个等一下我们再提!
在上面的图标中,我们可以知道,当数据由Server端传送到Client端时,这些资料会先经过『公钥,PublicKey』来进行加密的行为,所以,在传输的过程中,这些资料本身是经过加密的,因此,即使这些资料在途中被截取时,要破解这些加密的资料,还是得要花费上好长一段时间的。
那么等这些经过公钥加密的资料传送到Client端之后,就可以藉由所谓的『私钥,PrivateKey』来进行解密的动作。
需要注意的是,这些公钥与私钥在每一部计算机上面都不一样,所以,你与Server的联机对其他人来说,都是很难去破解的呢!
那么这些公钥与私钥是如何产生的呢?
底下我们来谈一谈目前SSH的两种版本的联机模式啰!
oSSHprotocolversion1:
每一部主机都可以使用RSA加密方式来产生一个1024-bit的RSAKey,这个RSA的加密方式,主要就是用来产生公钥与私钥的演算方法!
这个version1的整个联机的加密步骤可以简单的这么看:
1.当每次SSHdaemon(sshd)激活时,就会产生一支768-bit的公钥(或称为serverkey)存放在Server中;
2.若有client端的需求传送来时,那么Server就会将这一支公钥传给client,而Client藉由比对本身的RSA加密方式来确认这一支公钥;
3.在Client接受这个768-bit的serverkey之后,Client自己也会随机产生一支256-bit的私钥(hostkey),并且以加密的方式将serverkey与hostkey整合成一支完整的Key,并且将这支Key也传送给server;
4.之后,Server与Client在这次的联机当中,就以这一支1024-bit的Key来进行资料的传递!
当然啦,因为Client端每次的256-bit的Key是随机取的,所以你这次的联机与下次的联机的Key就会不一样啦!
oSSHprotocolversion2:
与version1不同的是,在version2当中将不再产生serverkey了,所以,当Client端联机到Server端时,两者将藉由Diffie-Hellmankey的演算方式来产生一个分享的Key,之后两者将藉由类似Blowfish的演算方式进行同步解密的动作!
每一个sshd都提供这两个版本的联机,而决定这两种模式联机的,就必需要在client端联机时选择联机的模式才能确认。
目前预设情况下,会自动使用version2的联机模式喔!
而由于我们的联机资料中,经过了这个Public与PrivateKey的加密、解密动作,所以在中间的传送过程中,当然就比较安全的多啰!
返回页首
------------------------------------------------------------------------------------------------
激活ssh服务:
事实上,在我们使用的Linux系统当中,预设就已经含有SSH的所有需要的套件了!
这包含了可以产生密码等协议的OpenSSL套件与OpenSSH套件,所以呢,要激活SSH真的是太简单了!
就直接给他激活就是了!
此外,在目前的LinuxDistributions当中,都是预设激活SSH的,所以一点都不麻烦,因为不用去设定,他就已经激活了!
哇!
真是爽快~无论如何,我们还是得说一说这个激活的方式吧!
直接激活就是以SSHdaemon,简称为sshd来激活的,所以,手动可以这样激活:
上面两种方式都可以直接手动激活sshd这个服务!
然后使用netstat-tl看看能不能看到ssh的服务在监听呢!
?
如果出现了上面那一行黄色字体,就表示您的SSH已经正确的激活啰!
这真是太简单了吧!
没错,但是他就是这么简单~
那么我要如何在开机的时候就激活这个sshd呢?
如果是RedHat的系统,可以使用ntsysv这支程序,而Mandrake可以使用chkconfig这个程序!
至于OpenLinux则可以到/etc/sysconfig/daemons去看看喔!
这个方式仅适合在已经有OpenSSH的LinuxDistributions当中,如果以RedHat6.x为例,他并没有预设使用SSH怎么办?
别担心,可以参考一下底下这个鸟哥之前写过的网页,有详细的说明使用tarball安装的步骤呢!
使用Tarbal安装SSH以及升级SSH可能会遇到的问题说明
需要注意的是,SSH不但提供了shell给我们使用,亦即是sshprotocol的主要目的,同时亦提供了一个较为安全的FTPserver,亦即是ssh-ftpserver给我们当成是FTP来使用!
所以,这个sshd可以同时提供shell与ftp喔!
而且都是架构在port22上面的呢!
所以,底下我们就来提一提,那么怎么样由Client端连接上Server端呢?
同时,如何以FTP的服务来连接上Server并且使用FTP的功能呢?
返回页首
------------------------------------------------------------------------------------------------
·ssh客户端联机:
ssh,putty
由于Linux与Windows这两个客户端的Client联机软件并不一样,所以我们分为两个部分来说明:
oLinux客户端:
在Linux客户端方面,我们主要以ssh进行一般联机,而已sftp进行FTP的使用联机!
分别简介如下:
这里请特别留意的是,如果直接以sshhostname来连接进入hostname这个主机时,则进入hostname这个主机的『帐号名称』将会是目前你所在的这个环境当中的使用者帐号!
以上面为例,因为我是以root的身份在执行,所以如果我执行了『sshhost.domain.name』时,那么对方host.domain.name这部主机,就会以root的身份来让我进行密码确认的登入动作!
因此,为了避免这样的麻烦,通常我都是以简单的e-mail的写法来登入远方的主机,例如『sshuser@hostname』即表示,我是以user这个帐号去登入hostname这部主机的意思。
当然,也可以使用-lusername这样