如何追踪系统进侵者
核心提示:在局域网络上可能你听过所谓“广播模式”的资料发送方法,此种方法不指定收信站,只要和此网络连结的所有网络设备皆为收信对象。但是这仅仅在局域网络上能够实行,由于局域网络上的机器未几(和Internet比起来)。
在局域网络上可能你听过所谓“广播模式”的资料发送方法,此种方法不指定收信站,只要和此网络连结的所有网络设备皆为收信对象。但是这仅仅在局域网络上能够实行,由于局域网络上的机器未几(和Internet比起来)。假设象是Internet上有数千万的主机,本就不可能实行资料广播(至于IPMulticast算是1种限定式广播RestrictedBroadcast,惟有被指定的机器会收到,Internet上其他电脑还是不会收到)。假定Internet上可以实行非限定广播,那随便1个人发出广播讯息,全球的电脑皆受其影响,岂不世界大乱?因此,任何局域网络内的路由器或是类似网络设备都不会将自己区域网络内的广播讯息转送出往。万1在WANPort收到广播讯息,也不会转进自己的LANPort中。
而既然网络皆有发信站与收信站,用以标示信息发送者与信息接收者,除非对方使用1些特殊的封包封装方式或是使用防火墙对外连线,那末只要有人和你的主机进行通讯(寄信或是telnet、ftp过来都算)你就应当会知道对方的位址,假设对方用了防火墙来和你通讯,你最少也能够知道防火墙的位置。也正由于只要有人和你连线,你便可以知道对方的位址,那末要不要知道对方位置只是要做不做的题目而已。假设对方是透过1台UNIX主机和你连线,则你更可以透过ident查到是谁和你连线的。
在实行TCP/IP通讯协议的电脑上,通常可以用netstat指令来看到目前连线的状态。
(各位朋友可以在win95、Novell和UNIX试试看(注1),在下面的连线状态中,netstat指令是在win95上实行的,可以看到目前自己机器(LocalAddress处)的telnetport有1台主机workstation.variox.int由远端(ForeignAddress处)连线进来并且配到1029号tcpport.而ccunix1主机也以ftpport连到workstation.variox.int往。所有的连线状态看得1清2楚。(如A、B)
A.在UNIX主机(ccunix1.variox.int)看netstat
B.另1端在Windows95(workstation.variox.int)看netstat,固然是不同的作业系统,但netstat是否是长得很像呢?
通讯进程的纪录设定
固然,假设你想要把网络连线纪录给记录下来,你可以用crontable定时往跑:
netstat>>filename
但是UNIX系统早已考虑到这1个需求,因此在系统中有1个专职记录系统事件的
Daemon:syslogd,应当有很多朋友都知道在UNIX系统的/var/adm下面有两个系统纪录档案:
syslog与messages,1个是1般系统的纪录,1个是核心的纪录。但是这两个档案是从哪边来的,又要如何设定呢?
系统的纪录基本上都是由syslogd(SystemKernelLogDaemon)来产生,而syslogd的控制是由/etc/syslog.conf来做的。syslog.conf以两个栏位来决定要记录哪些东西,和记录到哪边往。下面是1个Linux系统所附上的yslog.conf档案,这也是1个最标准的syslog.conf写法:
格式就是这模样,第1栏写「在甚么情况下」和「甚么程度」。然后用TAB键跳下1栏继续写「符合条件以后要做甚么」。这个syslog.conf档案的作者很老实,告知你只能用TAB来作各栏位之间的分隔(固然看来仿佛他也不知道为甚么)。第1栏包括了何种情况与程度,中间小数点分隔。另外,星号就代表了某1细项中的所有选项。具体的设定方式以下:
1、在甚么情况:各种不同的情况以下面的字串来决定。
auth关于系统安全与使用者认证方面
cron关于系统自动排程履行(CronTable)方面
daemon关于背景履行程式方面
kern关于系统核心方面
lpr关于印表机方面
mail关于电子邮件方面
news关于新闻讨论区方面
syslog关于系统纪录本身方面
user关于使用者方面
uucp关于UNIX互拷(UUCP)方面
上面是大部份的UNIX系统都会有的情况,而有些UNIX系统可能会再分出不同的项目出来。
2、甚么程度才记录:
下面是各种不同的系统状态程度,依照轻重缓急排列。
none不要记录这1项
debug程式或系统本身除错讯息
info1般性资讯
notice提示留意性
err产生毛病
warning正告性
crit较严重的正告
alert再严重1点的正告
emerg已非常严重了
一样地,各种UNIX系统可能会有不同的程度表示方式。有些系统是不另外辨别crit与alert的差别,也有的系统会有更多种类的程度变化。在记录时,syslogd会自动将你所设定程度和其上的都1并记录下来。例如你要系统往记录info等级的事件,则notice、err.warning、crit、alert、emerg等在info等级以上的也会1并被记录下来。把上面所写的1、2项以小数点组合起来就是完全的「要记录哪些东西」的写法。
例如mail.info表示关于电子邮件传送系统的1般性讯息。auth.emerg就是关于系统安全方面相当严重的讯息。lpr.none表示不要记录关于列表机的讯息(通常常使用在有多个纪录条件时组合使用)。另外有3种特殊的符号可供给用:
1、星号(*)星号代表某1细项中所有项目。例如mail.*表示只要有关mail的,不管甚么程度都要记录下来。而*.info会把所有程度为info的事件给记录下来。
2、等号(=)等号表示只记录目前这1等级,其上的等级不要记录。例如刚刚的例子,平常写下info等级时,也会把位于info等级上面的notice、err.warning、crit、alert、emerg等其他等级也记录下来。但如果你写=info则就只有记录info这1等级了。
3、赞叹号(!)赞叹号表示不要记录目前这1等级和其上的等级。
记录到哪边往?
1般的syslogd都提供以下的管道以供您记录系统产生的甚么事:
1、1般档案
这是最普遍的方式。你可以指定好档案路径与档案名称,但是必须以目录符号「/」开始,系统才会知道这是1个档案。例如/var/adm/maillog表示要记录到/var/adm下面1个称为maillog的档案。假设之前没有这个档案,系统会自动产生1个。
2、指定的终端机或其他设备
你也能够将系统纪录写到1个终端机或是设备上。若将系统纪录写到终端机,则目前正在使用该终端机的使用者就会直接在萤幕上看到系统讯息(例如/dev/console或是/dev/tty1.你可以拿1个萤幕专门来显示系统讯息)。若将系统纪录写到印表机,则你会有1长条印满系统纪录的纸(例如/dev/lp0)。
3、指定的使用者
你也能够在这边列出1串使用者名称,则这些使用者假设正好上线的话,就会在他的终端机上看到系统讯息(例如root,留意写的时候在使用者名称前面不要再加上其他的字)。
4、指定的远端主机
这类写法不将系统讯息记录在连接本地机器上,而记录在其他主机上。有些情况系统碰到的是硬碟毛病,或是万1有人把主机推倒,硬碟摔坏了,那你要到哪边往拿系统纪录来看呢?而网络卡只要你不把它折断,应当是比硬碟机耐摔很多了。因此,假设你觉得某些情况下可能纪录没办法存进硬碟里,你可以把系统纪录丢到其他的主机上。假设你要这样做,你可以写下主机名称,然后在主机名称前面加上「@」符号(例如@ccunix1.variox.int,但被你指定的主机上必须要有syslogd)。
在以上各种纪录方式中,都没有电子邮件这项。由于电子信件要等收件者往收信才看得到,有些情况多是很紧急的,没办法等你往拿信来看(BSD的ManualPage写着「whenyougotmail,it’salreadytoolate...」:-P)。以上就是syslog各项纪录程度和纪录方式的写法,各位读者可以依照自己的需求记录下自己所需要的内容。但是这些纪录都是1直堆上往的,除非您将档案自行删除掉,否则这些档案就会越来越大。有的人可能会在syslogd.conf里面写:*.*/var/log/everything要是这样的话,固然所有的情况都被你记录下来了。但是假设真的系统失事了,你可能要从好几10MB乃至几百MB的文字中找出究竟是哪边出题目,这样可能对你1点帮助都没有。因此,以下两点可以帮助你快速找到重要的纪录内容:
1、定期检查纪录
养成每周(或是更短的时间,假设你有空的话)看1次纪录档的习惯。假设有需要将旧的纪录档备份,可以cploglog.1,cploglog.2...或是cploglog.971013,cploglog.980101...等,将过期的纪录档依照流水号或是日期存起来,未来考察时也比较轻易。
2、只记录有用的东西
千万不要像前面的例子1样,记录下*.*。然后放在1个档案中。这样的结果会导致档案太大,要找资料时根本没法马上找出来。有人在记录网络通讯时,连谁往ping他的主机都记录。除非是系统已遭到很大的要挟,没事就有人喜欢尝试进进你的系统,否则这类鸡毛蒜皮的小事可以不用记录。可以提升些许系统效率和下降硬盘使用量(固然也节省你的时间)。
地理位置的追踪
如何查出进侵者的地理位置?光看IP地址可能看不出来,但是你常看的话,会发现也会发现规律的。在固接式的网络环境中,进侵者1定和网络提供单位有着密切的关系。由于假定是局域网络,那末间隔尽对不出几千米。就算是拨接好了,也很少人会花大笔钱往拨外县市乃至国外的拨接伺服器。因此,只要查出线的单位,进侵者必定离连线单位不远。
拨接式的网络就比较使人头疼了。有很多ISP为了吸引客户,弄了很多甚么网络卡。
User这边只要买了固定的小时数,不需须另外向ISP那边提出申请,便可以够依照卡片上的说明自行拨接上网。这样固然可以吸引客户,但是ISP就根本无从得知是谁在用他们的网路。也就是说,固然以网络卡提供拨接服务给拨接使用者带来相当大的便利,但却是系统安全的大敌,网络治理员的噩梦。假设进侵你的人是使用网络卡来上网,那……,要从拨号的地点查吗?进侵者可以不要用自己家里的电话上网。管它是偷是抢,或是盗打王8机,反正查到的发话来源尽不是进侵者自己的电话。
来话者电话侦测(CallerID)
各位读者家中有ISDN吗?假设你用过ISDN的CallerID功能,会发现真是方便极了,对方的号码马上就显示出来给你看。看到女朋友打电话来,马上就接了起来;而杂志社的打来催稿,就打开电话答录机假装不在家……:-P.但是CallerID依然有失效的时候。有以下测试,是看CallerID可以显示出哪些号码的(受测机种为Zyxel,终端机使用WindowsNT的HyperTerminal):要显示来话方号码的条件是,对必须是透过数位交换机打到你这边,有些地区目前依然使用机械式交换机,假设你打电话的交换路径中,有经过这些机械式的交换机,那末依然没法显示出号码来。其他电话还没有做测试。
如何靠IP地址或DomainName找出进侵者位置?
固然电话不1定查得出来,但是最少你会知道他的IP地址。IP地址的使用必须向InterNIC登记,而DomainName要向当地直属的网络治理中心登记。在Internet上的网路治理中心共有3个层级(单位性质1定为NET):
1、国际等级
国际等级只有InterNIC1个,全球各国的NIC和洲际NIC均由其治理。
2、洲际等级
InterNIC其实不直接治理全部Internet,其下的网络资源会再做分区。例如台湾、日本、香港等亚太地区国家,由亚太洲际网络治理中心(Asian-PacificNIC,APNIC,位于日本)来治理,其实不直接由InterNIC治理。
3、国家等级
DomainName后面不挂国码的不是由InterNIC治理就是由洲际的NIC治理,但是有挂国码的由当地国家之NIC治理,惯例是两位国码加上NIC就是该国NIC之名称。例如中国的国码为CN,则中国网络治理中心为CNNIC,但由于InterNIC位于美国,因此美国的DomainName由InterNIC直辖。有1个特别的例外是挂.mil的美***方网络的资料是由ddn.mil(美***事防卫网络)来治理,不由InterNIC治理,当您得到某个DomainName或是IP地址后,可使用whois来查出资料,语法以下:
whois-h<whois服务器><查询对象>
例如向whois.internic.net查询hp.com,需输进:
whois-hwhois.internic.nethp.comwhois
也可能使用以下语法:
whois<查询对象>@<whois伺服器>
例如向whois.twnic.net查询ntu.edu.tw需输进:
whoisntu.edu.tw@whois.twnic.net
目前在SlackwareLinux附上的为后者。
DomainName命名的3种情况
固然一样是DomainName,可能你会碰到3种命名的不同情况。在很多国家*.edu.*是由NIC之外的单位所治理(如育部),而属性也不1定是3个字母,乃至没有属性。在判定单位性质时读者宜多加留意,以免找不到资料。
1、标准国码+3码属性码(或没有国码,唯一属性码)
普遍使用于欧洲,美洲国家和部份东南亚国家。如台湾常见*.edu.tw、*.com.tw,美国的*.com、*.edu。
2、标准国码+2码属性码
以日本例,公司属性为co,社团属性为or,和3码定义的com、org略有不同。如日本万代公司之Homepage为www.bandai.co.jp,假设读者要使用公司名称拼凑出完全主机名称时,需留意日本为唯一两码属性码之地区,否则若猜想其为www.bandai.com.jp就会产生毛病(注:在国际通讯范例中,不论是无线电通讯、国际越洋电话、乃至于网际网络等,均将台湾与中国大陆划分为两个不同国家。在此将中国大陆与台湾辨别,除突显此1特性外,并没有其他涵义,请大家勿需自行揣测其他意义)。
3、唯一标准国码,未有任何属性码
如澳洲的主机均为唯一*.au之主机名称,未有任何其他的com、co、或任何单位属性码后面直接接上单位名称。
由DomainName查出连线单位资料
在Internet上惯例由whois服务来查询连线单位的登记资料,whois本来应当是用来查某人的电话或是其他资料的,但是在NIC方面是用来查出连线单位的电话和住址,技术联系人等。符合该NIC治理权限的单位资料会寄存于该单位的whois主机中,惯例是whois+NIC名称+net。例如亚太地区网络治理中心whoisserver为whois.apnic.net,台湾网络中心whoisserver为whois.twnic.net,我过网络中心whoisserver是whois.cnnic.net。当你知道某台主机的DomainName以后,可以依照下面顺序查出连线单位的电话住址等资料。
第1步、先看有无国码。
没有国码的,向whois.internic.net问;有国码的,向whois.国码nic.net问
(ex.whois.twnic.net)。
另外,假设你要查美***事单位的联系明细(假设某天你发现有人利用美国海军的网络来进侵你的电脑)则你需要向nic.ddn.mil查询,方可查到资料。例如查出美国陆军的资料:但FBI等调查机构属政府单位,非军事单位,查询时需留意:由DomainName查出资料,如您能从nslookup查出某1IP地址之FQDN,则可以直接向当地NIC查出进侵者网络之资料:
1、由美国进侵的例子:
由***.aol.com进侵由主机名称发现未有国码,因此直接向InterNIC查询。由此我们可以查到AmericaOnline的技术负责人和电话、传真等资料,把你的系统纪录档豫备好,发封传真往告洋状吧!
2、由台湾进侵的例子:
由HopeNet进侵(cded1.hope.com.tw)由于TWNIC目前whois资料库不知怎样的不见了,故请改由dbms.seed.net.tw查出hope.com.tw当中文名称,再打104询问该公司的电话!现在假设直接由whois.twnic.net查询会这样:
只有IP地址的查法
若某天您发现由168.95.109.222有人进侵,假定您不知道这是哪里的网络,而这个IP地址也没有DomainName的话,则须先将IP地址分等级,再向InterNIC查询:(以下作为范例之位址均为虚构,如有雷同,纯属偶合)。
1、由15.4.75.2进侵的例子:
此IP地址是15开头,为1个ClassA网络,故向InterNIC查询15.0:查出此IP地址为惠普公司所有
2、由140.111.32.53进侵的例子:
此IP地址为ClassB,需查询两次。先向InterNIC查询140.111.0:查出为台湾教育部所有。再向whois.twnic.net查询140.111.32.0:
3、由203.66.35.1进侵的例子
这是1个ClassCIP,因此必须查询最少2次,1般是3次。顺序为国际->洲际->所属国家。先查203.0:出来1大堆,怎样办?有的情况只好再追问ClassB。由于InterNIC将部份ClassC交给洲际治理机构来负责配给,因此有些ClassC的资料会在洲际治理机构,此时先向InterNIC查出所属洲际治理机构(用ClassB问)。问到203.66为亚太地区洲际网络,因而向whois.apnic.net询问203.66.35.0:查了3次以后,终究查到203.66.35.0为:
在1堆资料中查到203.66.35.1,此1IP地址为ForwardnessTechnologyCo.Ltd.所有,电话地址也1并附在上面。
由以上的查法,可以由任1主机名称或IP地址查到连线者网络单位的资料,假设您发现该网络单位下属主机对您的网络有攻击行动,请检具资料告知对方的系统治理员(对方不1定接受)。下面是Windows95的hosts档案:当您没有DNS的时候,您可以拿这个来将DomainName<->IP地址的对应工作做好。写法就和UNIX1样。Microsoft的这个hosts档案写的是给chicago用的,这是windows95的开发代号,看见没?(看来Microsoft出windows95时太赶,忘了修正这些小东西),不过各位读者要留意的是,本来的hosts档案档名是hosts.sam,您要自己将档名改成hosts才能用。
注:几近所有使用TCP/IP通讯协议的机器都会有hosts、network等档案。这是所有TCP/IP系统的共通习惯(但只有Microsoft的软体会有lmhosts来配合Microsoft自己的wins域名解译系统)。假设读者有留意到的话,可以发现NovellNetware服务器也有1个etc目录,还有hosts等档案!
http://www.fw8.net/TAG:网络,系统,主机,纪录,档案
评论加载中...
|