網(wǎng)絡(luò )監測 如何查看系統記錄以及追蹤入侵者
在局域網(wǎng)絡(luò )上可能你聽(tīng)過(guò)所謂“廣播模式”的資料發(fā)送方法,此種方法不指定收信站,只要和此網(wǎng)絡(luò )連結的所有網(wǎng)絡(luò )設備皆為收信對象。但是這僅僅在局域網(wǎng)絡(luò )上能夠實(shí)行,因為局域網(wǎng)絡(luò )上的機器不多(和Internet比起來(lái) )。如果象是Internet上有數千萬(wàn)的主機,本就不可能實(shí)施資料廣播(至于IP Multicast算是一種限定式廣播Restricted Broadcast,唯有被指定的機器會(huì )收到,Internet上其他電腦還是不會(huì )收到)。假設Internet上可以實(shí)施非限定廣播,那隨便一個(gè)人發(fā)出廣播 訊息,全世界的電腦皆受其影響,豈不世界大亂?因此,任何局域網(wǎng)絡(luò )內的路由器或是類(lèi)似網(wǎng)絡(luò )設備都不會(huì )將自己區域網(wǎng)絡(luò )內的廣播訊息轉送出去。萬(wàn)一在WAN Port收到廣播訊息,也不會(huì )轉進(jìn)自己的LAN Port中。
而既然網(wǎng)絡(luò )皆有發(fā)信站與收信站,用以標示信息發(fā)送者與信息接收者,除非對方使用一些特殊的封包封裝方式或是使用防火墻對外連線(xiàn),那么只要有人和你的主機進(jìn)行通訊(寄信或是telnet、ftp過(guò)來(lái)都算) 你就應該會(huì )知道 對方的位址,如果對方用了防火墻來(lái)和你通訊,你最少也能夠知道防火墻的位置。也正因為只要有人和你連線(xiàn),你就能知道對方的位址,那么要不要知道對方位置只是要做不做的問(wèn)題而已。如果對方是透過(guò)一臺UNIX主機和你連線(xiàn),則你更可以透過(guò)ident查到是誰(shuí)和你連線(xiàn)的。
在實(shí)行TCP/IP通訊協(xié)定的電腦上,通??梢杂胣etstat指令來(lái)看到目前連線(xiàn)的狀況。
(各位朋友可以在win95、Novell以及UNIX試試看(注一),在下面的連線(xiàn)狀況中,netstat指令是在win95上實(shí)行的,可以看到目前自己機器(Local Address處)的telnetport有一臺主機workstation.variox.int 由遠端(Foreign Address處)連線(xiàn)進(jìn)來(lái)并且配到1029號tcp port.而cc unix1主機也以ftpport連到workstation.variox.int去。所有的連線(xiàn)狀況看得一清二楚。(如A、B)
A.在UNIX主機(ccunix1.variox.int)看netstat
B.另一端在Windows95(workstation.variox.int)看netstat, 雖然是不同的作業(yè)系統,但netstat是不是長(cháng)得很像呢?
通信過(guò)程的紀錄設定
當然,如果你想要把網(wǎng)絡(luò )連線(xiàn)紀錄給記錄下來(lái),你可以用cron table定時(shí)去跑:
netstat>>filename
但是UNIX系統早已考慮到這一個(gè)需求,因此在系統中有一個(gè)專(zhuān)職記錄系統事件的
Daemon:syslogd,應該有很多朋友都知道在UNIX系統的/var/adm下面有兩個(gè)系統紀錄檔案:
syslog與messages,一個(gè)是一般系統的紀錄,一個(gè)是核心的紀錄。但是這兩個(gè)檔案是從哪邊來(lái)的,又要如何設定呢?
系統的紀錄基本上都是由syslogd (System Kernel Log Daemon)來(lái)產(chǎn)生,而syslogd的控制是由/etc/syslog.conf來(lái)做的。syslog.conf以?xún)蓚€(gè)欄位來(lái)決定要記錄哪些東西,以及記錄到哪邊去。下面是一個(gè) Linux系統所附上的yslog.conf檔案,這也是一個(gè)最標準的syslog.conf寫(xiě)法:
格式就是這樣子,第一欄寫(xiě)「在什么情況下」以及「什么程度」。然后用TAB鍵跳下一欄繼續寫(xiě)「符合條件以后要做什么」。這個(gè)syslog.conf檔案的作者很誠實(shí),告訴你只能用TAB來(lái)作各欄位之間的分隔(雖然看來(lái)好像他也不知道為什么)。 第一欄包含了何種情況與程度,中間小數點(diǎn)分隔。另外,星號就代表了某一細項中的所有選項。詳細的設定方式如下:
1.在什么情況:各種不同的情況以下面的字串來(lái)決定。
auth 關(guān)于系統安全與使用者認證方面
cron 關(guān)于系統自動(dòng)排程執行(CronTable)方面
daemon 關(guān)于背景執行程式方面
kern 關(guān)于系統核心方面
lpr 關(guān)于印表機方面
mail 關(guān)于電子郵件方面
news 關(guān)于新聞?dòng)懻搮^方面
syslog 關(guān)于系統紀錄本身方面
user 關(guān)于使用者方面
uucp 關(guān)于UNIX互拷(UUCP)方面
上面是大部份的UNIX系統都會(huì )有的情況,而有些UNIX系統可能會(huì )再分出不同的項目出來(lái)。
2.什么程度才記錄:
下面是各種不同的系統狀況程度,依照輕重緩急排列。
none 不要記錄這一項
debug 程式或系統本身除錯訊息
info 一般性資訊
notice 提醒注意性
err 發(fā)生錯誤
warning 警告性
crit 較嚴重的警告
alert 再?lài)乐匾稽c(diǎn)的警告
emerg 已經(jīng)非常嚴重了
同樣地,各種UNIX系統可能會(huì )有不同的程度表示方式。有些系統是不另外區分crit與alert的差別,也有的系統會(huì )有更多種類(lèi)的程度變化。在記錄時(shí),syslogd 會(huì )自動(dòng)將你所設定程度以及其上的都一并記錄下來(lái)。例如你要系統去記錄 info等級的事件,則notice、err.warning、crit、alert、emerg等在info等級以上的也會(huì )一并被記錄下來(lái)。 把上面所寫(xiě)的1、2項以小數點(diǎn)組合起來(lái)就是完整的「要記錄哪些東西」的寫(xiě)法。
例如 mail.info表示關(guān)于電子郵件傳送系統的一般性訊息。auth.emerg就是關(guān)于系統安全方面相當嚴重的訊息。 lpr.none表示不要記錄關(guān)于列表機的訊息(通常用在有多個(gè)紀錄條件時(shí)組合使用)。另外有三種特殊的符號可供應用:
1.星號(*) 星號代表某一細項中所有項目。例如mail.*表示只要有關(guān)mail的,不管什么程度都要記錄下來(lái)。而*.info會(huì )把所有程度為info的事件給記錄下來(lái)。
2.等號(=)等號表示只記錄目前這一等級,其上的等級不要記錄。例如剛剛的例子,平常寫(xiě)下info等級時(shí),也會(huì )把位于info等級上面的notice、err.warning、crit、alert、emerg等其他等級也記錄下來(lái)。但若你寫(xiě)=info則就只有記錄info這一等級了。
3.驚嘆號(!) 驚嘆號表示不要記錄目前這一等級以及其上的等級。
記錄到哪邊去?
一般的syslogd都提供下列的管道以供您記錄系統發(fā)生的什么事:
1.一般檔案
這是最普遍的方式。你可以指定好檔案路徑與檔案名稱(chēng),但是必須以目錄符號「/」開(kāi)始,系統才會(huì )知道這是 一個(gè)檔案。例如/var/adm/maillog表示要記錄到/var/adm下面一個(gè)稱(chēng)為maillog的檔案。如果之前沒(méi)有這個(gè)檔案 ,系統會(huì )自動(dòng)產(chǎn)生一個(gè)。
2.指定的終端機或其他設備
你也可以將系統紀錄寫(xiě)到一個(gè)終端機或是設備上。若將系統紀錄寫(xiě)到終端機,則目前正在使用該終端機的使 用者就會(huì )直接在螢幕上看到系統訊息(例如/dev/console或是/dev/tty1.你可以拿一個(gè)螢幕專(zhuān)門(mén)來(lái)顯示系統訊息 )。若將系統紀錄寫(xiě)到印表機,則你會(huì )有一長(cháng)條印滿(mǎn)系統紀錄的紙(例如/dev/lp0)。
3.指定的使用者
你也可以在這邊列出一串使用者名稱(chēng),則這些使用者如果正好上線(xiàn)的話(huà),就會(huì )在他的終端機上看到系統訊息( 例如root,注意寫(xiě)的時(shí)候在使用者名稱(chēng)前面不要再加上其他的字)。
4.指定的遠端主機
這種寫(xiě)法不將系統訊息記錄在連接本地機器上,而記錄在其他主機上。有些情況系統碰到的是硬碟錯誤,或是萬(wàn)一有人把主機推倒,硬碟摔壞了,那你要到哪邊去拿系統紀錄來(lái)看呢?而網(wǎng)絡(luò )卡只要你不把它折斷,應該是比硬碟機耐摔得多了。因此,如果你覺(jué)得某些情況下可能紀錄沒(méi)辦法存進(jìn)硬碟里,你可以把系統紀錄丟到其他的主機上。如果你要這樣做,你可以寫(xiě)下主機名稱(chēng),然后在主機名稱(chēng)前面加上「@」符號(例如@ccunix1.variox.int,但被你指定的主機上必須要有syslogd)。
在以上各種紀錄方式中,都沒(méi)有電子郵件這項。因為電子信件要等收件者去收信才看得到, 有些情況可能是很緊急的, 沒(méi)辦法等你去拿信來(lái)看(BSD的Manual Page寫(xiě)著(zhù)「when you got mail,it’s already too late...」 :-P)。以上就是syslog各項紀錄程度以及紀錄方式的寫(xiě)法,各位讀者可以依照自己的需求記錄下自己所需要的內容。但是這些紀錄都是一直堆上去的,除非您將檔案自行刪除掉,否則這些檔案就會(huì )越來(lái)越大。有的人可能會(huì )在syslogd.conf里面寫(xiě):*.*/var/log/everything要是這樣的話(huà),當然所有的情況都被你記錄下來(lái)了。但是如果真的系統出事了,你可能要從好幾十MB甚至幾百MB的文字中找出到底是哪邊出問(wèn)題,這樣可能對你一點(diǎn)幫助都沒(méi)有。因此,以下兩點(diǎn)可以幫助你快速找到重要的紀錄內容:
1.定期檢查紀錄
養成每周(或是更短的時(shí)間,如果你有空的話(huà))看一次紀錄檔的習慣。如果有需要將舊的紀錄檔備份,可以 cploglog.1,cploglog.2...或是cploglog.971013,cploglog.980101...等,將過(guò)期的紀錄檔依照流水號或是日期存起來(lái),未來(lái)考察時(shí)也比較容易。
2.只記錄有用的東西
千萬(wàn)不要像前面的例子一樣,記錄下*.*。然后放在一個(gè)檔案中。這樣的結果會(huì )導致檔案太大,要找資料時(shí)根本無(wú)法馬上找出來(lái)。有人在記錄網(wǎng)絡(luò )通訊時(shí),連誰(shuí)去ping他的主機都記錄。除非是系統已經(jīng)遭到很大的威脅,沒(méi)事就有人喜歡嘗試進(jìn)入你的系統,否則這種雞毛蒜皮的小事可以不用記錄??梢蕴嵘┰S系統效率以及降低硬盤(pán)使用量(當然也節省你的時(shí)間)。
地理位置的追蹤
如何查出入侵者的地理位置?光看IP地址可能看不出來(lái),但是你??吹脑?huà),會(huì )發(fā)現也會(huì )發(fā)現規律的。在固接式的網(wǎng)絡(luò )環(huán)境中,入侵者一定和網(wǎng)絡(luò )提供單位有著(zhù)密切的關(guān)系。因為假設是局域網(wǎng)絡(luò ),那么距離絕對不出幾公里。就算是撥接好了,也很少人會(huì )花大筆錢(qián)去撥外縣市甚至國外的撥接伺服器。因此,只要查出線(xiàn)的單位,入侵者必然離連線(xiàn)單位不遠。
撥接式的網(wǎng)絡(luò )就比較令人頭疼了。有許多ISP為了吸引客戶(hù),弄了很多什么網(wǎng)絡(luò )卡。
User這邊只要買(mǎi)了固定的小時(shí)數,不需須另外向ISP那邊提出申請,就可以按照卡片上的說(shuō)明自行撥接上網(wǎng)。這樣當然可以吸引客戶(hù),但是ISP就根本無(wú)從得知是誰(shuí)在用他們的網(wǎng)路。也就是說(shuō),雖然以網(wǎng)絡(luò )卡提供撥接服務(wù)給撥接使用者帶來(lái)相當大的便利,但卻是系統安全的大敵,網(wǎng)絡(luò )管理員的惡夢(mèng)。如果入侵你的人是使用網(wǎng)絡(luò )卡來(lái)上網(wǎng),那……,要從撥號的地點(diǎn)查嗎?入侵者可以不要用自己家里的電話(huà)上網(wǎng)。管它是偷是搶?zhuān)蚴潜I打王八機,反正查到的發(fā)話(huà)來(lái)源絕不是入侵者自己的電話(huà)。
來(lái)話(huà)者ID偵測(Caller ID)
各位讀者家中有ISDN嗎?如果你用過(guò)ISDN的Caller ID功能,會(huì )發(fā)現真是方便極了,對方的號碼馬上就顯示出來(lái)給你看??吹脚笥汛螂娫?huà)來(lái),馬上就接了起來(lái);而雜志社的打來(lái)催稿,就打開(kāi)電話(huà)答錄機假裝不在家…… :-P.但是Caller ID依然有失效的時(shí)候。有以下測試,是看CallerID可以顯示出哪些號碼的(受測機種為Zyxel,終端機使用Windows NT的Hyper Terminal):要顯示來(lái)話(huà)方號碼的前提是,對必須是透過(guò)數位交換機打到你這邊,有些地區目前仍然使用機械式交換機,如果你打電話(huà)的交換路徑中,有經(jīng)過(guò)這些機械式的交換機,那么依然無(wú)法顯示出號碼來(lái)。其他電話(huà)還沒(méi)有做測試。
如何靠IP地址或Domain Name找出入侵者位置?
雖然電話(huà)不一定查得出來(lái),但是至少你會(huì )知道他的IP地址。IP地址的使用必須向InterNIC登記,而Domain Name要向當地直屬的網(wǎng)絡(luò )管理中心登記。在Internet上的網(wǎng)路管理中心共有三個(gè)層級(單位性質(zhì)一定為NET):
1.國際等級
國際等級只有InterNIC一個(gè),全球各國的NIC以及洲際NIC均由其管理。
2.洲際等級
InterNIC并不直接管理整個(gè)Internet,其下的網(wǎng)絡(luò )資源會(huì )再做分區。例如臺灣、日本、香港等亞太地區國家 ,由亞太洲際網(wǎng)絡(luò )管理中心(Asian-PacificNIC,APNIC,位于日本)來(lái)管理,并不直接由InterNIC管理 。
3.國家等級
Domain Name后面不掛國碼的不是由InterNIC管理就是由洲際的NIC管理,但是有掛國碼的由當地國家之NIC管理,慣例是兩位國碼加上NIC就是該國NIC之名稱(chēng)。例如中國的國碼為CN,則中國網(wǎng)絡(luò )管理中心為CNNIC,但由于InterNIC位于美國,因此美國的DomainName由InterNIC直轄。有一個(gè)特別的例外是掛.mil的美國軍方網(wǎng)絡(luò )的資料是由ddn.mil(美國軍事防衛網(wǎng)絡(luò ))來(lái)管理,不由InterNIC管理,當您得到某個(gè)Domain Name或是IP地址后,可以使用whois來(lái)查出資料,語(yǔ)法如下:
whois -h查詢(xún)對象>
例如向whois.internic.net查詢(xún)hp.com,需輸入:
whois -h whois.internic.nethp.com whois
也可能使用下列語(yǔ)法:
whois 查詢(xún)對象>@
例如向whois.twnic.net查詢(xún)ntu.edu.tw需輸入:
whois ntu.edu.tw@whois.twnic.net
目前在Slackware Linux附上的為后者。
Domain Name命名的三種情況
雖然同樣是 Domain Name,可能你會(huì )遇到三種命名的不同情況。在許多國家*.edu.*是由NIC以外的單位所管理( 如育部),而屬性也不一定是三個(gè)字母,甚至沒(méi)有屬性。在判斷單位性質(zhì)時(shí)讀者宜多加注意,以免找不到資料。
1.標準國碼+三碼屬性碼(或沒(méi)有國碼,僅有屬性碼)
普遍使用于歐洲,美洲國家以及部份東南亞國家。如臺灣常見(jiàn)*.edu.tw、*.com.tw,美國的*.com、*.edu。
2.標準國碼+二碼屬性碼
以日本例,公司屬性為co,社團屬性為or,和三碼定義的com、org略有不同。如日本萬(wàn)代公司之Homepage 為www.bandai.co.jp,如果讀者要使用公司名稱(chēng)拼湊出完整主機名稱(chēng)時(shí),需注意日本為僅有兩碼屬性碼之地區,否則若猜測其為www.bandai.com.jp就會(huì )發(fā)生錯誤(注:在國際通信范例中,無(wú)論是無(wú)線(xiàn)電通信、國際越洋電 話(huà)、乃至于網(wǎng)際網(wǎng)絡(luò )等,均將臺灣與中國大陸劃分為兩個(gè)不同國家。在此將中國大陸與臺灣區分,除突顯此一 特性外,并無(wú)其他涵義,請大家勿需自行揣測其他意義)。
3.僅有標準國碼,未有任何屬性碼
如澳洲的主機均為僅有*.au之主機名稱(chēng),未有任何其他的com、co、或任何單位屬性碼后面直接接上單位名稱(chēng)。
由Domain Name查出連線(xiàn)單位資料
在Internet上慣例由whois服務(wù)來(lái)查詢(xún)連線(xiàn)單位的登記資料,whois本來(lái)應該是用來(lái)查某人的電話(huà)或是其他資料的,但是在NIC方面是用來(lái)查出連線(xiàn)單位的電話(huà)以及住址,技術(shù)聯(lián)絡(luò )人等。符合該NIC管理權限的單位資料會(huì )存放于該單位的whois主機中,慣例是whois+NIC名稱(chēng)+net。例如亞太地區網(wǎng)絡(luò )管理中心whois server為whois.apnic.net,臺灣網(wǎng)絡(luò )中心whois server為whois.twnic.net,我過(guò)網(wǎng)絡(luò )中心whois server是whois.cnnic.net。當你知道某臺主機的Domain Name以后,可以依照下面順序查出連線(xiàn)單位的電話(huà)住址等資料。
第一步,先看有沒(méi)有國碼。
沒(méi)有國碼的,向whois.internic.net問(wèn);有國碼的,向whois.國碼nic.net問(wèn)
(ex.whois.twnic.net)。
另外,如果你要查美國軍事單位的聯(lián)絡(luò )明細(假如某天你發(fā)現有人利用美國海軍的網(wǎng)絡(luò )來(lái)入侵你的電腦)則你需要向nic.ddn.mil查詢(xún),方可查到資料。例如查出美國陸軍的資料:但FBI等調查機構屬政府單位,非軍事單位,查詢(xún)時(shí)需注意:由DomainName查出資料,如您能從nslookup查出某一IP地址之FQDN,則可以直接向當地NIC查出入侵者網(wǎng)絡(luò )之資料:
1.由美國入侵的例子:
由 xxx.aol.com入侵由主機名稱(chēng)發(fā)現未有國碼, 因此直接向InterNIC查詢(xún)。由此我們可以查到America Online的技術(shù)負責人以及電話(huà)、傳真等資料,把你的系統紀錄檔準備好,發(fā)封傳真去告洋狀吧!
2.由臺灣入侵的例子:
由HopeNet入侵(cded1.hope.com.tw)由于TWNIC目前whois資料庫不知怎么的不見(jiàn)了,故請改由dbms.seed.net.tw查出hope.com.tw之中文名稱(chēng),再打104詢(xún)問(wèn)該公司的電話(huà)!現在如果直接由whois.twnic.net 查詢(xún)會(huì )這樣:
只有IP地址的查法
若某天您發(fā)現由168.95.109.222有人入侵,假設您不知道這是哪里的網(wǎng)絡(luò ),而這個(gè)IP地址也沒(méi)有Domain Name 的話(huà),則須先將IP地址分等級,再向InterNIC查詢(xún):
1.由15.4.75.2入侵的例子:
此IP地址是15開(kāi)頭,為一個(gè)ClassA網(wǎng)絡(luò ),故向InterNIC查詢(xún)15.0:查出此IP地址為惠普公司所有
2.由140.111.32.53入侵的例子:
此IP地址為ClassB,需查詢(xún)兩次。先向InterNIC查詢(xún)140.111.0:查出為臺灣教育部所有。再向 whois.twnic.net查詢(xún)140.111.32.0:
3.由203.66.35.1入侵的例子
這是一個(gè)ClassCIP,因此必須查詢(xún)至少二次,一般是三次。順序為國際->洲際->所屬?lài)?。先?03.0:出來(lái)一大堆,怎么辦?有的情況只好再追問(wèn)ClassB。由于InterNIC將部份ClassC交給洲際管理機構來(lái)負責配給,因此有些ClassC的資料會(huì )在洲際管理機構,此時(shí)先向InterNIC查出所屬洲際管理機構(用ClassB問(wèn))。問(wèn)到 203.66為亞太地區洲際網(wǎng)絡(luò ),于是向whois.apnic.net詢(xún)問(wèn)203.66.35.0:查了三次以后,終于查到203.66.35.0 為:
在一堆資料中查到203.66.35.1,此一IP地址為ForwardnessTechnologyCo.Ltd.所有,電話(huà)地址也一并附在上面。
由以上的查法,可以由任一主機名稱(chēng)或IP地址查到連線(xiàn)者網(wǎng)絡(luò )單位的資料,如果您發(fā)現該網(wǎng)絡(luò )單位下屬主機對您的網(wǎng)絡(luò )有攻擊行為,請檢具資料告訴對方的系統管理員(對方不一定接受)。下面是Windows95的hosts檔案:當您沒(méi)有DNS的時(shí)候,您可以拿這個(gè)來(lái)將DomainName->IP地址的對應工作做好。寫(xiě)法就和UNIX一樣。Microsoft的這個(gè)hosts檔案寫(xiě)的是給chicago用的,這是windows95的開(kāi)發(fā)代號,看見(jiàn)沒(méi)?(看來(lái)Microsoft出windows95時(shí)太趕,忘了修正這些小東西), 不過(guò)各位讀者要注意的是,原先的hosts檔案檔名是hosts.sam,您要自己將檔名改成hosts才能用。
注:幾乎所有使用TCP/IP通訊協(xié)定的機器都會(huì )有hosts、network等檔案。這是所有TCP/IP系統的共通習慣(但只有 Microsoft的軟體會(huì )有lmhosts來(lái)配合Microsoft自己的wins域名解譯系統)。如果讀者有注意到的話(huà),可以發(fā)現 Novell Netware服務(wù)器也有一個(gè)etc目錄,還有hosts等檔案!
評論