这是偶99年翻译的SUN的网络管理员(SA-387)的东东(5)

发表于:2007-06-08来源:作者:点击数: 标签:
好累啊,歇会,先泡着,然后再接着灌! 第八章客户端/服务器模式 目标 通过本章的学习,你将会能够: l定义项目:客户端,服务器,和服务 l定义一个端口和端口号 l描述客户-服务器的交互 l描述网络和RPC服务 l识别在客户端/服务器模式下使用的文件 l增加和去

好累啊,歇会,先泡着,然后再接着灌!


第八章   客户端/服务器模式
目标
通过本章的学习,你将会能够:
l 定义项目:客户端,服务器,和服务
l 定义一个端口和端口号
l 描述客户-服务器的交互
l 描述网络和RPC服务
l 识别在客户端/服务器模式下使用的文件
l 增加和去除网络服务
l 增加和去除RPC服务
l 使用命令:netstat 和 rpcinfo 来监视服务
介绍
客户/服务器模式是网络管理的基本组件。它有一个主要的冲突在用户和他们共享资源的能力上,及管理者在网络上提供的服务上。服务就是一个应用通过网络进行的存取。
客户/服务器模式描述了客户(一个需求服务的系统),和服务器(一个提供服务的系统)之间的联系。这个关系作用于TCP/IP模式的应用层。
端口号
每个网络服务都提供或需要使用一个端口或地址空间,它是为服务所保留的。通常一个用户通过一个任意的端口退出一个工作站,通过一个众所周知的端口与服务器通信。
一个端口是内核为这个服务所使用的地址,非常类似于一个提供登录服务的物理端口,不同的是,这个端口是抽象的,而不是物理上的。
在建立客户/服务器的交互过程中,必须达成一个协议,即:哪个端口号对应于哪个服务或应用。端口号必须唯一在网络通信所提供的服务中。
文件:/etc/inet/services 被用来标识或注册保留的端口号,服务和网络服务所使用的协议。这些服务已经被NIC注册过。
举个文件:/etc/inet/services 的例子:
# cat /etc/inet/services
ftp-data  20/tcp
ftp  21/tcp
telnet 23/tcp
smtp 25/tcp mail
sunrpc 111/udp rpcbind
sunrpc 111/tcp rpcbind
在文件:/etc/inet/services中定义的端口号常指明一个众所周知的端口,因为这是一个特定服务所指定的端口定位。当在网络上增加一个新的网络协议时,这个文件必须被客户端和服务器更新来重新标识服务的定位。
注意:前1024个端口是保留端口。
服务器进程是如何开始的
每个服务需要一个服务器进程来响应客户端请求,如客户端运行 mail或 ftp命令。
许多服务器进程通过通常的启动过程以级别2开始的。附加的服务可以以级别3开始。举例如:in.routed,  in.rdisc,或 sendmail这些进程运行在主机上。
然而,其它的服务并不在启动顺序里启动。这些服务如:rlogin, ftp,在有需求的时候才启动。服务器不启动这些服务,直到有客户请求这些服务的时候。当服务完成时,服务器的进程也就终止了。
网络服务进程是如何开始的
——进程inetd
inetd 是一个特殊的网络进程,用来在每台主机上监听众多的服务器进程,并不在系统启动时运行。它用来监听公用端口上的请求。当适当的端口地址被请求时,inet进程才启动它的服务器进程。Inet 在启动脚本 /etc/init.d/inetsvc中以2级启动。
——文件:/etc/inet/inetd.conf
inetd进程通知服务进行监听并且运行通信进程都通过文件:/etc/inet/inetd.conf
# cat /etc/inet/inetd.conf
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind
talk dgram udp wait root /usr/sbin/in.talkd in.talkd
如果文件 /etc/inet/inetd.conf发生改变,你必须给进程 inetd发送一个挂起信号。这可以使 inetd进程重新读取这个配置文件。
例如:
# ps –ef | grep inetd
# kill –HUP  <PID#>
注意:/etc/inet/inetd.conf 是一个象征性的链接从文件 /etc/inetd.conf。当使用主机管理程序在管理工具中来定义客户端时,这个链接被中止,而且 inetd不能正确的读取文件/etc/inet/inetd.conf。为了改正这个问题,重新创建链接或拷贝/etc/inetd.conf到/etc/inet/inet.conf
远端程序调用(Remote Produre Call)
正如我们所描述的客户/服务器模式,它有一个问题,也就是,每个新服务必须有一个在网络上被所有主机所认证的唯一端口号。对于一个大的网络公司,如Sun公司来说,它能把被所有主机认证所产生的端口号向全世界通告吗?
Sun的回答是:发展一个扩展的客户/服务器模式,即:RPC(Remote Produre Call),当启动一个RPC服务时,客户端连接到一个特定的服务进程,rpcbind(在SunOS系统中的端口映射)是一个已经注册过的网络服务。Rpcbind 为所有基于RPC的应用监听端口111,并为用户请求绑定端口号。
RPC可以不必使所有服务都在文件 /etc/inet/services中注册。客户不需要知道目标服务的端口号。客户端从进程rpcbind(端口111)来请求端口号。当进程用 rpcbind来注册时,服务器返回实际分配的端口号。
RPC应用程序在启动时就被写入,它们用rpcbind来进行自身的注册,并被分配一个任意的端口(下一个有效端口)。这样,当客户端到达端口111,rpcbind返回为服务分配的实际端口号,如果它已经注册的话。假如这个服务没有注册,rpcbind则返回一个错误的信息:“RCP TIME OUT, PROGRAM NOT FOUND.”
Rpcbind 在启动脚本:/etc/init.d/rpc 中以2运行级别启动。
一个RPC进程是如何开始的
以基于RPC的启动进程与不基于RPC的启动进程的启动方式相同,一些在系统启动时就开始启动运行了,如:rpc.nisd, mountd,和 nfsd。另一些只有在有需求时才由 inetd来启动,如: rwalld,sprayd, 和sadmind。
——文件 /etc/inet/inetd.conf
# cat /etc/inet/inetd.conf
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
100232/10 tli rpc/udp wait root /usr/sbin/sadmind sadmind
你可能会注意到,所涉及的一些服务在文件:/etc/inet/inetd.conf中是以端口号的顺序排列的,而不是经名字来排的。这些在Solaris 2.x环境下的新服务有可能不被SunOS 4.x的NIS主所识别在 /etc/rpc中。为避免“RPC TIME OUT”错误,他们由程序号指定,如:在Solaris TM系统中,被涉及的网络管理类的代理服务由程序号来识别是:100232。
——文件 /etc/rpc
RPC程序通过一个唯一的程序号来识别,如:sadmind, 是一个被Solaris TM管理应用所使用的守护进程。它的程序号是100232它的版本号是10。客户端请求 rwall,启动的服务器程序名为 walld,程序名和号的映射由文件 /etc/rpc来完成。
# cat /etc/rpc
rpcbind 100000 portmap sunrpc rpcbind
nisd 100300 rpc.nisd
walld 100008 rwall shutdown
mountd 100005 mount shutdown
sadmind 100232
更新文件 /etc/rpc用他们的名称来反应在文件 /etc/inet/inetd.conf是非常重要的。这个协定用来识别所有的程序号和名称。
——状态命令
为集中管理 /etc/inet/services和 /etc/rpc文件,他们的端口映射成NIS映射和NIS+表。但是文件:/etc/inet/inetd.conf不是一个名字服务文件。
——命令:/usr/bin/netstat –a
命令 /usr/bin/netstat –s可以用来识别在你的主机上哪个端口是保留的和标识已经建立的连接。
# /usr/bin/netstat –a
UDP
Local Address State
*.route Idle
*.* Unbound
*.sunrpc Idle
*.nfsd Idle

