SCO TCP/IP 網絡管理

SCO TCP/IP 網絡管理

作者:大鷹 更新時間:2005-04-28


看大家對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%。

發佈了10 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章