在局域網(wǎng)絡(luò)上可能你聽過(guò)所謂“廣播模式”的資料發(fā)送方法,,此種方法不指定收信站,只要和此網(wǎng)絡(luò)連結(jié)的所有網(wǎng)絡(luò)設(shè)備皆為收信對(duì)象,。但是這僅僅在局域網(wǎng)絡(luò)上能夠?qū)嵭?因?yàn)榫钟蚓W(wǎng)絡(luò)上的機(jī)器不多(和Internet比起來(lái) ),。如果象是Internet上有數(shù)千萬(wàn)的主機(jī),本就不可能實(shí)施資料廣播(至于IP Multicast算是一種限定式廣播Restricted Broadcast,唯有被指定的機(jī)器會(huì)收到,Internet上其他電腦還是不會(huì)收到)。假設(shè)Internet上可以實(shí)施非限定廣播,,那隨便一個(gè)人發(fā)出廣播訊息,,全世界的電腦皆受其影響,豈不世界大亂?因此,任何局域網(wǎng)絡(luò)內(nèi)的路由器或是類似網(wǎng)絡(luò)設(shè)備都不會(huì)將自己區(qū)域網(wǎng)絡(luò)內(nèi)的廣播訊息轉(zhuǎn)送出去,。萬(wàn)一在WAN Port收到廣播訊息,,也不會(huì)轉(zhuǎn)進(jìn)自己的LAN Port中。
而既然網(wǎng)絡(luò)皆有發(fā)信站與收信站,,用以標(biāo)示信息發(fā)送者與信息接收者,,除非對(duì)方使用一些特殊的封包封裝方式或是使用防火墻對(duì)外連線,那么只要有人和你的主機(jī)進(jìn)行通訊(寄信或是telnet,、ftp過(guò)來(lái)都算) 你就應(yīng)該會(huì)知道對(duì)方的位址,,如果對(duì)方用了防火墻來(lái)和你通訊,你最少也能夠知道防火墻的位置,。也正因?yàn)橹灰腥撕湍氵B線,,你就能知道對(duì)方的位址,那么要不要知道對(duì)方位置只是要做不做的問(wèn)題而已,。如果對(duì)方是透過(guò)一臺(tái)UNIX主機(jī)和你連線,,則你更可以透過(guò)ident查到是誰(shuí)和你連線的。
在實(shí)行TCP/IP通訊協(xié)定的電腦上,通常可以用netstat指令來(lái)看到目前連線的狀況,。
(各位朋友可以在win95,、Novell以及UNIX試試看(注一),在下面的連線狀況中,,netstat指令是在win95上實(shí)行的,,可以看到目前自己機(jī)器(Local Address處)的telnetport有一臺(tái)主機(jī)workstation.variox.int 由遠(yuǎn)端(Foreign Address處)連線進(jìn)來(lái)并且配到1029號(hào)tcp port.而cc unix1主機(jī)也以ftpport連到workstation.variox.int去。所有的連線狀況看得一清二楚,。(如A,、B)
A.在UNIX主機(jī)(ccunix1.variox.int)看netstat
B.另一端在Windows95(workstation.variox.int)看netstat, 雖然是不同的作業(yè)系統(tǒng),但netstat是不是長(zhǎng)得很像呢?
通信過(guò)程的紀(jì)錄設(shè)定
當(dāng)然,,如果你想要把網(wǎng)絡(luò)連線紀(jì)錄給記錄下來(lái),,你可以用cron table定時(shí)去跑:
netstat>>filename
但是UNIX系統(tǒng)早已考慮到這一個(gè)需求,因此在系統(tǒng)中有一個(gè)專職記錄系統(tǒng)事件的
Daemon:syslogd,,應(yīng)該有很多朋友都知道在UNIX系統(tǒng)的/var/adm下面有兩個(gè)系統(tǒng)紀(jì)錄檔案:
syslog與messages,,一個(gè)是一般系統(tǒng)的紀(jì)錄,一個(gè)是核心的紀(jì)錄,。但是這兩個(gè)檔案是從哪邊來(lái)的,,又要如何設(shè)定呢?
系統(tǒng)的紀(jì)錄基本上都是由syslogd (System Kernel Log Daemon)來(lái)產(chǎn)生,而syslogd的控制是由/etc/syslog.conf來(lái)做的,。syslog.conf以兩個(gè)欄位來(lái)決定要記錄哪些東西,,以及記錄到哪邊去。下面是一個(gè) Linux系統(tǒng)所附上的yslog.conf檔案,,這也是一個(gè)最標(biāo)準(zhǔn)的syslog.conf寫法:
格式就是這樣子,,第一欄寫「在什么情況下」以及「什么程度」,。然后用TAB鍵跳下一欄繼續(xù)寫「符合條件以后要做什么」,。這個(gè)syslog.conf檔案的作者很誠(chéng)實(shí),告訴你只能用TAB來(lái)作各欄位之間的分隔(雖然看來(lái)好像他也不知道為什么),。第一欄包含了何種情況與程度,,中間小數(shù)點(diǎn)分隔。另外,,星號(hào)就代表了某一細(xì)項(xiàng)中的所有選項(xiàng),。詳細(xì)的設(shè)定方式如下:
1.在什么情況:各種不同的情況以下面的字串來(lái)決定。
auth 關(guān)于系統(tǒng)安全與使用者認(rèn)證方面
cron 關(guān)于系統(tǒng)自動(dòng)排程執(zhí)行(CronTable)方面
daemon 關(guān)于背景執(zhí)行程式方面
kern 關(guān)于系統(tǒng)核心方面
lpr 關(guān)于印表機(jī)方面
mail 關(guān)于電子郵件方面
news 關(guān)于新聞?dòng)懻搮^(qū)方面
syslog 關(guān)于系統(tǒng)紀(jì)錄本身方面
user 關(guān)于使用者方面
uucp 關(guān)于UNIX互拷(UUCP)方面
上面是大部份的UNIX系統(tǒng)都會(huì)有的情況,,而有些UNIX系統(tǒng)可能會(huì)再分出不同的項(xiàng)目出來(lái),。
2.什么程度才記錄:
下面是各種不同的系統(tǒng)狀況程度,依照輕重緩急排列,。
none 不要記錄這一項(xiàng)
debug 程式或系統(tǒng)本身除錯(cuò)訊息
info 一般性資訊
notice 提醒注意性
err 發(fā)生錯(cuò)誤
warning 警告性
crit 較嚴(yán)重的警告
alert 再嚴(yán)重一點(diǎn)的警告
emerg 已經(jīng)非常嚴(yán)重了
同樣地,,各種UNIX系統(tǒng)可能會(huì)有不同的程度表示方式。有些系統(tǒng)是不另外區(qū)分crit與alert的差別,也有的系統(tǒng)會(huì)有更多種類的程度變化,。在記錄時(shí),,syslogd 會(huì)自動(dòng)將你所設(shè)定程度以及其上的都一并記錄下來(lái)。例如你要系統(tǒng)去記錄 info等級(jí)的事件,,則notice,、err.warning、crit,、alert,、emerg等在info等級(jí)以上的也會(huì)一并被記錄下來(lái)。把上面所寫的1,、2項(xiàng)以小數(shù)點(diǎn)組合起來(lái)就是完整的「要記錄哪些東西」的寫法,。
例如 mail.info表示關(guān)于電子郵件傳送系統(tǒng)的一般性訊息。auth.emerg就是關(guān)于系統(tǒng)安全方面相當(dāng)嚴(yán)重的訊息,。 lpr.none表示不要記錄關(guān)于列表機(jī)的訊息(通常用在有多個(gè)紀(jì)錄條件時(shí)組合使用),。另外有三種特殊的符號(hào)可供應(yīng)用:
1.星號(hào)(*) 星號(hào)代表某一細(xì)項(xiàng)中所有項(xiàng)目。例如mail.*表示只要有關(guān)mail的,,不管什么程度都要記錄下來(lái),。而*.info會(huì)把所有程度為info的事件給記錄下來(lái)。
2.等號(hào)(=)等號(hào)表示只記錄目前這一等級(jí),,其上的等級(jí)不要記錄,。例如剛剛的例子,平常寫下info等級(jí)時(shí),,也會(huì)把位于info等級(jí)上面的notice,、err.warning、crit,、alert,、emerg等其他等級(jí)也記錄下來(lái)。但若你寫=info則就只有記錄info這一等級(jí)了,。
3.驚嘆號(hào)(!) 驚嘆號(hào)表示不要記錄目前這一等級(jí)以及其上的等級(jí),。
記錄到哪邊去?
一般的syslogd都提供下列的管道以供您記錄系統(tǒng)發(fā)生的什么事:
1.一般檔案
這是最普遍的方式。你可以指定好檔案路徑與檔案名稱,,但是必須以目錄符號(hào)「/」開始,,系統(tǒng)才會(huì)知道這是一個(gè)檔案。例如/var/adm/maillog表示要記錄到/var/adm下面一個(gè)稱為maillog的檔案,。如果之前沒(méi)有這個(gè)檔案,,系統(tǒng)會(huì)自動(dòng)產(chǎn)生一個(gè)。
2.指定的終端機(jī)或其他設(shè)備
你也可以將系統(tǒng)紀(jì)錄寫到一個(gè)終端機(jī)或是設(shè)備上,。若將系統(tǒng)紀(jì)錄寫到終端機(jī),,則目前正在使用該終端機(jī)的使用者就會(huì)直接在螢?zāi)簧峡吹较到y(tǒng)訊息(例如/dev/console或是/dev/tty1.你可以拿一個(gè)螢?zāi)粚iT來(lái)顯示系統(tǒng)訊息 ),。若將系統(tǒng)紀(jì)錄寫到印表機(jī),則你會(huì)有一長(zhǎng)條印滿系統(tǒng)紀(jì)錄的紙(例如/dev/lp0),。
3.指定的使用者
你也可以在這邊列出一串使用者名稱,,則這些使用者如果正好上線的話,就會(huì)在他的終端機(jī)上看到系統(tǒng)訊息( 例如root,,注意寫的時(shí)候在使用者名稱前面不要再加上其他的字),。
4.指定的遠(yuǎn)端主機(jī)
這種寫法不將系統(tǒng)訊息記錄在連接本地機(jī)器上,而記錄在其他主機(jī)上,。有些情況系統(tǒng)碰到的是硬碟錯(cuò)誤,,或是萬(wàn)一有人把主機(jī)推倒,硬碟摔壞了,,那你要到哪邊去拿系統(tǒng)紀(jì)錄來(lái)看呢?而網(wǎng)絡(luò)卡只要你不把它折斷,,應(yīng)該是比硬碟機(jī)耐摔得多了。因此,,如果你覺得某些情況下可能紀(jì)錄沒(méi)辦法存進(jìn)硬碟里,,你可以把系統(tǒng)紀(jì)錄丟到其他的主機(jī)上。如果你要這樣做,,你可以寫下主機(jī)名稱,,然后在主機(jī)名稱前面加上「@」符號(hào)(例如@ccunix1.variox.int,但被你指定的主機(jī)上必須要有syslogd),。
在以上各種紀(jì)錄方式中,,都沒(méi)有電子郵件這項(xiàng)。因?yàn)殡娮有偶仁占呷ナ招挪趴吹玫剑?有些情況可能是很緊急的,,沒(méi)辦法等你去拿信來(lái)看(BSD的Manual Page寫著「when you got mail,it’s already too late...」 :-P),。以上就是syslog各項(xiàng)紀(jì)錄程度以及紀(jì)錄方式的寫法,各位讀者可以依照自己的需求記錄下自己所需要的內(nèi)容,。但是這些紀(jì)錄都是一直堆上去的,,除非您將檔案自行刪除掉,否則這些檔案就會(huì)越來(lái)越大,。有的人可能會(huì)在syslogd.conf里面寫:*.*/var/log/everything要是這樣的話,,當(dāng)然所有的情況都被你記錄下來(lái)了,。但是如果真的系統(tǒng)出事了,,你可能要從好幾十MB甚至幾百M(fèi)B的文字中找出到底是哪邊出問(wèn)題,這樣可能對(duì)你一點(diǎn)幫助都沒(méi)有,。因此,,以下兩點(diǎn)可以幫助你快速找到重要的紀(jì)錄內(nèi)容:
1.定期檢查紀(jì)錄
養(yǎng)成每周(或是更短的時(shí)間,如果你有空的話)看一次紀(jì)錄檔的習(xí)慣,。如果有需要將舊的紀(jì)錄檔備份,,可以 cploglog.1,cploglog.2...或是cploglog.971013,cploglog.980101...等,,將過(guò)期的紀(jì)錄檔依照流水號(hào)或是日期存起來(lái),未來(lái)考察時(shí)也比較容易,。
2.只記錄有用的東西
千萬(wàn)不要像前面的例子一樣,記錄下*.*,。然后放在一個(gè)檔案中。這樣的結(jié)果會(huì)導(dǎo)致檔案太大,,要找資料時(shí)根本無(wú)法馬上找出來(lái),。有人在記錄網(wǎng)絡(luò)通訊時(shí),連誰(shuí)去ping他的主機(jī)都記錄,。除非是系統(tǒng)已經(jīng)遭到很大的威脅,,沒(méi)事就有人喜歡嘗試進(jìn)入你的系統(tǒng),否則這種雞毛蒜皮的小事可以不用記錄,??梢蕴嵘┰S系統(tǒng)效率以及降低硬盤使用量(當(dāng)然也節(jié)省你的時(shí)間)。
地理位置的追蹤
如何查出入侵者的地理位置?光看IP地址可能看不出來(lái),,但是你??吹脑挘瑫?huì)發(fā)現(xiàn)也會(huì)發(fā)現(xiàn)規(guī)律的,。在固接式的網(wǎng)絡(luò)環(huán)境中,,入侵者一定和網(wǎng)絡(luò)提供單位有著密切的關(guān)系。因?yàn)榧僭O(shè)是局域網(wǎng)絡(luò),,那么距離絕對(duì)不出幾公里,。就算是撥接好了,也很少人會(huì)花大筆錢去撥外縣市甚至國(guó)外的撥接伺服器,。因此,,只要查出線的單位,入侵者必然離連線單位不遠(yuǎn),。
撥接式的網(wǎng)絡(luò)就比較令人頭疼了,。有許多ISP為了吸引客戶,弄了很多什么網(wǎng)絡(luò)卡。
User這邊只要買了固定的小時(shí)數(shù),不需須另外向ISP那邊提出申請(qǐng),,就可以按照卡片上的說(shuō)明自行撥接上網(wǎng),。這樣當(dāng)然可以吸引客戶,但是ISP就根本無(wú)從得知是誰(shuí)在用他們的網(wǎng)路。也就是說(shuō),雖然以網(wǎng)絡(luò)卡提供撥接服務(wù)給撥接使用者帶來(lái)相當(dāng)大的便利,,但卻是系統(tǒng)安全的大敵,,網(wǎng)絡(luò)管理員的惡夢(mèng)。如果入侵你的人是使用網(wǎng)絡(luò)卡來(lái)上網(wǎng),,那……,,要從撥號(hào)的地點(diǎn)查嗎?入侵者可以不要用自己家里的電話上網(wǎng)。管它是偷是搶,,或是盜打王八機(jī),,反正查到的發(fā)話來(lái)源絕不是入侵者自己的電話,。