下一頁 1 2 3 4
在局域網絡上可能你聽過所謂“廣播模式”的資料發送方法,此種方法不指定收信站,只要和此網絡連結的所有網絡設備皆為收信對象。但是這僅僅在局域網絡上能夠實行,因為局域網絡上的機器不多(和Inte.net比起來)。
如果象是Internet上有數千萬的主機,本就不可能實施資料廣播(至于IP Multicast算是一種限定式廣播 Restricted Broadcast,唯有被指定的機器會收到,Internet上其他電腦還是不會收到)。假設Internet上可以實施非限定廣播,那隨便一個人發出廣播訊息,全世界的電腦皆受其影響,豈不世界大亂?因此,任何局域網絡內的路由器或是類似網絡設備都不會將自己區域網絡內的廣播訊息轉送出去。萬一在WAN Port收到廣播訊息,也不會轉進自己的LAN Port中。
而既然網絡皆有發信站與收信站,用以標示信息發送者與信息接收者,除非對方使用一些特殊的封包封裝方式或是使用防火墻對外連線,那么只要有人和你的主機進行通訊(寄信或是telnet、ftp過來都算) 你就應該會知道 對方的位址,如果對方用了防火墻來和你通訊,你最少也能夠知道防火墻的位置。也正因為只要有人和你連線,你就能知道對方的位址,那么要不要知道對方位置只是要做不做的問題而已。如果對方是透過一臺UNIX主機和你連線,則你更可以透過ident查到是誰和你連線的。
在實行TCP/IP通訊協定的電腦上,通??梢杂胣etstat指令來看到目前連線的狀況。
各位朋友可以在win95、Novell以及UNIX試試看,在下面的連線狀況中,netstat指令是在win95上實行的,可以看到目前自己機器(Local Address處)的telnetport有一臺主機workstation.variox.int 由遠端(Foreign Address處)連線進來并且配到1029號tcp port.而clearcase/" target="_blank" >cc unix1主機也以ftpport連到workstation.variox.int去。所有的連線狀況看得 一清二楚。(如A、B)
A.在UNIX主機(ccunix1.variox.int)看netstat
B.另一端在Windows95(workstation.variox.int)看netstat, 雖然是不同的作業系統,但netstat是不是長得很像呢?
通信過程的紀錄設定
當然,如果你想要把網絡連線紀錄給記錄下來,你可以用cron table定時去跑:
netstat>>filename
但是UNIX系統早已考慮到這一個需求,因此在系統中有一個專職記錄系統事件的
Daemon:syslogd,應該有很多朋友都知道在UNIX系統的/var/adm下面有兩個系統紀錄檔案:
syslog與messages,一個是一般系統的紀錄,一個是核心的紀錄。但是這兩個檔案是從哪邊來的,又要如何設定呢?
系統的紀錄基本上都是由syslogd (System Kernel Log Daemon)來產生,而syslogd的控制是由/etc/syslog.conf來做的。syslog.conf以兩個欄位來決定要記錄哪些東西,以及記錄到哪邊去。下面是一個 Linux系統所附上的yslog.conf檔案,這也是一個最標準的syslog.conf寫法:
格式就是這樣子,第一欄寫「在什么情況下」以及「什么程度」。然后用TAB鍵跳下一欄繼續寫「符合條件以后要做什么」。這個syslog.conf檔案的作者很誠實,告訴你只能用TAB來作各欄位之間的分隔(雖然看來好像他也不知道為什么)。 第一欄包含了何種情況與程度,中間小數點分隔。另外,星號就代表了某一細項中的所有選項。詳細的設定方式如下:
1.在什么情況:各種不同的情況以下面的字串來決定。
auth 關于系統安全與使用者認證方面
cron 關于系統自動排程執行(CronTable)方面
daemon 關于背景執行程式方面
kern 關于系統核心方面
lpr 關于印表機方面
mail 關于電子郵件方面
news 關于新聞討論區方面
syslog 關于系統紀錄本身方面
user 關于使用者方面
uucp 關于UNIX互拷(UUCP)方面
上面是大部份的UNIX系統都會有的情況,而有些UNIX系統可能會再分出不同的項目出來。
2.什么程度才記錄:
下面是各種不同的系統狀況程度,依照輕重緩急排列。
none 不要記錄這一項
debug 程式或系統本身除錯訊息
info 一般性資訊
notice 提醒注意性
err 發生錯誤
warning 警告性
crit 較嚴重的警告
alert 再嚴重一點的警告
emerg 已經非常嚴重了
同樣地,各種UNIX系統可能會有不同的程度表示方式。有些系統是不另外區分crit與alert的差別,也有的系統會有更多種類的程度變化。在記錄時,syslogd 會自動將你所設定程度以及其上的都一并記錄下來。例如你要系統去記錄 info等級的事件,則notice、err.warning、crit、alert、emerg等在info等級以上的也會一并被記錄下來。 把上面所寫的1、2項以小數點組合起來就是完整的「要記錄哪些東西」的寫法。
例如 mail.info表示關于電子郵件傳送系統的一般性訊息。auth.emerg就是關于系統安全方面相當嚴重的訊息。 lpr.none表示不要記錄關于列表機的訊息(通常用在有多個紀錄條件時組合使用)。另外有三種特殊的符號可供應用:
1.星號(*) 星號代表某一細項中所有項目。例如mail.*表示只要有關mail的,不管什么程度都要記錄下來。而*.info會把所有程度為info的事件給記錄下來。
2.等號(=)等號表示只記錄目前這一等級,其上的等級不要記錄。例如剛剛的例子,平常寫下info等級時,也會把位于info等級上面的notice、err.warning、crit、alert、emerg等其他等級也記錄下來。但若你寫=info則就只有記錄info這一等級了。
3.驚嘆號(!) 驚嘆號表示不要記錄目前這一等級以及其上的等級。