12远程联机服务器 Telnet ssh vnc xdmcp rsh.docx
《12远程联机服务器 Telnet ssh vnc xdmcp rsh.docx》由会员分享,可在线阅读,更多相关《12远程联机服务器 Telnet ssh vnc xdmcp rsh.docx(73页珍藏版)》请在冰豆网上搜索。
12远程联机服务器Telnetsshvncxdmcprsh
远程联机服务器Telnet/SSH/VNC/XDMCP/RSH1
本章的行前准备工作1
远程联机服务器1
什么是远程联机服务器1
服务器类型(Server)的联机程序2
工作站类型(Workstation)的联机程序3
有哪些可供登入的类型?
3
Telnet服务器4
安装、启动与关闭服务4
安装4
启动与关闭:
5
好用的联机软件7
iptables,TCP_Wrappers,纯建议8
以比较限制的设定档来规范联机的IP:
8
root不能直接以telnet连接上主机:
9
加上防火墙iptables10
加上防火墙/etc/hosts.allow(deny)机制10
建议事项:
11
SSH服务器11
联机加密技术简介:
12
SSHprotocolversion112
SSHprotocolversion213
启动SSH服务13
ssh客户端联机:
14
LinuxClient:
ssh14
关于ServerKeys的纪录数据:
~/.ssh/known_hosts16
LinuxClient:
sftp17
LinuxClient:
scp18
WindowsClient:
putty19
WindowsClient:
psftp24
WindowsClient:
Fliezilla24
详细设定sshd服务器25
制作不用密码可立即登入的ssh用户29
1.在Client端建立Public与PrivateKey30
2.在Client端放置私钥:
30
3.在Server端放置可以登入的公钥:
31
安全设定:
32
/etc/ssh/sshd_config32
/etc/hosts.allow及/etc/hosts.deny33
iptables33
XDMCP服务器34
XWindow的Server/Client架构34
设定XDMCP36
客户端登入37
客户端是Linux主机:
37
客户端是Windows主机:
38
关闭XDMCP43
VNC服务器43
RSH服务器49
RSHServer51
RSHServer的启动51
设定可以使用RSH的来源主机与账号:
/etc/hosts,/etc/hosts.equiv,~user/.rhosts52
让root也可以使用RSH:
53
RSHClient54
测试RSH:
54
利用rcp复制:
54
以rsync进行同步镜相备份55
重点回顾:
57
课后练习58
远程联机服务器Telnet/SSH/VNC/XDMCP/RSH
一部连上Internet上面的您的个人主机,最重要的是什么呢?
大概就是如何让您自己可以联机进入自己的主机,并且进行所谓的『远程操控』了吧!
也就是说,您可以在任何具有连上Internet的计算机中,以远程联机软件连上Internet,并藉由您主机上面的远程联机服务器软件提供的功能,直接登入您的主机来进行操控的工作!
此时,您将发现Linux有趣又好玩的地方啰!
在早期的UnixLike机器当中,几乎都提供Telnet这个远程联机服务器软件,不过,Telnet本身是以『明码』来传送您操作的数据,安全上面是值得来思考要不要开放吶!
这个时候就有需要了解一下传送过程中以加密动作来传送数据封包的SSH这个远程联机服务器软件啦!
另外,除了纯文字接口登入主机来进行操控之外,在现在的Linuxdistributions当中,还可以利用X相关的服务来帮助我们以图形接口登入喔!
很棒吧!
^_^
本章的行前准备工作
在这个章节当中我们会使用客户端的联机软件联机到主机端来操作主机,所以你必须要了解到你的主机防火墙必须要开放,并且要取消SELinux才行!
另外,登入时会分析到的PAM模块也需要进行了解吶!
本章后半部会介绍XWindow的远程登入,所以你也必须对于XServer/client的架构有点了解才行。
*了解网络基础,尤其网络是双向的;
*认识网络安全当中的取消SELinux,以及防火墙的基本概念;
*了解使用者与账号的相关概念;
*认识XWindowSystem;
*由于很多远程联机服务器软件系统预设并不安装,因此你必须要了解RPM及yum的使用。
远程联机服务器
远程联机服务器对我们来说,可是一项很有用的工具啊!
他可以让我们更方便的管理主机。
不过,方便是方便,安全性其实不很好的~所以,才要特别强调一下这个玩意儿啊!
什么是远程联机服务器
首先,我们要先来了解一下,什么是『远程联机服务器』?
这个东西的功能为何?
我想,您应该已经听过,一个良好的网络环境当中,一部开放到Internet上面的服务器,基本上,他可以不需要屏幕、键盘、鼠标等等的配备,只要有基本的主机板、CPU、RAM、硬盘再加上一块好一点的网络卡,并且连上Internet!
哈哈!
那么您要操控这部主机的时候,只要透过网络联机进来,然后进行任何修改即可!
嘿!
所以啰,这个时候主机自然不需要接口设备啦!
以鸟哥个人为例,目前鸟哥管理大约七、八部左右的Unix-Like主机,这些主机都不在同一个地方,分布在南台湾各处!
那么当有新的套件的漏洞被发布,或者是需要进行一些额外的设定的时候,是否鸟哥本人一定要到现场吗?
当然不需要,只要透过网络联机到该主机上面,就可以进行任何工作了!
真的就好像在主机前面工作一般的轻松愉快!
^_^!
这就是远程联机服务器啦!
远程联机服务器的功能当然还不只如此!
举个例子来说:
当您的工作需要使用到Linux的强大的编译功能时,那么您一定需要Linux对吧!
而且最好是运算速度快一点的主机,这个时候您可以将您研究室最快的那一部主机开放出来,设定一下远程联机服务器,让您的学生啦,或者是研究室的同仁啦,可以透过这部机器帮他们进行研究的工作,这个时候,您的主机就可以让多人进行分享Linux运算的功能啦!
在早期的网络世界里,由于只有Unix机器,而且个人计算机还不流行的时候,想要使用大型主机来进行数值程序的运算时(在我们工程界,比较常使用Fortran这一类的程序语言,至于C语言则较少碰~),就需要向学校单位申请Unix工作站的账号,并且以远程联机程序连进主机,以使用Unix的资源来进行我们的数值模式运算!
所以啦,那个远程联机服务器的设定,对于系统管理员是很重要的!
尤其对于大型工作站类型的Unix-Like主机,由于很多人都需要使用到他的运算功能,或者是他的编译程序(compiler)来进行运算,这时的远程联机就更形重要啦!
那么是否每一部连上Internet上面的主机都应该要开放远程联机的功能呢?
其实并不尽然,还是需要针对您的主机来进行规划的,我们底下分服务器与工作站来说明:
服务器类型(Server)的联机程序
在一般开放因特网服务的服务器中,由于开放的服务可能会有较为重要的信息,而远程联机程序连进主机之后,可以进行的工作又太多了(几乎就像在主机前面工作一般!
),因此因特网的远程联机程序通常仅针对少部分系统维护者开放而已!
除非必要,否则Server类型的主机还真的不建议开放联机的服务呢!
以鸟哥为例,我的主机提供了我们研究室使用Mail与Internet上面的WWW服务,如果还主动提供远程联机的话,那么万一不小心被入侵,那可就伤脑筋了!
因此,鸟哥仅开放『很小部分的网域』让系统管理员连进来,其它来源的IP一律抵挡!
不许使用远程联机的功能呢!
工作站类型(Workstation)的联机程序
至于工作站的情况就跟服务器不太一样了!
工作站常常仅针对内部的几个使用者开放而已,通常是不希望连上Internet的啦!
而且所谓的工作站自然就是用来做工的!
例如鸟哥的其中一部Linux就是专门用来进行大型的数值模式计算仿真之用!
这个时候的远程联机服务器可能就得要对多人启动了!
因为工作站的强大运算功能可以让很多人一同使用他的计算能力!
而且也可以免除每部计算机都得要安装compiler的窘境!
要知道,某些工程用的compiler是粉贵的~
有哪些可供登入的类型?
那么目前远程联机服务器的主要类型有哪些?
如果以显示的类型来分类,基本上有文字接口与图形接口两种。
在文字类型登入方面的服务器,主要有以『明码』传送数据的telnet服务器,及以加密技术进行封包加密来传送的SSH服务器!
虽然telnet可以支持的client端软件比较多,不过由于他是使用明码来传送数据,您的数据很容易遭到有心人士的撷取!
所以近来我们都呼吁大家多使用SSH这一种联机方式,而舍弃掉telnet这个比较不安全的咚咚啰!
至于图形接口的服务器,比较简单的有Xdmcp,架设Xdmcp很简单,不过client端的软件比较少。
另外一款目前很常见的服务器,就是VNC(VirtualNetworkComputing),透过VNCserver/client软件来进行连接。
图形接口最大的优点是『图形』啊!
不过,因为是透过图形来传送,传输的数据量相当的大,所以速度与安全性都有待考虑。
因此,我们仅建议您将图形接口的远程登入服务器开放在内部网域(LAN)就好了!
那么什么是『明码』与『加密』的数据封包传送模式呢?
为什么telnet使用明码就比较不安全?
所谓的明码就是:
『当我们的数据封包在网络上流窜时,该数据封包的内容为数据的原始格式』,还记得我们在网络常用指令章节当中介绍的tcpdump吧?
我们在telnet下达的指令与密码等等,都会以类似ASCII的格式传送到主机端,而主机端就藉由这些数据来下达指令。
如果这些数据封包在经过某些broadcast或者是Router时,被有心人士捉去,那么他将会完整的取得您的数据喔!
所以啦,万一您的数据封包里面含有信用卡数据、密码、身份确认等重要信息时,是否很危险吶?
!
因此,目前我们通常都希望使用可以将这些在网络上面跑的数据加密的技术,以增加数据在Internet上面传送的安全性啊!
Telnet服务器
知道telnet是什么吗?
咦!
不就是连接BBS的工具吗?
没错!
他确实也是BBS软件类的一个服务器啦!
不过这里我们暂不玩弄BBS!
telnet可以说是历史相当悠久的远程联机服务器哩!
而且支持他的软件也相当的多!
例如知名的netterm就直接支持他啦!
联机之后的界面也漂亮,在client端的中文传输与输入也没有问题!
相当的不错用!
不过,他最麻烦的地方就是.....比较不安全而已啦~
底下我们谈一谈怎么启动与使用telnet服务器吧!
安装、启动与关闭服务
安装
近年来由于telnet是以明码在传输的问题,所以在新的Linux版本上面,已经都将telnet这个服务器排除在『先发名单』之外啦,也就是说,很多Linuxdistributions预设是不安装telnet的,不过,在每个主要的Linuxdistributions还是有提供telnet套件在光盘当中啦!
所以您要拿出原版光盘,并且安装好他就可以用啦!
如何确认是否已经安装了telnet呢?
最简单的方法就是使用最广泛被使用的RPM啦!
[root@linux~]#rpm-qa|greptelnet
telnet-0.17-31.EL4.3
telnet-server-0.17-31.EL4.3
#上面是CentOS4.x预设的套件版本。
如果是其它的distribution,
#档名可能会不太一样~可利用yum或apt等方式来安装喔!
需要特别留意的是,如果要提供telnet联机服务,通常需要安装两个RPM喔:
1.一个是telnet,这个套件提供的是telnet客户端的联机程序;
2.另一个是telnet-server套件,这个才是真正的Telnetserver软件喔!
如果找不到telnet-server的话,请拿出原版光盘来安装,或者直接使用yum吧!
否则就无法进行下一步的设定啦!
^_^
启动与关闭:
还记得『鸟哥的Linux私房菜--基础学习篇』里面的『认识服务(daemon)』那个章节吧?
要记得superdaemon呦!
因为我们的telnet就是挂在superdaemon底下的一支服务而已!
那个咚咚就是有名的xinetd啰!
Tips:
在某些旧版的套件上面也有使用inetd的,启动的方式有点不太一样,不过差异不大啦!
只要懂得基本的常识,那么就不会有问题啰!
所以鸟哥才会要大家先读完Linux基础篇啦!
启动的方式就是:
1.将xinetd里面关于telnet的项目开启,然后
2.重新启动一次xinetd就成功啦!
那么如何开启telnet的项目呢?
很简单,有两个方式:
1.使用ntsysv或chkconfig:
还记得RedHat系列(含CentOS)的套件里面的ntsysv这个好用的东西吗?
对了,在CentOS底下有这么一个好用的设定工具,您可以使用ntsysv出现的窗口之中,将telnet勾选起来,然后按下OK离开即可啰!
2.使用vi修改/etc/xinetd.d/telnet这个档案:
那么如果不是RedHat系列的Linux系统呢?
基本上,ntsysv也只是修改/etc/xinetd.d这个目录下的数据而已,所以我们当然可以手动自己修改他啦!
[root@linux~]#vi/etc/xinetd.d/telnet
servicetelnet
{
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
#disable=yes
disable=no
#基本上,改上面这两行就够了!
将disable设定成no表示要启动!
}
设定完开启之后,自然就是要启动啦,刚刚提到telnet是挂在xinetd底下的,所以自然只要重新启动xinetd就能够将/etc/xinetd.d/里头的设定重新读进来,所以刚刚设定启动的telnet自然也就可以被启动啦!
而启动的方式也有两种方式,其中service这个指令仅支持在CentOS与Mandriva底下,所以通常鸟哥还是以/etc/init.d底下的scripts为启动的主要方法啦!
仅适合RedHat系列/Mandriva系列的主机启动方式
[root@linux~]#servicexinetdrestart
Stoppingxinetd:
[OK]
Startingxinetd:
[OK]
适合各版本的主机启动方式
[root@linux~]#/etc/init.d/xinetdrestart
Stoppingxinetd:
[OK]
Startingxinetd:
[OK]
#某些版本并没有restart的选项,这个时候就需要:
stop再start啰!
那么要看有没有启动服务呢?
怎么看?
其实也很简单啦,还记得我们在前几章提到的『限制Linuxport的联机』那一章吗?
使用netstat就可以啦!
[root@linux~]#netstat-tlup
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname
tcp00*:
telnet*:
*LISTEN23817/xinetd
看到了吗?
没错,那个telnet就是启动的项目啦!
那么要如何关闭呢?
呵呵!
那就真的是太简单啦!
就将刚刚的步骤再做一次,而将设定值转变一下即可!
步骤如下啦!
Tips:
这里考一个问题,那个port对应的服务名称在哪一个档案里面查询到的呢?
在每一个Linux系统都有的档案呦!
忘记了呀!
?
再回到前面看看限制Linuxport的联机,然后用vi去看看那一个档案的内容吧!
^_^
Step1:
修改设定档
[root@linux~]#vi/etc/xinetd.d/telnet
servicetelnet
{
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
disable=yes<==就是这里啦!
将他改成yes就是关闭!
}
Step2:
重新启动xinetd这个superdaemon
[root@linux~]#/etc/init.d/xinetdrestart
好用的联机软件
刚刚上面提到的都是在服务器端的设定而已!
那么在客户端有什么好用的软件可以连上Server的呢?
最常见到的应该就是netterm这个鼎鼎大名的联机软件了吧!
我想,只要玩过BBS的大概都晓得这个软件才对!
所以这里就不提了!
另外,目前几乎所有的操作系统都提供了telnet这个程序,这个程序可以直接轻易的就连上telnetserver呢!
例如您要在Linux上面连上自己的telnet服务器,可以这样做:
[root@linux~]#telnetlocalhost
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris'^]'.
CentOSrelease4.4(Final)
Kernel2.6.9-42.0.2.ELonani686
login:
dmtsai<==就是这里啦!
请输入『一般』账号,不能用root喔!
Password:
<==这里输入该账号的密码!
请注意,输入时,屏幕不会有任何信息!
Lastlogin:
FriJul109:
31:
21from127.0.0.1<==上次登入的信息为何?
[dmtsai@linux~]$<==这里就是已经登入的地方!
亦即远程主机了!
[dmtsai@linux~]$exit<==这样就能够离开telnet与远程主机咯!
这样就联机进来啦!
很简单吧!
那么在Windows的环境底下呢?
同样的,也是可以使用telnet的程序联机到Linux的telnetserver里面来!
没有问题的啦!
可以依序这样做:
1.按下Windows内的『开始』
2.选择『执行』
3.在出现的窗口中输入『telnetyour.IP.or.hostname』
这样就可以进入Linux的环境中了!
很方便吧!
当然啦!
您也可以使用类似netterm这个很棒的联机软件来联机的,这里我们就不示范啦!
Tips:
在Linuxtty1~tty6的终端机预设模式下,我们是没有办法看到中文的!
除非安装某些特殊的中文接口才行!
比如JMCCE之类的咚咚!
因为不是很重要,所以鸟哥这里就不加介绍了。
^_^
另外,需要先留意的是,为了系统安全的考虑,预设的telnet是『不允许』使用root这个账号登入的~这个很重要喔!
您不要使用root尝试登入telnet啊!
^_^
iptables,TCP_Wrappers,纯建议
telnet这个服务器方便归方便,但总是一个不太好的联机解决方案,因为毕竟他是一个以『明码』传输的协议,所以很不适合在Internet上面使用啦!
你总不希望你的账号密码在Internet上面被窃取吧?
不过,如果telnet是启动在内部环境当中那就还好啦!
尤其有些朋友因为旧软件的关系,还是需要使用到telnet来联机。
那么我们就提一些基本的注意事项好了!
以比较限制的设定档来规范联机的IP:
事实上,xinetd就已经提供些许的保护措施了,您可以针对您主机的多重接口(有对内以及对外喔!
)来提供不同保护等级的措施!
底下列出一个范例,不过,更多的信息请再回到『鸟哥的Linux私房菜--基础学习篇』当中去查阅一下『认识服务』那一章里面的详细设定说明,或者直接manxinetd.conf吧!
[root@linux~]#vi/etc/xinetd.d/telnet
#ThisfilehadbeenmodifiedbyVBird2002/11/04
#首先为内部网络的参数设定
servicetelnet
{
disable=no
bind=192.168.1.2
only_from=192.168.1.0/24
#上面这两行说明仅提供内部网域!
instance=UNLIMITED
nice=0
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/telnetd
server_args=-anone
log_on_failure+=USERID
}
#再来则是针对外部网域的设定
servicetelnet
{
disable=no
bind=140.116.142.196
only_from=140.116.0.0/16
no_access=140.116.32.{10,26}
#上面这三行设定外部较为严格的限制
instance=10<==最多允许同时10个联机
umask=022
nice=10
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/telnetd
server_args=-anone
log_on_failure+=USERID
}
root不能直接以telnet连接上主机:
既然telnet不是很安全,自然预设的情况之下就是无法允许root以telnet登入Linux主机的!
但