TCP Remote
Local Address Address Swind Send-Q Rwind Recv-Q State
*.* *.* 0 0 8576 0 Idle
*.ftp *.* 0 0 8576 0 LISTEN
*.telnet *.* 0 0 8576 0 LISTEN
*.login *.* 0 0 8576 0 LISTEN
*.sunrpc *.* 0 0 8576 0 LISTEN
chesapeake.login yogi.1023 16384 0 16384 0 ESTABLISHED
——命令:/usr/bin/rpcinfo
命令 rpcinfo用来提供有关RPC服务的信息。
例如:
l 显示程序号,版本,协议,端口,服务和RPC服务的自身。
# rpcinfo
l 标识所有在主机上注册的RPC服务
# rpcinfo –p [hostname]
program ver proto port service
100000 4 tcp 111 portmapper
100007 1 udp 32771 ypbind
100008 1 udp 32803 walld
100012 1 udp 32805 sprayd
l 广播一个程序来标识一个已经注册的程序的服务器。输出定义了服务器的IP地址端口地址和主机名。
# rpcinfo –b mountd 1
192.9.200.10.199 servera
192.9.200.13.187 serverb
l 标识一个特殊的服务是否在服务器上正在运行
# rpcinfo –u servera mountd
program 100005 version 1 ready and waiting
program 100005 version 2 ready and waiting
l 不注册一个RPC程序在你的主机上
# rpcinfo –d mountd 1
总结
在本章的学习中,你已经掌握了:
l 定义客户/服务器的重要项目
l 描述服务器进程是如何启动的
l 标识用来在客户/服务器端使用的文件
l 增加和去除网络和RPC服务
l 使用命令:netstat 和 rpcinfo 来监视主机上的服务

 solstice 回复于:2003-06-25 15:44:29
