看大家对SCO的讨论大都是对于系统管理方面的,所以我就写了这篇文章,关于SCO的TCP/IP的管理,希望对大家能有所帮助,就象这个栏目的开头写的,这是成为黑客的基础,还是要往网络管理的方向讨论啊!呵呵!
1 TCP/IP的启动
TCP/IP受/etc/tcp脚本文件的控制,在你进入多用户状态时启动,在你进入单用户状态时关闭/etc/tcp文件操作内容:他是一个脚本文件,其功能如下:
通过配置支持TCP/IP所必须的流设备来启动或关闭TCP/IP,并启动或关闭与TCP/IP相关的daemon.
以ROOT登录,使用命令行:TCP START或TCP STOP手工启动或关闭TCP/IP。
该文件与etc/rc2.d和/etc/rc0.d目录下的文件都有链连关系,使得/etc/tcp在系统进入或退出多用户状态时,可以运行START或STOP选项。无论你通过Network Confugration Manager 来增加还是删除一个网络接口,都会在脚本中增加或删除 ifconfig命令,修改/etc/tcp文件,同时导致/etc/strcf文件也被修改。下面列出了启动TCP/IP时系统的工作步骤:
。 Initializes STREAMS and sockets
。 Sets the host name
。 Configures Interfaces
。 Starts network daemons
。 Undoes all of the above on shurdown
/etc/tcp的操作:TCP/IP核心支持的配置仅需一次即可完成。主要包括TCP/IP所需的STREAMS模块栈的设置。
系统核心在引导时即设置STREAMS栈。前提条件即是在BOOT:提示符下不用 ksl.disable引导串。设置STREAMS栈时,/etc/tcp脚本文件会调用slink命令,在进行任何其他设置或启动之前先建立STREAMS栈.
前一篇我们讲到了ifconfig 这个命令,它除了用于初始化网络接口外,还可以用来进行其他临时性的配置,如临时取消一些网络接口的使用。下面是ifconfig命令的语法事例。
Configuring Interfaces:
# /etc/ifconfig lo0 127.0.0.1 perf 57344 57344 1
# /etc/ifconfig -p net0 200.100.50.1 netmask 255.255.255.0
>broadcast 200.100.50.255 perf 24576 24576 1
Listing Interfaces:
# /etc/ifconfgi -a
net1: flags=4043>UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 200.100.50.2 netmask ffffff00 broadcast 200.100.50.255
perf. params: recv size: 24576; send size:24576;full-size frames: 1
lo0: flags=4049>UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
inet 127.0.0.1 netmask ff000000
perf. params: recv size: 57344; send size: 57344; full-size frames:1
ppp0: flags=4071>UP,POINTOPOINT,WANTIOCTLS,RUNNING,MULTICAST> mtu 1500
inet 200.100.50.3 --> 200.100.50.200 netmask ffffff00
perf. params: recv size: 4096;send size:8192; full-size frames: 1
注意。你可以针对每一个网络接口使用一个ifconfig命令,也可以对loopback接口使用ifconfig命令。
系统维护时的/etc/tcp操作:在系统维护状态下。/etc/tcp还可以完趁个以下功能。使你可以在具有相同网络号的其他系统中运行TCP/IP命令。
启动strerr(ADM)daemon:自动将出错信息记录到/usr/adm/syslog文件中
运行maskreply(ADMN)命令:提醒其他系统有关你的系统屏蔽信息。
启动或重起syslogd(ADMN)daemon:将信息记录到日志文件中,这一daemon具有很好的可配置性,对于用户非系系统网络鼓掌很有帮助。syslogd默认的配置文件于/etc/syslog.conf文件中。
这次我们介绍一下在支持多用户条件下启动的TCP/IP守护进程(daemon)的一个概貌。如下:
Multiuser Daemons
Always started:
. inetd
Started if configuration file is present:
. pppd
. snmpd
. named
. gated
. xntpd
. lpd
Started if configuration file for alternative is nor present:
. routed
Started if uncommented and configuration file is present:
. irdd
. timed
. rwhod
. rarpd
以上所列出的都是一些守护进程,以d为结尾,其实都是些服务进程和协议,大家都很熟悉。
inetd : internet监控daemon(inetd)监听那些与/etc/inetd.conf中所列出的网络服务进程连接请求,并按要求启动这些进程。
pppd : Point-to-Point daemon (pppd)只有在你已经配置了/etc/ppphosts文件的条件下才会启动。
snmpd : "Simple Network Management Protocol(简单网络管理协议)大家应该并不陌生,用户只有配置了/etc/snmpd.cof文件才能启动。一旦这些文件配置完成,就可以将系统配置成SNMP客户端。
named : 当你配置好/etc/named.boot文件,就可以启动name daemon了。
routed或gated :启动gated前要配置/etc/gated.conf文件。否则在默认情况下routed会自动启动,可以通过修改/etc/gateways文件来改变routed的配置。
xntpd : internet计时守护进程,该进程通过使用internet上的时间服务器同步系统核心时钟。
lpd : 远程打印机 daemon。
还有一些daemon因为他们的启动代码被注解掉了,因此要启动它们,就必须编辑/etc/tcp 文件,解注它们的启动代码:如:irdd,timed,rwhod,rarpd。
TCP/IP的启动与关闭:关闭时要确定所有与TCP/IP有关的服务均已关闭,包括NFS和NIS。
键如命令:/etc/tcp stop来关闭TCP/IP,用/etc/tcp start来启动它,如果系统配置要求到两个最高级别的安全性,就要用sd命令,sd /etc/tcp start。
今天我们来讨论一个与INTERNET联系很大的守护进程:inetd。
在INTERNET发展的初期,每种服务在系统进入多用户状态时都要启动各自的daemon。随着可用服务的不断增加,系统进程表及RAM就会被那些很少用到的进程填满,使得系统性能降低。解决这个问题的方法就在于利用INTERNET监控daemon--inetd。
inetd是一个监听守护进程,他监听与提供INTERNET服务进程(如rlogin,telnet)进行连接的要求,并扩展所需的服务进程。默认情况下inetd监听的这些daemon均列于/etc/inetd.conf文件中,并可以通过inetd的命令行进行修改,大家可以在自己的Unix机器上做做实验。学好UNIX并不是一味看书,一定要多多做实验,有了经验,自然就成为高手了,我不希望大家都是page engineer,呵呵!
编辑/etc/inetd.conf文件,可以改变inetd启动服务器守护进程的选项,然后驱使inetd以SIGHUP(signal 1)向当前的inetd进程发送信号,使inetd重读该文件。这一过程由kill命令来实现。
随着用户对系统使用的逐步深入,可能会用到那些不是/etc/inetd.conf文件的默认项的inetd启动服务,或者需要在该文件中加入一些新的选项以后启动这些服务。
让我们来看一个例子:你要用为系统增加一个由inetd启动的web服务器,就要创建如下选项:newd stream tcp nowait root /usr/local/bin/newd ; usr/local/lib/newd.conf此外,还要在/etc/services文件从第一列开始为httpd增加一个选项。假如newd用1023口,则该选项为:newd 1023 tcp。注意:不是所有的internet服务进程都需要用inetd启动。如果需要inetd启动,就必须遵从inetd协议。虽然你可以启动/etc/inetd.conf定义之外的一个daemon,但并不意味着你一定要用这种方式,比如,从inetd运行web服务器就会对系统产生较大的影响。
当你遇到C/S网络软件方面的问题时,通常很难断定这个问题是来自clIEnt,还是来自Server如果一台服务器在连网后或是从client收到信息后能够打印出诊断信息,你就可以用telnet送出服务器的信息。除了主机名或以数字表示的IP地址外,telnet还可以直接连接一个端口号。你可以用如下方法测试你的SMTP服务器:telnet localhost 25(试一下吧,呵呵!)
上一次我介绍了inetd守护进程,依我个人的感觉,这是一个很重要的进程,大家不是都想成为黑客级的网络高手吗?呵呵,很多的后门就是在依赖于它了,检查一下你/etc/inetd.conf文件,看看有没有被改过,或者有什么注释被去掉了,可能被入侵哦!呵呵。
好了,继续我们的讨论,今天讲讲FTP的配置问题。SCO Openserver Release 5配有FTP服务器daemon--ftpd,比旧版本功能更多更强,下面讲一下FTP的基本概念。目前最常用的INTERNET服务就是匿名FTP。这种服务可以让网上用户去访问匿名FTP服务器上的文件,而这些用户无须在这个FTP服务器上建立自己的帐户。有许多FTP服务器的配置是通过/etc/ftpaccess文件完成的。这个文件对管理员还是挺重要的,所以我列出了一个默认安装时的文件:
-----------------------------------------------------------------------
# @(#)$Id: ftpaccess,v 6.6 1993/09/08
# 20;44:05 stevea Exp $ - STREAMware TCP/IP
# source SCCS IDENTIFICATION
loginfails 3
class all real,guest,anonymous *
# class inside realguest,anonymous *.somedom.com
# class outside
real,guest,anonymous!*.somedom.com
# limit dead 0 Any
/archive/etc/msgs/msg.dead
# limit local 20 Any
/archive/etc/msgs/msg.toomany
# limit remote 100 SaSu|Any1800-0600
/archive/etc/msgs/msg.toomany
# limit remote 60 Any
/archive/etc/msgs/msg.toomany
readme README* login
readme README* cwd=*
banner /etc/issue
message /etc/msgs/mirrors.msg cwd=/mirrors
message /etc/msgs/welcome.msg login
message .message cwd=*
compress yes all
tar yes all
# log commands real
# log tarnsfers anonymous,real inbound,outbound
# shutdown /etc/shutmsg
--------------------------------------------------------------
按选项出现的先后顺序,我把文件个选项的意义归纳如下:
loginfails 该选项规定用户在登录到ftp服务器时,连续登录多少次失败,ftp会自动断,并让用户重新开始,该文件设的是3次。
class 规定用户的级别,如果该项定义为all,就表示任何用户(包括real,guest和anonymous)可以从任何地方登录,从安全性来考虑,应该把用户分为两个级别--domain内的用户及domain以外的用户,这样你可以限制后者对ftp服务器的访问以及这样用户的数量。
readme 该选项表示如果一个目录下的某一文件以README开始,在用户登录时或cd命令时,系统就会显示此文件上次被修改的时间,并提请用户阅读此文件。
Message 该选项与README的作用很相似。不同之处它是显示文件的内容。
Compress 该选项容许用户从你的系统上得到某一文件,并在传输之前对文件进行解压。
tar 该命令可以让用户只用一个命令即可以得到整个目录。
在ftpaccess文件中还可以规定其他选项,其中对网络完全性有用的是:passwd-check,
chmod,delete,overwrite,log commands,log transfers。在FTP的应用中,可以通过修改ftpuser文件来增加一些FTP的限制条件。这样可以控制访问FTP服务器的用户名。通常系统管理员会利用这一功能防止用户以root或其他一些敏感的帐户名访问你的资源。
前面我们讲了FTP的配置,它在网络管理里面也是比较重要的一个服务,下面我们讲一 下网络管理的另一个比较重要的概念,就是信任关系。还是拿NT来做对比,在NT里面,建立 了信任关系后,比如A信任B,在B里的帐户就可以在A登录了,这对于administrator和user 来说都是一个非常方便的事情。同样,在UNIX系统中也有这样的管理方式,了解这个管理方 式对你学习UNIX的网络很重要哦,欺骗(spoofing)技术就是利用这种管理方式的。
UNIX中的受托访问可以让用户更方便,更安全的利用企业网络,增强网络的安全性。 如果没有为rlogin命令配置受托访问,它会提示用户输入密码。这个密码会通过网络,甚至INTERNET来传输。含有这些密码的数据包就会很容易被识别和窃取。如果设置了受托访 问,就无需为rlogin设置密码。在没有受托访问的情况下,你甚至都无法使用rcmd和rcp命令。系统管理员有责任管理受托访问及用户等同。下面列出了为r命令和TCP实用程序:
rlogin Allows users to log into a remote host. If trusted access is set up.
no passWord is needed,otherwise a password is needed.
rcp Allows users to copy files from one host to another. Requires trusted
access.
telnet Similar to rlogin, only a user name and password are almost always
required, and trusted access is not consulted
ftp Similar to rcp, only a user name and password is always required and
trusted access is not consulted
受托主机访问的意义在于可以规定一台主机完全“信任”另一台主机上的用户。这些用户在那台主机上均有可识别的login名称,无需密码就可使用rlogin,rcp及rcmd命令。配置受托主机访问要以root登录到系统中。主要步骤是编辑/etc/hosts.equiv文件,必要时还要创建此文件。/etc/hosts.equiv文件中的每一选项规定的是那些有权访问该主机的远程系统。下面是一个该文件的例子:
--------------------------------------------------------------------------------
barbaDos
tortola bob
guam
--------------------------------------------------------------------------------
假设该文件是一台名为corfu的机器上的设置,它们的意义分别如下:
barbados
barbados机器上与corfu中有相同的用户名的用户有权访问corfu。也就是说,在barbados上的用户jane可以rlogin,rcp,rcmd到corfu的用户jane上,不需要给出 jane在corfu上的密码。 tortola bob 容许tortola上的用户bob可以用除root外的任何用户名访问corfu。不过,这是很危险的。 root帐户是永远都不能与/etc/hosts.equiv文件的选项等同的。如果你是在INTERNET上, 为了安全起见,应该用/etc/hosts.equiv文件授权的主机名。配置受托用户访问,就是指定
另一系统上的“可信任”用户,他们可以不用密码即可通过rlogin,rcmd及rcp命令访问本系统。与受托主机访问不同的饿是,受托用户访问可为用户在不同的机器上创建不同的login名称。系统管理员可以为用户设置这项功能,也可以交给用户自己去做。配置受托用户访问的主要步骤是在用户目录中创建或修改.rhosts文件。该文件必须是root或主目录所有者的,而且只有所有者才可以写此文件,否则任何更改都是无效的。.rhosts文件格式与/etc/hosts.equiv文件相同,但意义却不同,我们仍然可以以上面的例子来举例,假设那 些选项是corfu上用户jane的主目录下,则它的意义如下:
barbados
barbados上的用户jane是corfu上用户jane的授权用户,即前者可以jane这个名字rlogin,rcp,rcmd到corfu,而无需corfu上jane的密码。
tortola bob tortola上的用户bob是corfu上的用户jane的授权用户。即bob可以jane的名字rlogin,rcp,rcmd到corfu,只要使用社党的命令参数,不需要给出jane的密码。
无论系统执行rlogin命令,rcmd命令,还是rcp命令,系统会有一定的工作流程来确定是否已配置了受托访问。本地主机的受托访问通常经过以下步骤:1,用户发出前面提及的r类型命令。2,本地主机解析远程主机名,并获得它的IP地址。3,如果不能获得远程主机的IP地址,系统将显示错误信息:host_name:Host name lookup failure 。4,如果地道了远程主机的IP地址,r命令会通过TCP/IP与远程主机相连。
远程主机的受托访问通常经过以下步骤:
1,在密码数据库上寻找用户帐户名称。
2,如果在密码库没有找到帐户名,系统就不会执行rcmd和rcp命令。执行rlogin命令时则提示用户输入密码,然后显示该命令执行失败。
3,系统检查用户帐户是否有一个加密的密码。
4,如果该帐户没有密码,系统即执行r命令。但这样捉是很危险的。通常系统用户都应有自己的密码,尤其是与INTERNET相连的情况下更应注意这一点。
5,系统检查用户帐户名,判断该用户是否为root,如果不是,系统会检查/etc/host.equiv中是否有用户本地主机的名字。如果该文件中列出了本地主机名,系统开始执行r命令。
6,如果第五步中检查到用户为root,或者虽然不是root,而/etc/host.equiv中也没有列出主机名,系统会检查远程用户主目录的.rhosts文件,看看其中是否包括了本地主机名或者本地用户名,具体使用哪种名称,取决于r命令的被调用方式。
7,如果.rhosts文件包括了所需的选项,系统就执行r命令。
经过以前六篇文章,应该大概把TCP/IP管理介绍了很多,下面我就收个尾,把UNIX里的一些TCP/IP工具介绍一下,希望我的文章对大家有所帮助,后面我会接着写SCO的用户指南,让一些刚刚入门的朋友对SCO OPENSERVER有个大概的了解。
过多的网络负载也会导致网络性能的下降,大家要记住的几个数字:DETHERNET的理论最大传输速率为10Mbps。快速ETHERNET的理论最大传输速率为100Mbps。Token Ring的理论最大传输速率为4Mbps。Token Ring 2的理论最大传输速率为16Mbps.
有几种工具可以用于对网络性能的诊断。
ping-f:用法如下:
1,只可以在用户以root登录的情况下使用。
2,向目标系统大量传输ICMP包。
3,用来决定网卡或CPU是否可以被控制加载。
4,与-c选项公用,可以增加ICMP包的大小,以增加远程主机上的负载。通常测定一台远程主机的负载能力可按以下几步进行:
1,运行netstat命令,可以选用适当的参数,让系统示某一性能的运行情况。
2,记录你需要的数据。
3,执行ping -f -s packet-size remote-host命令,其中:packet-size是送出的ICMP包的大小。remote-host是接收数据包的主机。
4,再次运行netstat命令,并运用与第一步中相同的饿参数。
5,比较一下第二步与第四步中的系统数据。
netstat -i可以显示每个网络接口的相关数据,可以帮你诊断网络负载方面的问题。运行这一命令,你可以看到系统显示两列数据,一列名为Collis,一列名为Opkts。用COLLIS的数据除以OPKTS的数据,再乘以100,所得数字即这台机器所发出的数据包中引起数据错误的那部分的比例。如果此数字超过10%,表明系统负载过大。该命令显示的这些数据只有在重新引导系统时才可以重新设置。
netstat -s显示每个使用中的协议的数据包的状况。用以下方法可检查出错误数据:1,用ping -f向主机大量传诵数据包。2,用netstat -s检查系统统计数据。3,在ip,icmp,tcp,udp下检查出带有坏校验的值。4,用以上各项值分别除以所收到的数据包的总数,即为错误数据包的百分比。
一般情况下,错误数据包的比例应小于0.01%。
标签: