大家好西瓜狗狗个人专栏今天正式开讲,很高兴站长站能提供这个机会让我与大家交流学习并分享我所知道的知识,如果大家对我有任何的意见的和建议,大家可以给我发邮件,我的邮件是:hq9988174@vip.163.com下面就让我们开始吧。Let`s go!
第一讲:Internet的产生 ·90年代的Internet
开始阶段:1962~1969年 确切地说,这段历史应该开始于1960~1962年。当时,Jack Kennedy还在白宫,甲壳虫乐队正好录制了他们的第一首打击单曲(“Love me do”)。美国人正在经历一个繁荣的时期。 由于推测要爆发原子战争,美国空军就组织了一个研究小组,并赋于他们一个艰巨的任务:建立一个能在原子弹袭击后生存下来的通信网络。他们的构想是革命性的,该网络没有控制中心。即使网络中有1个(或10个、100个)站点遭到了破坏,该网络还能继续运行。简而言之,该网络(出于军事目的)能根据自我提示而生存下来(而我们则不能)。 对Internet的存在作出大量贡献的Paul Baran。1962年,Paul在兰德公司(Pand)工作,这是个负责发展这种概念的智囊公司。Baran设想有个网络,其间的所有机器都能彼此通信。这是一个与传统完全不同的概念。然而,Baran知道集中式的网络太容易遭到攻击了。在他那著名的名为“分布式能信:I.介绍分布式通信网络”的备忘录中,他写道:“集中式网络太容易遭到攻击了,并且只要一个中心结点遭到破坏,则与该中心结点相连的终端结点就不能通信了”。 参考 兰德公司把这个备忘录以及由Baran提交的报告放到了WWW上。这些文档可以在http://www.rand.org/publications/RM/baran.list.html上找到。 Baran为大多数网络的构造指明了一条道路。在那时,网络是依赖于主机的。那些巨大的、功能强大的机器集中保存有大量的信息。用户通过与主机直接相连的终端来访问信息。数据可以由终端经电缆而到达主机,然后由主机再把数据分发到其他的终端。这是一个十分高效的网络通信方式,但它存在有巨大的安全隐患,例如,终端之间不能直接通信。因此,如果主机被破坏的话,该网络就被破坏了。这会使国家网络处理相当危险的境界。 Baran提供了一个简单的解决办法:设计一个网络,使得每个结点都能相互通信。这种设计在很多方面与电话系统相似。正如Baran所解释的那样: “实际上,这是利用一种把星型和网络单元混合起来的方式来构造通信网络。这样的网络有时可以称之为:‘无中心’,因为该网络并不需要一个绝对不可缺少的结点。” Baran的提议完全基于路由约定。他想像在一个系统中,数据可动态地确定自己的路径。例如,如果数据在一个交叉口发生了冲突,那么它能另找一条路径。这个系统基于某种确定的规则。比如,一个网络结点只有在它有足够的空间时才会接受一个消息。同样,如果当前所有的线路都处于忙状态,消息就会等待一段时间,直到有一条新的可用的路径。通过这种方式,网络就提供了一种智能化的数据传输方式。Baran同样还对网络的其他方面进行了细化,这句话: ·安全 ·优先级方案(以及避免网络过载的设备) ·硬件 ·费用 不幸的是,Baran的想法在那个时代是超前的。五角大楼对这个激进的概念缺少信任。Baran给国防部的官员们发送了一个11卷长的报告,但他们很快就把它束之高阁了。其结果是,五角大楼的短视延迟民Internet的诞生,但幸亏耽误得不多。1965年,推动力又再次出现,国防部为发展一个非中心化的计算机网络而提供了基金。到了1969年,这个网络实现了。这个系统称之为ARPANET。 从网络的观点出发,ARPANET是相当简陋的,它由连接于四个学术中心的机器组成(它们是斯坦福研究所、犹他大学、加州大学洛杉矶分校、加州大学圣巴巴拉分校。)其中的一台机器DEC PDP-10,这个古老的东西现在与其说是一个计算机设备,还不如说是个有用的家具。然而,我在这里提到PDP-10,是为了简要叙述一下计算机历史上的另一个传说。 这时,大概是一个西雅图—华盛顿的公司开始提供计算机时间共享服务(这是一个每个协作的客户都可以租用CPU时间的系统,它们按小时计费)。这个公司让两个年轻人来测试这个软件。作为交换,这两个孩子被允许免费拨号访问一台PDP-10(这相当于能自由地访问一个私有的公告牌系统)。对这两个孩子来说不幸的是,这家公司不久以后就关闭了。但是他们从中所学到的经验却改变了他们的生活。那时候,他们还只是上高中的年纪。而今,他们都是亿万富翁了。你能猜到他们是谁吗?这两个人就是Bill Gates和Paul Allen。 无论从哪一方面说,ARPANET的诞生是十分寒酸的,四台机器是用电话线连起来的。但在当时,这已经是一个了不起的成就了。不过由ARPANET创建成功所带来的陶醉没有维持多久就烟消云散了,因为工程师们很快发现还有几个非常严重的问题。其中的一个问题是:他们还没有一个适合于Baran所设想的网络环境的操作系统。 命运在这里起了很重要的作用。有一帮研究者正在开发一个不著名的操作系统。他们的工作——几乎与ARPANET的发展同步——将永远地改变这个世界。这个操作系统被取名为UNIX。 UNIX的产生:1969~1973年 在1969年(ARPANET建立的同一年),一个名为Ken Thompson的来自贝尔实验室的人(同时还有Dennis Ritchie和Joseph Ossanna)开发了UNIX的第一个版本,它所用的硬件是DEC公司的PDP-7,而软件则是Thompson自己开发的。 Thompson的UNIX系统与现在的UNIX系统毫无相同之处。例如,现在的UNIX是一个多用户系统(换句话说,许多用户可以同时在同一个UNIX系统下上机)。相反,Thompson的第一个系统原型是一个单用户系统,并且仅有一些梗概性的功能。在这里,我应该定义一个术语“梗概”。 当我们想到一个操作系统时,我们很可能想像它有一些基本的工具、文本编辑器、帮助文档、窗口系统和网络工具等等。这是由于现在,面向最终用户的系统已经十分复杂,并且强调友好的用户界面设计。可第一个UNIX系统与此毫无相同之处。它实际上只有一些最重要的操作工具。如果你处于Ken Thompson的位置,那么,你在实现打的刚才提到的那些复杂程序之前,首先得面对一个更实际的任务:启动系统。 Thompson最终使他的UNIX系统启动了。当然,在这过程中他克服了许多困难。其中一个是他们使用的编程语言并不适合这个任务,但命运再次在其中扮演了十分重要的角色。几乎是同时,贝尔实验室的其他研究者(Dennis Ritchie和Brain Kernighan)创建了一种新的编程语言——C语言。 C语言 C语言常用于编写语言编译器和操作系统。我在这里讲到C语言,是因为它极大地影响了Internet的发展。这里所讲的就是其原因。 今天,几乎所有的用于Internet上的与通信有关的程序都是用C编写的。实际上,UNIX操作系统(它构成了Internet的底层结构)和TCP/IP(在网上传输数据的一组协议)都是用C来开发的。如果没有C语言,那么像我们今天所看到Internet可能永远也无法出现。 C语言的流行基于下列因素: ·C语言很小但很高效 ·C代码容易在不同的操作系统之间进行移植。 ·学习C语言很容易,也很快。 但当贝尔实验室的研究人员计划用C语言来重写UNIX系统时,他们只看到了上面的第一个因素。这就是他们要用C重写UNIX的真正原因。Thompson和Ritchie合作,把UNIX系统移植到DEC的PDP-11/20上。从这时起,UNIX经历了巨大的发展。在1970年~1973年间,UNIX几乎完全用C重写了一遍。这是一个巨大的进步,它消除了原始UNIX系统中的大量错误。 Internet的形成期:1972~1975年 简单地说,我们不能只关注UNIX和C语言的发展,因为在1972年~1975年,在其他领域又有了大发展。这些发展充分表明了怎样和为什么要选用UNIX作为Internet操作系统。 在1972年,ARPANET已经有了40台主机(如用今天的观点来看,这个规模小于许多局域网)。就在这一年,一个来自名为Bolt、Beranek和Newman公司的小伙子——Ray Tomlinson永远地改变了Internet通信。Tomlinson创建了电子邮件。 Tomlinson的发明可能是那10年中计算机领域内惟一最重要的创新。电子邮件允许简单、高效和便宜的通信。它很自然地成为州际间不同技术的研究人员进行相互协作的重要工具。因为一个邮件可以发给许多收件人,故一些想法可以很快地实现。从那时开始,网络开始活跃了。 另一个主要的发明是在1974年,Vinton Cerf和Robert Khan发明了传输控制协议(TCP)。这个协议用一种新的方式在网络中传输数据:它一位一位地在网络中传输,然后在另一端装配成一条完整的信息。 注意 TCP是今天Internet所使用的一个基本协议。安发展于70年代的早期并最终被集成到伯克利版的UNIX系统。从此以后,它就成为一个Internet标准。今天,几乎所有的与Internet相连的计算机都在运行某种形式的TCP。 到了1975年,ARPANET已经是一个功能完整的网络了。它的所有准备工作都已经完成,已经到了美国政府宣布它的价值的时候了。那年,ARPANET的控制权转到了一个专门的组织手中,该组织的名字是联邦国防通信委员会(United States Defense Communicatons Agency,它后来又更名为国防信息系统委员会(Defense Information Systems Agency)。 只剩下为ARPANET选择一个官方承认的操作系统了。最后的选择是UNIX。选择UNIX的原因是其他的操作系统太复杂。下一节,我们将详细讨论其中的原因。 UNIX时代的到来 在1974年到1980年期间,UNIX的源代码被分发到全国的各个大学。正是这一点,而不是其他的原因,造就了UNIX的成功。 首先,那些研究机构和学术机构几乎是立即就喜允上了UNIX。因此,它被用于许多教学实践之中,这种做法对商业界有直接的影响,正如Mike Loukides(O’Reilly&Associates的编辑,UNIX方面的权威)所说: “学校产生了大量的十分具有竞争力的搞计算机的学生(也就是系统程序员),他们已经精通UNIX。因此,读者可以“买”一个现成的程序员,而不必再对他们进行针对某种陌生操作系统的培训。” 同关,由于源代码是免费分发给各大学的。因此,学生可以在开放的情况下对UNIX进行开发。这 种开放性使得UNIX很快地被移植到其他的机器上,惟一的后果是增加了它的用户基础。 注意 由于UNIX系统已经广为人知,并很易得到,所以系统中安全方面的缺陷也广为人知。这对系统的所有者而言是一个尖锐的矛盾。那些软件所有者的供应商除了向极个别人公开源码以外,不会公开他们的代码,这使许多安全问题到现在也没有个结果。 UNIX还在不停地扩大用户群。到了1978年,AT&T决定对UNIX操作系统商业化,并要求用户有许可证(毕竟,是它首先搞出了这个产品)。但这给计算机通信界带来了巨大的震动。其结果是,作为一个极好的创建完全独立性的例子,加州大学伯克利分校创建了自己版本的UNIX。作为殃代许多商业UNIX基础,伯克利风格具有巨大的影响。 总之,之所以选择UNIX是有很多理由的。其中有: ·UNIX是一个发展中的标准。 ·UNIX是一个开放的系统。 ·UNIX的源代码是公开的,可以进行研究。 ·UNIX具有强大的网络特性。 UNIX和Internet的共同发展 一旦选择UNIX作为Internet的操作系统,UNIX系统中的优点就融入到Internet的设计之中。这样,从1975年以来,UNIX和Internet就一直共同发展。在此期间,许多大的软件和硬件供应商也发布了他们自己版本的UNIX。HP-UX
许多UNIX版本运行在称之为工作站的高性能机器中。与PC机相比,工作站在几个方面有不同之处。首先,工作站拥有高级的硬件设备因而它远比PC机昂贵。部分原因要归结于工作站的产量比较少,而PC机则是大量生产,并且生产厂商总是想方设法降低它的成本。这样,一个购买新主板的顾客极有可能得到有缺陷的硬件。其次,工作站通常在技术方面比PC机先进得多。例如,在1980年,随机的声卡、Ethernet网卡和SCSI卡已经是工作站的标准配置。实际上,ISDN刚出来不久就被集成到了主板之中。 Linux是一个有趣的UNIX版本。它被设计为在PC硬件上运行,并可以免费使用。这些因素结合起来,再加上Linux的可靠性,使得它成为一个重要的Internet服务器平台。 注意 工作站中的技术优点并不总是马上就显现出来的。通常,工作站的强大功能在于它的内部,是眼睛看不出来的。举例来说,许多工作站有着极高的吞吐率——它能掩盖较慢的网络连接速度和增强图形处理的效果。实际上,现在SGI和Sun公司所造的机器的吞吐率已经大到了不合理的地点——每秒种数千兆的字节。 高性能导致了价格的昂贵。通常, 一台工作站的价格达5位数甚至6位数(以美元计)。对于一个普通的用户来说,这样的价格是无法承受的。相反,PC机硬件和软件的价钱便宜,容易购买,并且配置简单,因而使用广泛。然而,在最近几年里,工作站的价络已经大大地下降了,现在仅仅比PC贵一点。 由于UNIX与Internet相关,故我们这里只关心UNIX。读者也能猜到,这种关系十分紧密。这是因为美国政府的Internet发展计划的实现是基于UNIX平台的,而且UNIX已经包含了创建网络所需的所有程序包。同时还没有其他的操作系统像UNIX那样明确地被设计成适用于Internet。 在继续下一步之前,我们不妨先对UNIX进行一番浏览。 UNIX的基础特征 现代的UNIX系统运行在完全不同的硬件上面,其中包括IBM兼容机或Macintosh(苹果机)。UNIX系统的安装与其他操作系统差异不大。大多数供应商提供CD-ROM方式。若在工作站上安装,那么可从CD-ROM启动器后开始安装。在安装过程中,需要由用户来配置一些选项,然后由安装程序自动完成余下的工作。在一些硬件平台上,可能需要有一张与CD-ROM配套的软盘来启运机器,然后开始安装。 同样,启动UNIX也与启动其他操作系统类似。启动例程快速检测机器中已有的硬件设备和内存,并启动重要的系统进程。在UNIX中,启动程序一般要启动的一些公用系统进程包括: ·电子邮件服务 ·一般网络服务 ·登录和系统管理服务 系统启动后,将会出现一个登录提示,要求用户提供用户名和口令。当登录完成后,用户就进入到一个Shell环境之中。 注意 Shell是一个环境,在该环境中用户可以输入并执行命令。Shell解释器可以把命令转换成机器语言使之得到处理。例如,MS-DOS的Shell是Command.com。用户通过输入命令与Shell进行交互(如命令DIR将列出目录的内容)。从这一方面来说,至少在表现形式上,UNIX与MS-DOS或多或少地有相似之处。所有的命令都通过Shell来输入,而命令的输出除非有特别说明,否则都输出在监视器上。 在UNIX中完成对目录的浏览与在DOS系统中完成同样的工作十分相似。DOS命令 等价的UNIX命令 参考 要学习更多的有关UNIX命令的基本知识,请到站点http://www.geek-girl.com/Unix-help/。这个文档是一些UNIX知识的集锦。若读者希望有一本UNIX的参考书,那么,我就向读者推荐《UNIX Unleashed》(UNIX揭秘)(ISBN 0-672-31411-8)。这本书为读者使用这个流行的操作系统,提供了许多有用的提示和技巧。 UNIX上运行的应用程序 在UNIX上运行着各种不同的应用程序,其中有些是用于科学研究和人工智能方面的高性能程序。当然,并不是所有的UNIX应用程序都是十分专业化的。一些大众的商务软件也运行在UNIX平台上,有Adobe PhotoShop、Corel WordPerfect以及其他一些PC机上十分常见的软件。 总而言之,现在的UNIX与其他任何平台一样,窗口系统的趋势是把越来越多的应用程序集成到它的工具包中。这些程序包括文件管理器、文本编辑器、邮件工具、时钟、日历、计算器以及一些其他有用的东西。 在UNIX平台上还有丰富的多媒体软件,包括电影播放器、CD工具、数字音响的录音设备、双路照像系统、多媒体邮件以及其他一些有趣的软件。可以这样说,你所能想像到的东西都有为UNIX平台而编写的软件。 UNIX与Internet安全的关系 UNIX安全是一个十分复杂的领域。有人说UNIX本身存在着不一致性,即使UNIX成为超级服务器平台的东西同时又使它最易受到攻击。UNIX被设计成为一种最基本的网络操作系统,它为用户提供了远程执行几乎所有应用程序的能力(例如,UNIX允许用户在一台机器上执行另一台机器上的任务,而这两台机器可能相距几千公里。)从这点上说,在默认情况下,UNIX的远程服务可以接受世界上任何一个地方的连接。 而且,UNIX是一个开放的系统,它的源代码是可以公开得到的。因此,就像研究者可以得到源代码来研究它的弱点一样,那些计算机罪犯、黑客和其他对现状心怀不满的人同样也可以做到。但UNIX作为一个历受时间考验的成熟的操作系统,已经在安全方面采用了许多先进的措施。这些先进技术(其中有些已经在操作系统的历史中提到过)包括: ·加密口令 ·严格的文件和目录访问控制 ·系统级的认证过程 ·高级的登录工具 因此UNIX运行在许多有安全要求的环境中。现在已经有数百种用于UNIX系统安全程序。其中有许多在Internet上是免费提供的。这些工具基本上可以分成四类: ·安全审记工具 ·系统登录工具 ·入侵检测工具 ·加密工具 其中有些审记工具可以自动地检测系统中的安全漏洞。这种检测可以知道哪些是易受攻击的,而哪些则是可以导致安全漏洞的常见的错误配置。这样的工具用于大范围的网络检测,故它也可以用于检一个给定网络中的不同机器(如是需要的话,成百上千的机器也可以)。这些工具的一大优点是可以自动确定安全隐患的基线。但是,同时这些工具需要承担一定的责任,因为它们也为那些要袭击它们的破坏者提供了强大的功能。这些破坏者一样可以容易地得到这些工具。 系统日志工具记录了用户的活动情况和系统消息。这些日志以纯文本的形式或被组织成一个或多个数据库格式。在任何UNIX安全工具箱中,登录工具都是一种主要的资源。通常,由日志工具产生的日志信息来形成一些基本事件,以创建一个能防止黑客的外壳。但是,详细的系统日志信息将极大地浪费磁盘空间和带宽。 入侵检测工具是指能自动地检查可能是非法入侵操作的程序。在某些方面,入侵检测工具可以看做是一种具有智能的日志工具。它们的区别是日志信息的产生、分析和作用是实时的。 最后,加密工具使得数据可以被加密。数据也许在硬盘上就被加密了,使得其他人不能读数据。数据也可能在通过Internet发送时被加密,使得人们不能截取并读取传输数据。 尽管有些高级工具,UNIX的安全仍不尽人意。UNIX是一个庞大和复杂的操作系统,要雇佣一个真正的UNIX的安全专家花费是十分昂贵的。因为,尽管这样的人并不少,但他们中的绝大多数已经在公司中占据了重要位置。其结果是即使只是在那一方面做顾问也成了一个不错的主意。 继续:90年代的Internet 这样,我们进入了90年代。那时候,Internet的使用者是军方和一些学者。偶尔上网的用户估计在数万左右。那时,网络由国家科学基金会(NSF)管理,这是一个对网络使用作出严格限制的机构,直截了当地规定严禁把Internet用于商业目的。 这把NSF提升到了一外独一无二的位置上。虽然Internet的用户界面并不友好(所有的访问均采用命令行方式),但网络的用户数量增加很快。主机的数量已经增长到30万个。在几个月之内,第一个可以自由访问的Internet服务器就出现了。研究者们面临着不可改变的现状。其实这是人类扫荡电脑的前夜。 在这期间人们对费用进行了辩论(运行Internet主干网需要大量的资源),因此,在1991年,NSF就放弃了Internet的管理。这就为商业机构取得对Internet带宽的控制打开了道路。 但用户的数量没有因此而大大增加。访问仍然是基于命令行的,这对于普通用户来说实在是一种恐惧。正是在这时候,发生了一件非同寻常的事件,它不仅仅改变了Internet的历史,而且改变了整个世界:明尼苏达大学发布了一个名为Gopher的软件。Gopher是第一个采用GUI环境(图形用户界面环境)的Internet浏览工具。不久以后,WWW(万维网)浏览器也随之产生了。 1995年,NSF不再是Internet的管理者。当美国各地的公司纷纷连到主干网的时候Internet几乎是立刻就被完全商业化了。在这些公司之后,公众在一批新的浏览器如NCSA Mosaic、Netscape Navigtator和Microsoft Internet Explorer的鼓舞下,也纷纷上网。这时,一个人只要有一台计算机、一个窗口系统、一个鼠标就可以访问Internet了。 随着大量的用户涌向Internet,Internet服务提供者(即ISP)就在各种出现了。他们是一些小的地方计算机公司,专门为用户访问公共网络的提供网关服务。每月交20美元的服务费,任何人只要有一台计算机和一个调制解调器就可以进行Internet连拉了。但不久以后,那些巨无霸公司(像美国在线和Prodigy等)就加入其中。这使得Internet的用户急剧增长。 90年代后期,在商业方面使用Internet的人员大量增加。网上购物成为现实,每天有数百万美元通过Internet花出去,要不就是几十亿美元。新的公司,比如Yahoo!和Amazon,在仅仅几年内就无处不在,成为巨大的公司。然而,带宽的不足成为想要充分利用Internet的人们的障碍。 将来 现在有很多有关Internet下一步发展的计划,但绝大多数是由商人提出来的,他们渴望推销更多的带宽、更多的硬件、更多的软件,还有更多的广告。相当多的人现在愿意为高速的Internet连接付费。这样就出现了两个技术:DSL (Digital Subscriber Line,数字用户环路)和电缆调制解调器。 DSL是一种高速的电话线路,速率可以从128Kbps到超过1Mbps。DSL的问题是它的最大速度取决于与电话公司交换机的距离。如果距离非常远,就根本无法获得DSL服务。并且,成功安装DSL线路是有挑战性的,要使线路有效工作经常要花几个星期的时间。 作者曾经在相同的基础上使用过DSL和电缆调制解调器,作者的观点是电缆调制解调器要高级得多。电缆调制解调器使用有线电视线路。然而,有些人所处的地方并没有有线电视,一些有线电视线路提供商也没有提供Internet接入。 DSL提供商声称邻居会降低电缆调制解调器访问速度,因为大家共享同样的线路。仅仅是设计不好的电缆系统才会出现这个问题。实际上,DSL在从交换机到ISP之间才会出现这样的问题。因此,DSL提供商的这个理由是不对的。高速的Internet连接要靠提供商,而不管使用的是DSL还是电缆。 这些技术一直在发展,人们使得他们的计算机24小时在线,这样就产生了新的安全问题。 另外,许多人认为这些高速的技术将在Internet上实现实时的音频和视频播放。 虽然像样的音频播放通常是可能的,但即使在DSL和电缆上的视频播放还是有问题的。经常有停顿,并会以牺牲质量为代价。需要更快的Internet技术才能把通过Internet观看电影变为现实。 但无论如何,Internet正成为许多人生活中的重要组成部分。银行和其他金融机构现在开展网上银行业务。在5年内,这将会取代现在标准的银行业务。 另外,许多股票交易已经从传统的经纪人转移到Internet上。老板的一个共同问题是他们的一些职员要花费大量的时间来检查股票价格,而网络使他们可以容易得到当前的报价。由于,Internet日交易量也迅猛增长,因为现在进行交易容易得多。一些人已经富有了,而其他人则变得贪婪,想快速、容易地赚钱。 小结 本章简单地介绍了Internet的历史。这些是理解Internet安全的基础知识。
|