第九章  网络安全
目标
通过本章的学习,你将会学到:
l 回顾一下基本的网络安全
l 通过文件:/etc/inet/inetd.conf来限制网络的服务
l 限制执行存取网络信息和连通性的命令
l 建立一个防火墙
介绍
网络安全对于我们的工作环境是一个很重要的因素。它允许资源和信息的共享,但是无限制的存取就有可能产生安全问题。
本章定义了安全存取网络和单个主机的过程。也回顾了基本的安全功能。
本章也同样描述了建立一个防火墙的过程,用来允许对不被信任的网络进行连接。
基本的安全功能
网络安全在网络的管理中是一个很关键的组件。一个安全的计算机网络必须维护一个连续的在其上存储信息的不安全性。这里的不安全性是指,系统必须不能中断信息或允许任何未授权用户的对它的存取。来回顾一下诸多基本的Solaris系统的网络安全功能。
——用户帐户管理
网络安全的基本方面是用户帐户的管理。确保用户已经设立密码并能够周期性的更改是很关键的。
用户密码可以通过文件:/etc/default/login的入口:PASSREQ=yes来强制实施。
密码的老化周期可以通过文件:/etc/default/passwd中的入口:MAXWEEKS=number-of-week和MINWEEKS=number-of-weeks来强制实施。命令:passwd 同样也能用来执行这个功能。
——限制超级用户的存取
文件:/etc/default/login 也能够限制用户 root 的登录存取。文件的入口:CONSOLE=
/dev/console 限制了只能进行登录的控制设备而不能是网络或其它串口。
——登录后使用的 su 命令
文件:/etc/default/su 用来登录后试图使用 su 命令。显著的文件入口:SULOG=/var/adm
/sulog来记录所有的su 试图的使用在文件 /var/adm/sulog。
——安全的NFS
一个应用建立在安全的RPC顶端就是安全的NFS。一个不安全的NFS服务器通过验证机器的权限来通过一个文件请求而不是用户的权限。任何在NFS客户端具有 root 特权的用户都可以通过使用 su 命令来切换成任意用户,并成为文件的拥有者。安全的NFS存取一个请求需要通过DES验证,这对于欺骗是非常困难的。
在安全的NFS系统中,如果一个用户没有通过服务器的权限验证,那么用户将被赋予ID号为-1,存取权限为nobody,未授权用户只能存取已经被允许的文件。更多的关于nobody的安全替换可以由命令:share中的选项 –anon来赋予,如果用户的ID被设置为-1,那么,存取大多被拒绝。
# share –F nfs –o rw=bear:skunk:giraffe,secure,anon=-1 /export/home
限制存取共享的NFS文件系统也是网络安全的本质。文件:/etc/dfs/dfstab 也可被更改用于存取单个主机和只读权限。
——文件:/etc/hosts.equiv和 /.rhosts
文件:/etc/hosts.equiv 和 /.rhosts 可以通过信任远程主机和用户来创建一个不安全的文件系统。这些文件必须慎重使用,要避免使用特定的符号:+
——命令:aset
你可以使用命令:aset 来测试一个系统的各种安全级别。 .aset 涉及了很多的 shell文件在目录:/usr/aset 中,由超级用户来协调并入的用户功能。
限制命令存取
限制使用各种不同的信息命令及连通性的命令可以使一个系统更安全。
使用命令:chmod 来限制执行属性。
# chmod 750 command-file
——信息命令
你可以考虑限制存取以下等信息命令:
l finger
l who
l rup
l rusers
l ifconfig
l mount
l netstat
l ping
l rpcinfo
l dfshares
l dfmounts
——连通性命令
你可以考虑使用以下的连通性命令:
l ftp 
l telnet
l rlogin
l rcp
l rsh
l mconnetct
——限制网络服务
在客户/服务器方式下,我们讨论了进程 inetd和文件:/etc/inet/inetd.conf 的重要性,及他们如何对主机提供服务。修改这些文件,你可以取消你不需要的服务。不要删除任何入口因为,你也许后来会要重新增加它们。
你可以考虑对以下的服务进行存取控制:
l ftp 
l telnet
l shell
l login
l exec
l finger
l rusersd
l sprayd

