這是偶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中注冊??蛻舨恍枰滥繕朔盏亩丝谔???蛻舳藦倪M程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??蛻舳苏埱?nbsp;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.kjueaiud.com