扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在局域网络上可能你听过所谓“广播模式”的资料发送方法,此种方法不指定收信站,只要和此网络连结的所有网络设备皆为收信对象。但是这仅仅在局域网络上能够实行,因为局域网络上的机器不多(和Internet比起来 )。如果象是Internet上有数千万的主机,本就不可能实施资料广播(至于IP Multicast算是一种限定式广播Restricted Broadcast,唯有被指定的机器会收到,Internet上其他电脑还是不会收到)。假设Internet上可以实施非限定广播,那随便一个人发出广播 讯息,全世界的电脑皆受其影响,岂不世界大乱?因此,任何局域网络内的路由器或是类似网络设备都不会将自己区域网络内的广播讯息转送出去。万一在WAN Port收到广播讯息,也不会转进自己的LAN Port中。
而既然网络皆有发信站与收信站,用以标示信息发送者与信息接收者,除非对方使用一些特殊的封包封装方式或是使用防火墙对外连线,那么只要有人和你的主机进行通讯(寄信或是telnet、ftp过来都算) 你就应该会知道 对方的位址,如果对方用了防火墙来和你通讯,你最少也能够知道防火墙的位置。也正因为只要有人和你连线,你就能知道对方的位址,那么要不要知道对方位置只是要做不做的问题而已。如果对方是透过一台UNIX主机和你连线,则你更可以透过ident查到是谁和你连线的。
在实行TCP/IP通讯协定的电脑上,通常可以用netstat指令来看到目前连线的状况。
(各位朋友可以在win95、Novell以及UNIX试试看(注一),在下面的连线状况中,netstat指令是在win95上实行的,可以看到目前自己机器(Local Address处)的telnetport有一台主机workstation.variox.int 由远端(Foreign Address处)连线进来并且配到1029号tcp port.而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 关于系统核心方面
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.惊叹号(!) 惊叹号表示不要记录目前这一等级以及其上的等级。
记录到哪边去?
一般的syslogd都提供下列的管道以供您记录系统发生的什么事:
1.一般档案
这是最普遍的方式。你可以指定好档案路径与档案名称,但是必须以目录符号「/」开始,系统才会知道这是 一个档案。例如/var/adm/maillog表示要记录到/var/adm下面一个称为maillog的档案。如果之前没有这个档案 ,系统会自动产生一个。
2.指定的终端机或其他设备
你也可以将系统纪录写到一个终端机或是设备上。若将系统纪录写到终端机,则目前正在使用该终端机的使 用者就会直接在萤幕上看到系统讯息(例如/dev/console或是/dev/tty1.你可以拿一个萤幕专门来显示系统讯息 )。若将系统纪录写到印表机,则你会有一长条印满系统纪录的纸(例如/dev/lp0)。
3.指定的使用者
你也可以在这边列出一串使用者名称,则这些使用者如果正好上线的话,就会在他的终端机上看到系统讯息( 例如root,注意写的时候在使用者名称前面不要再加上其他的字)。
地理位置的追踪
如何查出入侵者的地理位置?光看IP地址可能看不出来,但是你常看的话,会发现也会发现规律的。在固接式的网络环境中,入侵者一定和网络提供单位有着密切的关系。因为假设是局域网络,那么距离绝对不出几公里。就算是拨接好了,也很少人会花大笔钱去拨外县市甚至国外的拨接伺服器。因此,只要查出线的单位,入侵者必然离连线单位不远。
拨接式的网络就比较令人头疼了。有许多ISP为了吸引客户,弄了很多什么网络卡。
User这边只要买了固定的小时数,不需须另外向ISP那边提出申请,就可以按照卡片上的说明自行拨接上网。这样当然可以吸引客户,但是ISP就根本无从得知是谁在用他们的网路。也就是说,虽然以网络卡提供拨接服务给拨接使用者带来相当大的便利,但却是系统安全的大敌,网络管理员的恶梦。如果入侵你的人是使用网络卡来上网,那……,要从拨号的地点查吗?入侵者可以不要用自己家里的电话上网。管它是偷是抢,或是盗打王八机,反正查到的发话来源绝不是入侵者自己的电话。
来话者电话侦测(Caller ID)
各位读者家中有ISDN吗?如果你用过ISDN的Caller ID功能,会发现真是方便极了,对方的号码马上就显示出来给你看。看到女朋友打电话来,马上就接了起来;而杂志社的打来催稿,就打开电话答录机假装不在家…… :-P.但是Caller ID依然有失效的时候。有以下测试,是看CallerID可以显示出哪些号码的(受测机种为Zyxel,终端机使用Windows NT的Hyper Terminal):要显示来话方号码的前提是,对必须是透过数位交换机打到你这边,有些地区目前仍然使用机械式交换机,如果你打电话的交换路径中,有经过这些机械式的交换机,那么依然无法显示出号码来。其他电话还没有做测试。
如何靠IP地址或Domain Name找出入侵者位置?
虽然电话不一定查得出来,但是至少你会知道他的IP地址。IP地址的使用必须向InterNIC登记,而Domain Name要向当地直属的网络管理中心登记。在Internet上的网路管理中心共有三个层级(单位性质一定为NET):
1.国际等级
国际等级只有InterNIC一个,全球各国的NIC以及洲际NIC均由其管理。
2.洲际等级
InterNIC并不直接管理整个Internet,其下的网络资源会再做分区。例如台湾、日本、香港等亚太地区国家 ,由亚太洲际网络管理中心(Asian-PacificNIC,APNIC,位于日本)来管理,并不直接由InterNIC管理 。
3.国家等级
Domain Name后面不挂国码的不是由InterNIC管理就是由洲际的NIC管理,但是有挂国码的由当地国家之NIC管理,惯例是两位国码加上NIC就是该国NIC之名称。例如中国的国码为CN,则中国网络管理中心为CNNIC,但由于InterNIC位于美国,因此美国的DomainName由InterNIC直辖。有一个特别的例外是挂.mil的美国军方网络的资料是由ddn.mil(美国军事防卫网络)来管理,不由InterNIC管理,当您得到某个Domain Name或是IP地址后,可以使用whois来查出资料,语法如下:
whois -h<whois服务器><查询对象>
例如向whois.internic.net查询hp.com,需输入:
whois -h whois.internic.nethp.com whois
也可能使用下列语法:
whois <查询对象>@<whois伺服器>
例如向whois.twnic.net查询ntu.edu.tw需输入:
由Domain Name查出连线单位资料
在Internet上惯例由whois服务来查询连线单位的登记资料,whois本来应该是用来查某人的电话或是其他资料的,但是在NIC方面是用来查出连线单位的电话以及住址,技术联络人等。符合该NIC管理权限的单位资料会存放于该单位的whois主机中,惯例是whois+NIC名称+net。例如亚太地区网络管理中心whois server为whois.apnic.net,台湾网络中心whois server为whois.twnic.net,我过网络中心whois server是whois.cnnic.net。当你知道某台主机的Domain Name以后,可以依照下面顺序查出连线单位的电话住址等资料。
第一步,先看有没有国码。
没有国码的,向whois.internic.net问;有国码的,向whois.国码nic.net问
(ex.whois.twnic.net)。
另外,如果你要查美国军事单位的联络明细(假如某天你发现有人利用美国海军的网络来入侵你的电脑)则你需要向nic.ddn.mil查询,方可查到资料。例如查出美国陆军的资料:但FBI等调查机构属政府单位,非军事单位,查询时需注意:由DomainName查出资料,如您能从nslookup查出某一IP地址之FQDN,则可以直接向当地NIC查出入侵者网络之资料:
1.由美国入侵的例子:
由 xxx.aol.com入侵由主机名称发现未有国码, 因此直接向InterNIC查询。由此我们可以查到America Online的技术负责人以及电话、传真等资料,把你的系统纪录档准备好,发封传真去告洋状吧!
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地址也没有Domain Name 的话,则须先将IP地址分等级,再向InterNIC查询:
1.由15.4.75.2入侵的例子:
此IP地址是15开头,为一个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入侵的例子
这是一个ClassCIP,因此必须查询至少二次,一般是三次。顺序为国际->洲际->所属国家。先查203.0:出来一大堆,怎么办?有的情况只好再追问ClassB。由于InterNIC将部份ClassC交给洲际管理机构来负责配给,因此有些ClassC的资料会在洲际管理机构,此时先向InterNIC查出所属洲际管理机构(用ClassB问)。问到 203.66为亚太地区洲际网络,于是向whois.apnic.net询问203.66.35.0:查了三次以后,终于查到203.66.35.0 为:
在一堆资料中查到203.66.35.1,此一IP地址为ForwardnessTechnologyCo.Ltd.所有,电话地址也一并附在上面。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。