注意:当你取消某些服务时,有许多网络服务是相互依赖的。

建立一个防火墙
防火墙是一个设备或主机,用来在你的内部网和外部网或Internet网络间进行设置。防火墙不进行广播或通告路由器,并且禁止IP转发在系统内核。你必须首先远程连接到防火墙主机然后才能连接到其它网络。
——建立一个防火墙的步骤
1. 确保所有的网卡都已经安装好并能正常工作。
2. 创建文件:/etc/notrouter 。当机器重新启动时,启动脚本搜索这个 /etc/notrouter文件。如果这个文件存在,那么,启动脚本将不执行IP转发也不运行路由支持进程。
# touch /etc/notrouter
3. 重新启动系统。
主机将不再转发包并且不再通告它自身是个路由器了。
总结
在本章,我们讨论了网络安全的重要性,并定义了安全存取一个主机的步骤。你已经学会了:
l 实现基本的网络安全功能
l 限制存取信息和连通性的命令
l 限制主机提供的服务
l 建立一个防火墙

 solstice 回复于:2003-06-25 15:54:17
没人陪我玩了,
也不up一下,
不好玩,
那偶也不贴了,明天再说了!

 liuzz01 回复于:2003-06-25 16:04:37
up up up up up up up up up up up up up up!!!!!!!!!!!!!!!!!!!!
老大,俺对你的敬仰如滔滔江水绵绵不绝... ...(太过肉麻,删除65536字).
严重期待中... ...

 solstice 回复于:2003-06-25 16:16:29
呵呵,够麻!

服了你了,刚刚工作去了,
现在接着贴吧,
能贴多少贴多少了。。。

 小石 回复于:2003-06-25 17:26:58
up

 ywdeng 回复于:2003-06-25 17:33:49
很好啊,不过是否可以多讲些FREEBSD这方面的情况啊?

 xingkong555 回复于:2003-06-26 09:43:09
[quote:clearcase/" target="_blank" >cc64d012cf="solstice"]没人陪我玩了,
也不up一下,
不好玩,
那偶也不贴了,明天再说了![/quote:cc64d012cf]  

up up up up ...........................

 moocher 回复于:2003-06-26 22:05:39
我用尽全力顶,希望进去多一些!

 tangrui 回复于:2003-06-26 22:09:07
顶吧。不然以后没得看了。

 lianying 回复于:2003-06-27 08:35:47
南非蜘蛛的网站上有你要的FREEBSD

     http://www.douzhe.com/project/fbsd/contents.html

 funyong 回复于:2003-06-27 09:38:02
gooooooooooood

原文转自:http://www.ltesting.net