Archive for 十二月, 2005
什么是Selinux
介绍:
当今世界,无处不在高速互联网连接、如备有无线接入点的咖啡馆和在网上到处传播的各种黑客工具使得出于对计算机安全的考虑成为老生常谈。出于解决安全问题,NSA在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。这种体系叫做 Security-Enhanced Linux或简化为SELinux。
SELinux概览:
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
众所周知,标准的UNIX安全模型是"任意的访问控制"DAC。就是说,任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件仍到/tmp目录下,那么在DAC情况下没人能阻止他!
而MAC情况下的安全策略完全控制着对所有资源的访问。这是MAC和DAC本质的区别。
SELinux里实现的MAC允许程序在/tmp目录下建立文件,也允许这个文件按照UNIX权限字的要求对全世界可读,但是当UNIX许可检查应用后, SELinux许可检查还要进一步判断对资源的访问是否被许可。
换句话说,尽管某些UNIX文件的权限被设定为0777但是你也许仍然会被禁止读,写和执行该UNIX文件。在只有DAC的情况下,用户可以查看或更改属于他的任何文件。SELinux则可以限制每一个进程对各种资源的访问,和访问的权级。就是说当一个程序在使用含有敏感数据时,这些数据会被禁止写入那些低权级进程可读的文件中。
SELinux提供了比传统的UNIX权限更好的访问控制。
例如,管理员可以只允许一个应用程序添加记录到一个日志文件但不允许其重写或者删除该日志文件的内容。虽然ext2和ext3文件系统有一个append-only标签(使用chattr设置),但是这属性不区分某一个进程(不能在为一个访问 append-only的同时,又允许另一个进程据有完全可写的权利);另一方面,一个应用程序可以被允许在一个文件夹中建立文件和向其写入数据,但不能删除文件:这种特性是没有SELinux的普通的Linux内核所不能做到的。还有,网络应用程序可以绑定到其需要的端口上(如BIND的53端口),但不能绑定其它端口。
域-类型模型意味着在安全域中运行着的每一个进程和每一个资源(一般文件、目录文件和套接字等)都有一个与之相联系的"类型"(type)。
在这基础之上建立了一系列规则,这些规则列出了某个域可以在每一个类型上执行的所有动作。 域-类型模型的一个优点就是我们可以对策略进行分析,从而判断出哪些信息有可能外溢。在标准的UNIX环境中,用户一般可以使用ps命令来互相查看彼此的进程列表,然而这也会为攻击者提供有价值的信息。甚至就算完全阻止用户使用ps命令,信息还是会意外的或故意的泄露,其实在一个给定的UNIX环境中,哪些信息会发生泄露是无法判断的。
而在SELinux情况下,我们会有很多工具用来分析SELinux策略并判断哪些信息泄露是可能的。举个例子,假如有两个应用程序被允许向一个日志文件添加数据,且他们互相不能直接通信。那么如果一个其中进程又获得了对该日志的读权限的话,那么一个单方通信就有可能形成。
对访问/etc/shadow文件做访问限制是个很好的例子,通过该例子我们可以看出策略分析的好处。
如果你装了Fedora Core 3,并且选择了严格的SElinux策略配置,那么将会有17个域被允许访问shadow_t(/etc/shadow的type),其中有9个域据有写权利。这17个域中有2个可以从用户域(user domain)进入,他们是/usr/bin/passwd和 /sbin/unix_chkpwd(一个为无特权应用程序提供密码检查的辅助程序,比如向锁屏程序就需要使用到unix_chkpwd)。这17个域中的某些域是为一些不常见的应用程序准备的(如radius_t域就是为RADIUS服务器准备的),所以,也就是说,就算除去这个不常用的域,一般的系统中还有16个可访问的域能够访问/etc/shadow呢!
值得注意的是,Fedora发型版的SELinux策略已经变得越来越灵活;未来版本的策略也许会使何以访问/etc/shadow的域超过17个,这取决于可调节选项的实际配置。还要注意的是,17这个数字是基于严格的策略设定之后而得出的,实际上一个默认的安装会大于这个数字。
在一个没有SE的机器上,任何以root身份运行的进程都可以访问/etc/shadow文件。这意味着任何被"SETUID root"的二进制代码或以root身份运行的网络服务守护进程,它们所产生的任何安全问题都将会是灾难性的。
SELinux允许我们限制这些守护进程只访问其所需:
BIND只能在53端口提供服务、DHCP服务器可以使用原始套接字(raw network access)、DHCP客户端也可以使用原始套接字并可以改变网络接口,但是它们谁都别想访问/etc/shadow,/home,/root等等这些重要的资源。
所以,在SElinux的情况下,如果BIND受到了危害,它最多也就是发送一些伪造的报文罢了。如果DHCPD受到了危害,最坏的可能就是你的ip地址分配被搞乱。这比root权力被远程滥用好多了!
大家很清楚,一个进程可以援引另一个进程。
在这种情况下,拿DHCPD为例,DHCPD也许会尝试援引 /sbin/unix_chkpwd对密码进行强力攻击。(But even that potential vulnerability is closed):SELinux能够提供"过渡"规则,这种规则可以用来判断各种域间过渡是否合法。有了"过渡"规则以后,由用户执行的屏幕保护程序可以顺利过渡到/sbin/unix_chkpwd这样一个特权域,然而DHCPD就别想了。
上述这些限制功能可以使你对系统的状态了如指掌。如果你发现你的DHCP服务器有BUG,那你只要简单的升级DHCP服务器到新版本并且确定每一个客户端都能正常获得IP地址就可以了。可是如果没有SE的话,你还要考虑你的新服务器是否已被黑客入侵并擦除了痕迹。
SElinux 对不同的域做了严格的隔离。我以前运行一个Debian系统有两年时间,在这期间我开放了他的root密码。最近两个月我在一个Fedora系统上做同样的事情。但这两个系统已经抵抗住了很多次以root身份的攻击(见httphttp://www.coker.com.au/selinux/play.html)。(译者注:这里有一些作者对其playmachine的介绍被忽略了)
为了给RHEL4做代码测试,Fedora core 2已经尝试集成了SELinux,但是默认是关闭的。而且将来RHEL和Fedora Core的SE还会有非常大的差别的。我们计划在RHEL中,将把SELinux的策略设置的比Fedora Core要严格,我们相信这样做也符合用户的要求。未来的Fedora版本的SELinux策略将会越来越严格,但再严格也不会超过RHEL。
SELinux深入研究:
SELinux的策略数据库控制着SELinux的方方面面。它可以判断一个程序可能会运行在哪个域中,还可以说明某个域可以访问哪些资源。这种规定被叫做规则,一个典型的策略往往拥有100,000条规则。别被这数字吓坏,我们根本不必去关心它,因为当我们撰写策略时,我们可以使用高级宏,这些高级宏的一行就能生成10,000条规则。除了宏以外,还有一些工具,使用他们可以分析这些生成的规则是否能达到你对安全的要求。其实再和设置每个文件的UNIX 权限位这样的工作比起来,这100,000个规则也是相当小的工作量了。
Fedora Core 2安全策略的目标是满足大多数用户无需改动就可以工作的要求,但也有一些普通的简单的选项可以调节策略,一般都是简简单单的一行选项。比如是否允许用户通过dmesg阅读内核的日志,是否允许管理员(sysadm_r)直接通过SSH登陆或登陆图形会话,还有是否允许用户绑定TCP套接字。
那100,000个左右的规则存储在一个大约2.6MB的文件中,当系统启动时随内核一起装入内存并占用同样大小(大约2.6MB)的内核空间。 Fedora Core 3默认的strict策略有着多余290,000条规则,占用7MB的内核空间。Fedora Core 3默认的target策略有大约5,000条规则,占用150K的内核空间。
目前,SELinux并没有在内存使用方面进行优化;但现在对这些优化工作已经有了计划和一些降低内存使用的方法。如果你不打算使用某些守护进程,你可以简单的将其对应的策略文件删除以便获得占用空间更少的策略。2003年,在Ottawa举办的一次Linux讨论会上,我提交过一篇文章,那是关于我在把 SELinux移植到HP iPAQ PDA上所做的工作的文章(在http //archive.linuxsymposium.org/ols2003/Proceedings/可以获得)。
证明我可以使SELinux(且选择 strict策略)很好的工作在一台只有 64 MBs的RAM 和32 MBs 存储空间的小平台上,并且我相信我还可以使它运行在更小的平台上。针对Fedora Core2系统,我们只把目光定位在目前最常见的硬件平台,从而得出了默认的策略配置。但那些使用老机器的用户们也许会希望配置出最小限度的策略以便减少内存使用和提高性能。
在使用了SELinux的系统中,每一个进程的上下文都包含三个组成部分:一个ID(identity),一个角色(role)和一个域(domain)
ID是指这个进程的所有者,就是UNIX账户,但前提是这个账户必须被预先编译到SELinux策略中去使SELinux认识这个账户,不然的话SELinux默认地将那些未知的系统进程ID记为 system_u ,将那些未知的用户进程ID记为 user_u;角色用来判断某个处于此角色的ID可以进入哪些域,还用来防止某个处于此角色的ID进入其它不该进入的域。比如, user_r角色就不允许进入 sysadm_t (重要的系统管理域)。
换句话说就是,那些只有 user_u ID的进程只能扮演 user_r 这个角色,而 user_r 这个角色 永远不能被许可进入 sysadm_t 域。从而,那些只有 user_u 这个ID的人是别想进入 sysadm_t 域的。这些特色在缺省的Fedora Core2策略中并没有完全使用,当前我们只是把努力花在制定守护进程上,而对用户域的策略限制的很少(targeted策略没有对用户登陆做任何限制)。
一个安全上下文可以像 identity:role:domain 这样一种描述符的方式简明的表现出来。
比如,典型的系统管理上下文可以表示成 root:sysadm_r:sysadm_t 。任何可以被访问的对象都可以这样来表示。值得注意的是,"域"其实也是和一个进程相对应的一个"类型"。所以当检查某个进程是否有权向另一个进程发送信号(比如为ps命令检阅/proc文件系统)时,接受信号的进程的"域"就会充当"域-类型"模型中的"类型"的角色,从而完成"域-类型"的规则检查。即完成了进程间通信权限的检查。由于对于文件还没有使用角色这个机制,所以目前每个文件都被规定为object_r 角色(这个角色只是占个位置罢了,对策略没有任何影响)。
文件的ID就是文件创建者的ID。constraints 策略源文件中使用这个方式来判断一个访问是否有权改变某个文件的上下文描述符。除非被访问的文件的描述符中的ID字段和访问该文件的进程的所有者ID字段相同,无论是改变前还是改变后,否则进程无权改变一个文件的上下文描述符。
例如,一个拥有 rjc:user_r:user_t 描述符的进程可以将一个拥有 rjc:object_r:user_games_rw_t 描述符的文件的描述符改为rjc:object_r:user_games_ro_t ,但是它无权改变一个拥有 john:object_r:user_games_rw_t 描述符的文件的任何属性。
要想查看当前运行的进程的上下文描述符,可以使用ps命令并加入 "-Z"选项,如例一:"ps ax -Z的输出":
PID CONTEXT COMMAND
1634 root:user_r:user_t -bash
1662 root:user_r:user_t ps ax -Z
Example 1. Example Output of ps ax -Z
要想查看目录下的文件的上下文描述符,可以使用ls命令并加入 "-Z"选项,如例一:"ls -Z的输出":
drwxr-xr-x root root system_u:object_r:bin_t bin
drwxr-xr-x root root system_u:object_r:boot_t boot
drwxr-xr-x root root system_u:object_r:device_t dev
drwxr-xr-x root root system_u:object_r:etc_t etc
drwxr-xr-x root root system_u:object_r:home_root_t home
drwxr-xr-x root root system_u:object_r:root_t initrd
drwxr-xr-x root root system_u:object_r:lib_t lib
drwx—— root root system_u:object_r:lost_found_t lost+found
drwxr-xr-x root root system_u:object_r:default_t misc
drwxr-xr-x root root system_u:object_r:mnt_t mnt
drwxr-xr-x root root system_u:object_r:usr_t opt
?——— ? ? oracle
dr-xr-xr-x root root proc
drwxr-x— root root system_u:object_r:user_home_dir_t root
drwxr-xr-x root root system_u:object_r:sbin_t sbin
drwxr-xr-x root root selinux
drwxr-xr-x root root system_u:object_r:default_t srv
drwxr-xr-x root root sys
drwxrwxrwt root root system_u:object_r:tmp_t tmp
drwxr-xr-x root root system_u:object_r:usr_t usr
drwxr-xr-x root root system_u:object_r:var_t var
Example 2. Example Output of ls -Z
值得注意的是:对于那些没有指定上下文的文件(一般是指那些不支持rwx标签的文件系统,如/sys、/proc、/selinux),ls命令就不会显示其上下文。对于不能用stat命令查看当前状态的那些文件系统。ls命令返回"?———",其所有者和所有组也被标记为"?",同样的,他的上下文也不会显示。
如例三所示,id命令将返回当前shell的上下文
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:user_r:user_t
Example 3. Example Output of the id Command
如果你的SELinux系统使用了strict 策略,你会发现应用程序做一些不正常的事情是很容易发生的。你经常会发现某些程序中会有些bug,这些bug使程序做那些你的SELinux策略不允许其做的其它事情。
SELinux要求进程的上下文只有在被执行的"那一刻"才允许改变。新进程的域和角色信息可以从exec系统函数的上下文和文件类型中自动获得。进程也可以在执行exec之前被指明上下文。这些过程自然受SELinux策略的控制,因为ID,角色和域都受SELinux策略的控制。
Fedora中策略的实现:
从 Fedora Core 3 开始,SELinux的策略数据存储于/etc/security/selinux/X/src/policy/目录下(X指你选则的策略,可以是 "strict" 或者 "targeted")。在这个目录中,你可以使用"make load"来编译并装在策略。也就是用那个命令将策略编译成二进制格式并装在到内核中,并立即生效。除了装如内核,该命令还将策略的二进制格式存储到 /etc/selinux/X/policy/policy.YY文件中,这里X指你选则的策略,可以是"strict" 或者 "targeted",YY是策略的版本号(Fedora Core 3支持最新的版本是18)。这是为了在系统开机的第一时间,init可以迅速装载策略到内核。/etc/selinux/config这个配置文件用来告诉init那些策略需要装载。
当你启动一个SELinux时,init所做的第一件事就是挂载/proc文件系统,并判断SELinux是否被激活。init通过selinuxfs文件系统类型来判断内核中是否有SELinux,如果内核中没有SELinux或者内核参数中 selinux=0 这一项,那么系统就会以一种叫做 non-SE的状态被继续引导启动。如果发现了SELinux,那么/selinux虚拟文件系统将被创建,然后,init通过 /selinux/policyvers来检查内核所支持的SELinux版本。最后,相应的策略数据 /etc/selinux/X/policy/policy.YY就会被装在到内核中去了。
当策略被装载完之后,所有正在运行着的进程(指的就是init和内核的所有线程)都将被指定 system_u:system_r:kernel_t 这样一种上下文(内核线程其实无论在什么时间被创建,其上下文都是system_u:system_r:kernel_t )。当init装载完策略之后,它还要重新执行自己。策略中有一个规则叫domain_auto_trans(kernel_t, init_exec_t, init_t)。他的意思就是当 kernel_t 域执行了一个据有 init_exec_t 类型的可执行文件(如/sbin/init),那么该执行文件对应的进程的域就会自动过渡到 init_t 域(这是/sbin/init正确的所在域)。当这些都完成之后,init就继续完成那些通常的任务来完成机器的启动。内核线程自始至终都以 kernel_t 这个类型运行。
文件和目录的上下文存储于扩展属性当中 (XATTRs)。更多关于XATTRs的信息请参考attr(5), getfattr(1) 和 setfattr(1)的manpage。
简单的说,一个XATTR就是硬盘上某个文件的所有权,它由文件名和其它一些信息组成。对于每个 persistent 文件系统来说,它的每个文件或目录的SELinux上下文就存储在 security.selinux属性当中。虽然/proc文件系统不是persistent 文件系统,但SELinux还是在幕后为其文件和目录做了上下文标记,只是不能用getxattr获得罢了。和它对比,devpts文件系统(应用于/dev/pts Unix98伪终端)中各个文件(各个伪终端)的上下文是可以通过getxattr来获得的,并可以通过 setxattr 来更改每个设备的上下文(以便sshd等类似程序可以更改tty设备的上下文)。对于那些拥有固定存储的文件系统(ext2, ext3, Reiserfs, XFS, vfat, 等等) 有两种选择用于设定文件上下文:
第一种:文件系统的类型就规定了其内部每一个文件英据有统一的上下文;
第二种:使用 XATTRs 为每个文件标记不同上下文。例如,在iso9660(CD-ROM)文件系统中的每一个文件的上下文都是system_u:object_r:iso9660_t ,这被称做 genfs标记。
Ext2, ext3 和XFS支持 XATTRs 而且 Fedora 系统也支持安全标记名字空间,所以Fedora默认使用 XATTRs 来标记文件的上下文,但这也是可选方法之一。因为 直到 Reiser4发布之前 ,Hans Reiser对 支持XATTR没多大兴趣,所以Fedora的 ReiserFS 文件系统不能很好的支持SELinux标记操作。也就是说,使用 ReiserFS 文件系统作为SELinux的根文件系统是不可能的事情。
XFS有一个与XATTRs相关的重要的问题:如果XATTRs不能被装入超级块(inode),那么它们就会被装入数据块,每一个超级块就要使用一个数据块用来装 SELinux XATTR 。建立XFS时,mkfs.xfs在默认情况下创建的数据块大小为4096,超级块大小为256(要是用于安装 SELinux XATTR ,大约缺少30字节)。这就是说,默认的XFS文件系统中,每一个超级块要占用4096字节用来装载 SELinux XATTR ,这对于磁盘空间来说是严重的浪费!当你使用"-i size=512"选项创建一个XFS文件系统时,超级块的大小就变成了512字节,这样就可以将SELinux XATTR 装入超级块,即节省了空间,又提高的性能。512字节的超级块也有可能给其它操作带来好处。所以,如果你使用XFS并且打算将来使用 SELinux 的话,将超级块的大小规定为512字节肯定是个好主意。
如果你使用的是较新的内核(如最新的Fedora内核或标准2.6.8.1内核)并且使用最新的mount工具,那么当你挂载一个文件系统时,有一个选项可以用来为整个文件系统指定上下文标签。比如你要挂载的文件系统是一个邮件池(mail spool),你可以使用"-o context=system_u:object_r:mail_spool_t"选项来挂载他,这样会将其内部的全部文件的上下文标记为 system_u:object_r:mail_spool_t。如果你的这个邮件池很大,而且还是XFS文件系统,这个方法还可以避免上一段所讨论的 inode大小的问题。甚至对于ext3那样的对XATTRs 开销较小的文件系统来说,使用context=选项挂载文件系统也会进一步减少开销,也可以避免为已经建立的文件系统重新设置 SElinux上下文(如果文件系统中文件较多的话,会浪费很长的时间)。
Fedora的缺省SELinux策略:
在Fedora Core 3系统中,缺省的策略是"targeted "策略。对于此种选择人们议论纷纷,问题在于我们希望能使尽可能多得人使用SELinux。如果人们觉得这玩意太可怕并且妨碍了人们做他们想做的事,那么人们会把它关掉。所以我们在这个时候宁愿为大多数人提供适量的保护策略,也不会为了少部分人而提供严格的保护策略。缺省的Fedora Core 3安装会激活 SELinux 并使用"targeted "策略,你也可以通过运行 system-config-securitylevel 这个程序将策略改为更加严格的 "strict "策略。
如果你安装了策略的源文件包,那么策略的源文件就在/etc/selinux/X/src/policy/目录里面(X指你选则的策略,可以是 "strict" 或者 "targeted")在这个目录下有一个叫作domains/program/的子目录,里面为每一个守护进程对应了一个.te文件。你可以删去那些你不使用也不打算使用的守护进程所对应的.te文件,从而减少内核内存空间的使用,并提高性能。比如,你的系统没有BIND服务,你完全可以删掉 named.te 文件。然后如果你使用"make load"命令重新装载策略到内核的话,内核对内存的使用量就会减少。然而也要小心,如果你误删了其它文件,那么你的系统将不能正常启动进入 enforcing模式。所以目前,这种调节最好还是由内行来做。
刚开始接触SElinux的你,要注意一个内核参数,它用来决定你系统的内核运行于 强制(enforcing )模式还是自由(permissive)模式,那就是"enforcing"参数。在自由模式下SELinux只是记录他该做什么,而事实上并不做任何动作。在强制模式下SElinux会来真格的。如果你的策略有错误,在强制模式下系统可能会阻止你登陆!所以正常情况下你应改在启动时传 enforcing=1 给内核,当你的SELinux策略有问题时,你可以临时传enforcing=0给内核来查错。在/etc/selinux/config这个init的配置文件中相应的有一个选项,通过设置它,也可以使系统进入自由模式。
如果你打算中止使用SELinux,你可以使用 selinux=0 这个内核参数。这会关闭SELinux的全部功能,就好像你的内核并没有把SElinux机制编译进去一样。所以当系统出了问题时,比如系统崩溃,有些人就用此方法进行理事的恢复工作,但是我并不赞成这种做法。当你临时使用 selinux=0 进入系统后,你所建立的任何文件将不会拥有SELinux上下文标记。这就意味着,如果你替换了诸如/etc/passwd 或/etc/shadow等重要文件,那么下一次进入SELinux时,系统就不会正常的工作。这不是严重的问题,当你从CD引导时,做系统恢复时,或使用一个不支持 XATTRs备份软件恢复系统时,同样的问题也会发生。这个问题虽然可以通过为受到影响的文件系统重新标记上下文来解决,但是使用 enforcing=0 来代替 selinux=0 不是更好吗?
你可以编辑/etc/selinux/config来临时关闭SELinux。
Fedora Core 2的释放是SELinux一次重要的发展。他是第一套提供对SELinux完整支持的主流Linux发行版本。Fedora Core 3 也是一个重要的里程碑,因为他是第一套将SELinux作为默认安装选项的Linux发行版本。
Red Hat Enterprise Linux 4 见会跟随 Fedora Core 的开发步伐,其对SELinux的支持也会得到进一步的发展。当 RHEL 4 发布时,她将会从 Fedora Core 系统和在Fedora 上学习SELinux的用户那里获得非常大的益处。
你可以在 irc.freenode.net的 IRC服务器上的#fedora-selinux频道找到对SELinux的支持。还有 Fedora SELinux邮件列表 http://www.redhat.com/mailman/listinfo/fedora-selinux-list 。我经常挂在#fedora-selinux上面,并也订阅了邮件列表,我期望着在那里回答您提出的任何问题。
更多关于SELinux的资料:
NSA site for Security-Enhanced Linux: http://www.nsa.gov/selinux/
Fedora Core SELinux FAQ: http://people.redhat.com/kwade/fedora-docs/selinux-faq/
IRC channel for SELinux in Fedora Core: irc.freenode.net, #fedora-selinux
Mailing list for SELinux in Fedora Core: http://www.redhat.com/mailman/listinfo/fedora-selinux-list
SELinux play machine: http://www.coker.com.au/selinux/play.html
用PHP生成RSS2.0格式的XML
上次贴出过一个生成RSS的php class 可以生成RSS1.0格式的XML,经过我修改后,制作了这个生成RSS2.0版本的。
用法没有改变,可以实现平滑过渡。
修改主题
经过我2个小时的工作(包括工作中喝茶 睡觉 上厕所的时间)总算根据原先drupal自带的模版改成了现在网站的模版,定名为“Zero".
drupal的模版大部分的格式是基于css,相对于一般的html改起来是有一定困难的,单单是调试一下字体大小就耗费了我不少时间,但还好量不大。
本站的logo是在www.makepic.com 动态生成的,省去了不少时间。
笑傲江湖版SWITCH 和ROUTE的故事(转发自思科在线)
令狐冲十四岁那年进入华山,那年岳灵珊八岁,岳不群白天给两人指点剑法,晚上令狐冲给小师妹讲故事哄她入睡。后来,岳不群陆续收了劳德诺,陆大有等徒弟, 又忙于修炼紫霞神功,就没有时间指点徒弟。于是他做了一个hub,从此华山派实现教育电子化,岳不群在网上同时给每个徒弟授课,这种方法很快在五岳剑派内 部推广。为了在五岳剑派之间互连,嵩山派掌门左冷禅研制出路由器,使得五岳剑派之间可以互联互通。
令狐冲晚上就通过网络给小师妹讲故事。
很快,岳灵珊已经十六岁,变成了一个亭亭玉立的小姑娘了。令狐冲发现自己的目光总是不由自主的在小师妹身上停留,每次和小师妹在一起的时候,总能听到自己 强烈的心跳声,经过了一段时间的茶饭不思后,终于有一天晚上,令狐冲在网上给小师妹发了一首情意绵绵的诗:你是风儿我是沙,你是蜜蜂我是花,你是梳子我是 头发,你是牙膏我是牙刷。
第二天,华山派开例会,令狐冲怀着忐率不按的心情来到了会议室,发现小师妹红着脸躲在师父后面,而其它的师弟都在偷偷朝自己笑,开完会,一个调皮的师弟就 过来叫牙刷师兄,赶紧蒙面逃走。问陆大有,才知道是劳德诺用一个叫netxray的工具把自己在网上的大作全抓了出来。令狐冲悔恨万分,于是,闭门研究 rfc,成功的研制出lanswitch。它能够识别设备mac地址,这样,令狐冲发送给小师妹的数据只有她一个人能够收到。令狐冲晚上可以在网上放心的 给小师妹讲故事,偶尔手痒还能敲几句平时心里想又说不出口的话来过瘾,然后,红着脸想象小师妹看到后的表情。
lanswitch是二层交换设备,它可以理解二层网络协议地址mac地址。二层交换机在*作过程中不断的收集资料去建立它本身的地址表,这个表相当简 单,主要标明某个mac地址是在哪个端口上被发现的,所以当交换机接收到一个数据封包时,它会检查该封包的目的mac地址,核对一下自己的地址表以决定从 哪个端口发送出去。而不是象hub那样,任何一个发方数据都会出现在hub的所有端口上(不管是否为你所需)。这样,lanswitch在提高效率的同 时,也提高了系统的安全性。
接下来的一年,岳不群大量招收门徒,华山派得以极大的壮大,所使用的lanswitch也多次级连。但门徒中难免鱼龙混杂,当时华山派一批三、四代弟子崇 拜万里独行田伯光,成立了一个田协,经常广播争论比赛八百米还是一千米很合理的问题;第三代弟子中有一个叫李洪至的,每天在华山派内部广播发轮大法;更让 令狐冲受不了的是,随着师父年龄的增大,变得越来越罗嗦,每句话都要重复二十遍,然后在网上广播。令狐冲想和小师妹,陆大有等人专门使用一个广播域,但如 果另外使用一个lanswitch的话,师父肯定不会同意,于是,他修改了lanswitch的软件,把小师妹,陆大有等人和自己划成一个虚拟网 (vlan),其它人使用另外的vlan,广播包只在vlan内发送,vlan间通过路由器连接。岳不群也深受田协,李洪至其害,但为与左冷禅抗争,用人 之际,只能隐忍,知道了这件事,大为高兴,但仍为令狐冲私自修改软件一事,罚他到思过崖面壁一年,一年之内不得下山。在华山派内重新使用vlan进行子网 划分,分为五个子网,师父和师娘,小师妹还有林平之在一个vlan,发轮功弟子用一个vlan;田协弟子用一个 vlan,其它弟子用一个vlan,而思过崖上也有单独的一个vlan。令狐冲到了思过崖,并不难过,终于,世界安静了,依靠左冷禅的路由器,令狐冲还可 以每天在网上给小师妹讲故事,聊天。
局域网交换机的引入,使得网络节点间可独享带宽,但是,对于二层广播报文,二层交换机会在各网络节点上进行广播;同时,对于二层交换机无法识别的 mac地址,也必须在广播域内进行广播。当多个二层交换机级连时,二层交换网络上的所有设备都会收到广播消息。在一个大型的二层广播域内,大量的广播使二 层转发的效率大大减低,为了避免在大型交换机上进行的广播所引起的广播风暴,需要在一个二层交换网络内进一步划分为多个虚拟网(vlan)。在一个虚拟网 (vlan)内,由一个工作站发出的信息只能发送到具有相同虚拟网号(vlanid)的其他站点,其它虚拟网(vlan)的成员收不到这些信息或广播帧。 采用虚拟网(vlan)可以控制网络上的广播风暴和增加网络的安全性。不同虚拟网(vlan)之间的通信必须通过路由器进行。
但是幸福永远是短暂的,接下来总是无尽的烦恼。随着整个五岳剑派势力的增大,路由器的速度越来越慢。令狐冲发现每次给小师妹讲故事时,小师妹的回答总是珊 珊来吃,而且话也很少,总是"嗯","噢"或者"我听着呢"。终于有一天,路由器再也ping不通的,令狐冲三天没有得到小师妹的消息,对着空空的显示 屏,再也忍不住,在一个下着雪的晚上,偷偷下山找小师妹,到了小师妹窗前,发现小师妹正在网上和小林子热烈的聊天,全没注意一边的自己,内心一阵酸痛,回 到思过崖,大病一场。病好后潜心研究,终于有一天,做出来一个路由器,这时,令狐冲发现,此时华山派已经有了三十个vlan,路由器必须为每个 vlan分配一个接口,接口不够用,而且,两个子网内通过路由器的交换速度远远低于二层交换的速度。二层交换机划分虚拟子网后,就出现了一个问题:不同虚 拟子网之间的转发需要通过其它路由器来实现。二层交换机的不同vlan节点间的转发需要通过路由器设备来实现大大浪费了端口,而路由器的高成本,低效率又 使它无法满足大量子网情况下的三层转发需求,三层交换的概念就在这种情况下被提了出来。
这天晚上,令狐冲心灰意懒,借酒消愁,这时,一个黑影出现在他的面前,原来是一个道风仙骨的老人,正是风清扬。风清扬听了令狐冲的疑惑,说:路由器接口不 够,把路由器做在lanswitch内部不就可以了;交换速度慢,是因为路由器查找的是网段路由,而lanswitch直接查mac对应出端口,当然速度 快。为什么不能直接根据ip地址查到出端口呢?令狐冲一听,大为仰慕,但还是不明白,ip地址那么多,而且经常变化,如何能够直接查到出端口呢?风清扬 说:
"你先坐下,让我来问你,华山派有多少弟子?"
"一万六千左右。"
"你全知道他们住哪里吗?"
"不知道。"
"岳不群要你找一个不知道住哪里的人,如何去找?"
"查华山派电话号码查询系统,找到他的地址,然后去找他。"
"如果你回来后再让你找这个人,又如何去找?"
"如何…. ,查华山派电话号码查询系统,找到他的地址,然后去找他。"
"你不知道到这个人的地址吗?"
"知道,但师父说,华山派的地址那么多,而且经常变化,不用知道地址。"
"岳不群这小子,把徒弟都教成木头了!我问你,你自己认为应该如何找?"
"直接去找!"
"好!你这人还不算太苯。那你知道了一个人的地址后,是不是永远记住了?"
"有的人记住了。其它的都忘了。"
"为什么忘了?"
"因为我记不了那么多人,而且一段时间没有去找他。"
"华山派电话号码查询系统里的地址是如何获得的?"
"我在空旷处大喊一声他的名字,他听到后就会来找我,告诉我他的地址。"
风清扬又问了大把类似脑筋急转弯的问题,然后风清扬说:"现在你明白根据ip地址直接查出端口的道理了吗?等到你明白这个道理,你自然会做出三层交换机来 ",令狐冲仔细回忆了今天的话,终于明白了和二层转发由mac地址对应到出端口的道理一样,三层转发也可以直接由ip地址对应到出端口,ip地址的路由可 以通过arp来学习,同样需要老化。这样,vlan间转发除第一个包需要通过arp获得主机路由外,其它的报文直接根据ip地址就能够查找到出端口,转发 速度远远高于路由器转发的速度。抬头看时,风清扬已经走了。
一年后,令狐冲下思过崖,成功的推出quidway s8016路由交换机。实现了vlan间的互通,并且与嵩山,黑木崖等路由器实现互通。三层交换机是在二层交换机的基础上增加三层交换功能,但它不是简单 的二层交换机加路由器,二而是采用了不同的转发机制。路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,。而三层交换机的路由查找是针对流 的,它利用cache技术,很容易采用asic实现,因此,可以大大的节约成本,并实现快速转发。很多文章会提及三层交换机和路由器的区别,一般的比较是 三层交换机又快又便宜。这些话没有错,但场合是汇聚层。我们看到,在汇聚层,面向三层交换机直接下挂的主机,因为能够获得其主机路由,所以三层交换机能够 实现快速查找;而对于通过其它路由器连接多个子网后到达的主机,三层交换机和路由器的处理是一样的,同样采用最长匹配的方法查找到下一跳,由下一跳路由器 进行转发。
因此,通常的组网方式是在骨干层使用gsr,汇聚层使用三层交换机。当然,对于一个小型的城域网,也可以直接拿三层交换机组网,不需要gsr。
笔记本电脑技术名词说明
■触摸屏
电阻式触摸屏是在强化玻璃表面分别涂上两层OTI 透明氧化金属电层,两层之间用细小的透明隔离点隔开。外层OTI涂层作导电体,内层OTI涂层经过OTI涂层经过精密网络附上横直两个方向的5V电压场。 当手指接触到触摸屏的屏幕,两层OTI导电层之间形成一个接触点,控制器同时监督测电压和电容,计算出触摸的位置。
■触摸板
触摸板由一块能够感应手指运行轨迹的压感板和两个按钮组成,两个按钮相当于标准鼠标的左右键。触摸板的是没有机械磨损,控制精度也不错,操作起来很方便,初学者很容易上手。
■指点杆(Track Point)
是由IBM发明的,目前常见于IBM和Toshiba的笔记本电脑中,它有一个小按钮位于键盘的G、B、H三键之间,在空白键下方还有两个大按钮,其中小按钮能够感应手指推力的大小和方向,并由此来控制鼠标的移动轨迹,而大按钮相当于标准鼠标的左右键。
■指纹识别
笔记本电脑指纹识别系统不仅有开机保护功能,而且还具有多用户分级管理和硬盘映射功能。
■2.5G
2.5代窝技术能够增加目前2.5G网络的可用带宽。蜂窝运营商可以通过升级他们网络的软件就可使用2.5G 技术,而3G需要安装新硬件。目前最常部署的2.5G为通用分组无线业务或GPRS。
■3G
模拟蜂窝是第一代移动通信技术。现在的数字PCS是第二代技术。新兴的第三代(3G)可提供更高的带宽,设备固定不动或以步行速度移动时速度可达 384Kbps,在车里时速度可达128Kbps,在固定应用上可达2Mbps。3G将采用无线空中接口,例如EDGE和GSM。
■Accupoint I
Accupoint I,是传统鼠标指点杆Accupoint的升级,它在原鼠标左右键的上方添加了两个键以支持滚屏功能。滚屏功能主要用于,当页面一屏显示不完时,不用点击屏幕右侧的滚动条,可以直接用滚动键实现滚动功能。
■ACPI
ACPl(Advanced Configuration Management)是1997年由INTEL/MICROSOFT/TOSHIBA提出的新型电源管理规范,意图是让操作系统而不是BIOS来全面控 制电源管理,使系统更加省电。 其特点主要有:。提供立刻开机功能,即开机后可立即恢复到上次关机时的状态,光驱、软驱和硬盘在未使用时会自动关掉电源,使用时再打开;支持在开电状态下 既插即拔,随时更换功能。 ACPI主要支持三种节电方式,1、(suspend即挂起)显示屏自动断电;只是主机通电。这时敲任意键即可恢复原来状态。2、(save to ram 或suspend to ram 即挂起到内存)系统把当前信息储存在内存中,只有内存等几个关键部件通电,这时计算机处在高度节电状态,按任意键后,计算机从内存中读取信息很快恢复到原 来状态。3、(save to disk或suspend to disk即挂起到硬盘)计算机自动关机,关机前将当前数据存储在硬盘上,用户下次按开关键开机时计算机将无须启动操作系统,直接从硬盘读取数据,恢复原来 状态。
■AGP
AGPiAccelerated Graphics Port的缩写,即"加速图形端口",是英特尔开发的新一代局部图形总线技术。AGP技术的两个核心内容是:一、使用PC的主内存作为显存的扩展延伸,这 样就大大增加了显存的潜在容量;二、使用更高的总线频率66MHz、133HZ甚至266MHz,极大地提高数据传输率。AGP总线是一种专用的显示总 线,并且将显示卡从POI:上独立出去,使得PCI声卡、SCSI设备、网络设备、I/S设备等的工作效率随之得到提高。从AGP中受益最大的是以3D游 戏为主的一些3D程序。
■AC(alternating,current)
交流电(AC)。按照规律性的时间间隔改变其流动方向的电流。
■BIOS:
(comos 设置即为设置此项功能)·
基本输入输出系统。控制计算机内部的数据流的固件(firmware)。
■Bluetooth* :蓝牙
蓝牙是一种短程(2.4GHz)无线技术,用于简化网络设备之间以及设备与互联网之间的通信。它还可简化网络设备和其它计算机之间的数据同步。由于蓝牙不是为传输大流量负载而设计的,因此并不适于替代LAN或WAN。
■CardBus
一种32位个人计算机卡的工业标准总线。它允许用户通过32位接口使用FastEtherent和高速SCSI及图像捕捉等技术。Cardbus可使32 位PCI设备包装成16位PC卡形式,以插进PC卡插槽。Cardbus在33MHz总线上达到132M/s的传输速率。16位PC卡接口提供的 modem和10MbDsLAN连接不能适应快速以太网技术。Cardbus插槽使用3.3V技术,以提高笔记本电池的使用寿命。
■DDR SDRAM : 双速SDRAM
双速(DDR)同步DRAM是内存的一种,它支持数据在每个时钟周期的两个边沿进行数据传输,从而使内存芯片的数据吞吐率提高了一倍。DDR-SDRAM还降低了能耗,因此是笔记本电脑的理想之选。
■DC 、
直流电。
■Docking Adapter
连接适配器.可使计算机连接到增强型端口转接器,I或DeskStation V Plus的设备。
■Enhanced Port Replicator II/III
增强型端口转接器II/III。一种接口设备,使到许多外设的一点连接成为可能,并提供附加的端口和插槽。
■Intel SpeedStep Technology: 英特尔
SpeedStep技术
英特尔SpeedStep技术使您能够在您的移动式电脑上定制高性能计算。当笔记本电脑连接到AC输出口时,移动式电脑能够运行最为复杂的商业和 互联网应用,同时速度可以达到台式机系统的水平。当采用电池供电时,处理器频率将自动降低(通过改变总线速率),同时能耗也相应降低,从而在保持高性能的 同时延长电池寿命。手动设置能够使您在采用电池时将频率调整到最高。
■Enhanced Intel SpeedStep technology :
增强型英特尔SpeedStep 技术
增强型英特尔SpeedStep技术能够根据处理器需要在两种性能模式之间实时进行电压和频率的动态切换。这主要是通过切换系统总线比率、内核工作电压以 及核心处理器的速度而无需重新设置系统实现的。移动式奔腾III处理器-M具有以下频率和电压(最高性能模式/电池优化模式):频率: 1133/733MHz、1066/733MHz、1000/733MHz、933/733MHz和866/667MHz;电压分别为 1.40V/1.15V。
■Fn-esse
可让你将功能赋予热键的东芝实用程序。
■function keys
功能键。标有F1到F12的键,用于通知计算机执行某项功能。
■hot dock/undock
热插/拔。在计算机的电源为开启状态时连接或断开一个设备。
■hotkey
热键。是计算机的特性,特定键和扩展功能键,Fn,的组合可被用来设定系统参数,如扬声器音量。
■Hot Spot :热点
热点是指那些拥有无线网络(使用802.11b或802.11a)的公共场所,如机场、购物中心和会议中心等。
■GPRS :通用分组无线业务
通用分组无线业务(GPRS)是一个无线通信标准,其传输速率为115Kbps;而目前的全球通(GSM)系统的传输速率仅为9.6Kbps。GPRS是专门为了在更大地区内发送数据而设计的。
■I/O
输入/输出(I/O)是指向计算机或外设之间发送或接收数据的任何程序、操作或设备。每次输入同时都伴随着输出。某些设备,如键盘和鼠标则只具有输入功能;而另一些设备,如打印机则只具备输出功能。处理器、内存、扩展插槽和主板之间的数据传输也称作I/O。
■IP
互联网协议(I/P)是发送数据的规则和编码规范。它还决定着网络应该采用对等体系结构还是客户机/服务器体系结构。目前的IP版本是IPv4,IPv6正处于开发之中。
■IrDA
红外传辅接口
■LCD
Liquid Crystal Display液晶显示。
■PCI
英特尔开发的外设组件互连(PCI)是一个本地总线标准。总线是用于传输往返(输入/输出)于计算机和外设间的数据的通道。大多数电脑通常都采用32位PCI总线,主频为33MHz,吞吐率可达到133MBps。
■PCMCIA
Personal Computer Memory Card International Association又称PC card。有Type I、Type II Typelll三种标准,分别规定了所用PC卡的尺寸及相应的电路等。
■RAM:内存
随机存取存储器用于存储当前正在处理的数据和程序。当关掉电源后,它自动清除存储内容,同时用户无需涉及先前数据就可对其进行存取。英特尔台式机处理器经 过RDRAM、PC SDRAM或DDR SDRAM的广泛测试。从而使英特尔 chipset 成为了系统主板的基础。
■RJll
一种标准的电话插座。
■3D Sound
3D即数字混响、数字录音和数字制作。3D SOUND是指采用数码技术进行混响、录音和制作,用以保证能够充分发挥多媒体音响的3D环绕立体声技术。 全面采用带有3D SOUND立体声的声卡,将家电的技术引入高科技的计算机领域,使笔记本声音表现更加逼真。
■SDRAM
DRAM是动态存储器(Dynamic RAM)的缩写SDRAM是英文SynchronousDRAM的缩写,译成中文就是同步动态存储器的意思。从技术角度上讲,同步动态存储器 (SDRAM)是在现有的标准动态存储器中加入同步控制逻辑(一个状态机),利用一个单一的系统时钟同步所有的地址数据和控制信号。使用SDRAM不但能 提高系统表现,还能简化设计、提供高速的数据传输。在功能上,它类似常规的DRAM,且也需时钟进行刷新。可以说,SDRAM是一种改善了结构的增强型 DRAM。目前的SDRAM有10ns和8ns。
■SVGA
超级视频显示适配器
■S-video
视频输出,即s端子,这种连接为对比度和颜色分别提供了传输线,可产生优于混合连接的图像。
■TV-OUT
视频输出,TV信号直接输出接口。
■TCP
TCP是指主板自动散热技术,可根据CPU工作的快慢来自动调节散热,满足主板散热的特殊需要.该技术是保证笔记本电脑在功能上不断增强的同时,整体性能保持稳定的笔记本关键技术,使得超精小的笔记本在工作时也飞快自如。
■TFT
有源矩阵彩色显示器(薄膜晶体管显示器)。每个像素由三原色(红、绿、蓝)组成.在显示时,驱动三原色光光源,达到彩色显示的作用,且TFT一次成像。
■USB
通用串行总线(USB)是一个外部总线标准(一种互连),数据传输速率可达12Mbps。一个USB端口可用于连接多达127种外设,如鼠标、调制解调器 和键盘等。USB自从1996年推出后,已成功替代串行和并行端口。它还支持即插即用安装和热插拔功能。即插即用能够在计算机运行过程中添加和删除设备, 操作系统将自动作出相应变化。USB2.0于2002年推出 , 专 为 Microsoft Windows XP 而设计,数据传输速率可达480Mbps。
■VESA
视频电子标准协会
■VGA
视频显示阵列是一种工业标准视频适配器,可使你运行任何流行软件。
■Warm start
热启动。不关闭计算机而重启动或重置计算机。
■ RJ45
局域网中双绞线接口,即局域网中网卡的一种接口。
■ BNC
局域网中同轴电缆接口,但只有在10M网中才用,现100M网只用RJ45接口。
■ RJ232口
即COM口,数据接口,一般用于工控采集数据用。(数据采集只的在DOS方式下可用。)
■LAN
局域网(LAN)是分布于一个相对较小的区域内的用以连接工作站和个人计算机的计算机网络。它使用户能够相互通信、共享数据或访问设备,如激光打印机等。 当几个LAN通过电话线或无线电波连接在一起时,就成为我们熟知的广域网(WAN)。支持LAN的新兴无线网络标准是 IEEE 802.11a ,其数据传输速率可达到54Mbps,另一标准IEEE802.11b的数据速率可达到11Mbps。 802.11a能够同时支持更多无线用户和增强的移动多媒体应用,如数据流视频。此外,802.11a标准在无阻塞的5GHz频带上运行,从而减少了与无 绳电话之间的干扰。
■LPT口
打印口,一般打印机用LTP1口,打印接口模式可在COMOS下调动,有EPP,ECP等模式。
Samba 3.0.10 的 MySQL 用户表验证
Samba 让 Linux 的灵活性表露无遗。在公司的局域网内部,我十分喜欢 Samba 的自由自在。
安装和编译的步骤并不复杂,但是需要了解为了支持 MySQL 认证,编译时需要的参数,以及配置时采用正确的参数。
编译命令:
$ ./configure –with-expsam=mysql –with-mysql-prefix=/opt/mysql
如果以上命令成功的话,然后就是 make ; make install 了。
然后拷贝一个 examples 下的 smb.conf 到 /usr/local/samba/lib 。
用 /usr/local/samba/sbin/smbd -D 即可启动。
用 smbstatus 命令可以查看 Samba 服务器的状态。
下面配置 MySQL 的支持。 和 MYSQL 相关的配置有以下几行:
[global]
# passdb backend = plugin:/usr/local/samba/lib/pdb/mysql.so:mysql
passdb backend = mysql:mysql
mysql:mysql host = localhost #主机名
mysql:mysql port = nnnn #端口号,默认3306
mysql:mysql user = samba #mysql用户
mysql:mysql password = password #mysql密码
mysql:mysql database = smb_user #数据库名
mysql:mysql table = user #数据表,似乎没有用处
……
建立 smb_user.user 表的脚本可以从 examples/pdb/mysql 目录下的 mysql.dump 导入,如果使用的版本是samba3,还需要单独手工增加“logon_hours"键值,这个目录下的 smb.conf 是一个最简单的配置,可以供参考。但是这个文件有几个地方是错的。
最主要的就是上面注释掉的那行,我发现根据这个 sample 不能使用,后来修改为简单的
mysql:mysql 后就能使用了。
具体的调试还是必须看相关的日志文件,如果是数据库连接错误,相关的日志文件会报告数据库不能连接的错误。
这样,一个基于 MySQL 用户的 Samba 系统建立了起来。
如果安装了swat,可以运行一下,重新格式化一下配置文件,这样看起来更方便一些。
但是,目前没有现成的完全基于 PHP 的针对 Samba 口令的修改程序。因为 user 表中的 lm_pw 和 nt_pw 分别代表口令的散列,其算法相对比较复杂, 远远不是 PHP 和 MySQL 提供的 encrypt() md5() 之类的函数能解决的。
如果有读者已经发现或者已经研发出纯 PHP 的修改 lm_pw 和 nt_[pw 字段的程序,欢迎一起交流。
零下2℃
突如其来的降温,上海气温骤降,今晨气温零下2度。要说北方虽说有零下几十度的低温不足为奇,但对于上海,一个没有集中供暖的城市,已经是冷到了难以忍受的地步。
冬天最痛苦的莫过于清早从被子里爬出来。我是早上给自己做了十几分钟的思想工作方能鼓足勇气挑战外部的冷空气。可到了公司里看到有几个MM依旧是单衣短裙,宛若生活在南半球。勇气可嘉!
昨夜天寒地冻,
暖衾无福享受。
试看同事MM,
单衣短裙依旧。
知否,知否?
美丽冻人——消受。
AMD再度公开叫阵Intel双内核比试
Cnet原引来自新加坡的消息:AMD已经再次向Intel发出挑战书,要求拿出彼此的双核心处理器进行基准测试比较,一决雌雄。如果Intel接受,挑战将于明天12月6日在岛国新加坡举行。
今年8月23日,AMD曾公开叫板Intel,要求公开比试一下双方的双核心处理器。当时涉及的是AMD双核心Opteron 200/800系列和Intel的任何双核心x86,这次比赛的主角依然还是它们。
不过Intel方面的态度也没有发生变化。截至目前,无论是在美国还是新加坡,Intel都没有正式接受AMD的挑战,也没有接受任何相关采访或发表公开评论。
上一次,《华尔街日报》、《今日美国》、《圣何塞信使报》、《旧金山纪事》等多家报纸均作出了报道,而这次的挑战信息上周初被作为广告宣传单夹在当地报纸中的。
AMD东南亚地区销售与市场部副总裁Bryan Low在接受采访时表示,这次挑战活动的目的就是“给消费者所关心的相关处理器在计算能力及性能方面的信息,以便于他们能作出最佳选择。”
随 着IBM、HP、Sun等都开始提供基于Opteron处理器的服务器和工作站,二者的处理器市场份额也是一升一降,AMD的信心正在逐渐爆棚,敢于对 Intel公然发起挑战也不足为奇。估计Intel这次还是不会应战,只是不知道AMD又会拿出Intel退缩的几大理由。
巧用Linux 架设TFTP Server备份路由器的配置文件
TFTP (普通文件传输协议或一般文件传输协议) 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻 击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。不过 tftp还是有用武之地的,下面讲的文件传输和备份router配置文件都时实际应用,它也只时一种手段而已。
一、用TFTP实现文件传输
环境:服务器A :rhas11
客户机B: rhas101
首先用rpm –qa | grep tftp看一下tftp有没安装,没有的话安 装一下。
A:在服务器端设置
#vi /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /test
per_source = 11
cps = 100 2
flags = IPv4
}
或用chkconfig tftp on 也可以打开xinetd代理的tftp服
#mkdir /test
#service xinetd restart 从启xinetd服务,因为TFTP服务受控与xinetd, xinetd是管服务的服务,它是不开端口的。
验证一下TFTP是否起来了:
[root@rhas11 tftp]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN 3122/rpc.statd
tcp 0 0 127.0.0.1:32781 0.0.0.0:* LISTEN 4035/xinetd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3103/portmap
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3324/httpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3255/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3213/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3295/sendmail: acce
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3415/0
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3324/httpd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 3122/rpc.statd
udp 0 0 0.0.0.0:69 0.0.0.0:* 4035/xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 4012/in.tftpd
udp 0 0 0.0.0.0:111 0.0.0.0:* 3103/portmap
udp 0 0 0.0.0.0:754 0.0.0.0:* 3122/rpc.statd
udp 0 0 0.0.0.0:631 0.0.0.0:* 3213/cupsd
A:服务器端 新建一文件file
#cd /test
[root@rhas11 test]# ls -l
总用量 4
-rw-r–r– 1 root root 19 5月 15 18:26 file
B客户端:
下载:
[root@rhas101 tmp]# tftp 172.31.0.11
tftp> get 1
Received 72 bytes in 0.0 seconds
tftp>
上传当前目录下文件”aaa”
[root@rhas101 client]# ls -l
总用量 4
-rw-r–r– 1 root root 15 5月 20 21:49 aaa
[root@rhas101 client]# tftp 172.31.0.11
tftp> put aaa
Error code 1: File not found
tftp>
奇怪当前目录却是有aaa文件???让我想一下
哦,原来服务器/test目录下没有文件aaa,那就touch一个吧
[root@rhas11 test]# touch aaa
[root@rhas11 test]# ls -l
总用量 4
-rw-r–r– 1 root root 0 5月 15 18:46 aaa
-rw-r–r– 1 root root 19 5月 15 18:26 file
好了再试一试
[root@rhas101 client]# tftp 172.31.0.11
tftp> put aaa
Error code 1: File not found
tftp> put aaa
Error code 2: Access denied
tftp>
细心的读者一定想到这是权限问题
再到服务器上设置
(===============================================================
小插曲:#chown -R nobody.nobody /test
#vi /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /test
per_source = 11
cps = 100 2
flags = IPv4
}
chmod 777 -R /test
================================================================
)
#service xinetd restart
)
[root@rhas11 test]# chmod 007 aaa 其实只要有可写的权限就行了
[root@rhas11 test]# ls -l
总用量 4
——-rwx 1 root root 0 5月 15 18:46 aaa
-rw-r–r– 1 root root 19 5月 15 18:26 file
[root@rhas101 client]# tftp 172.31.0.11
tftp> put aaa
Error code 1: File not found
tftp> put aaa
Error code 2: Access denied
tftp> put aaa
Sent 16 bytes in 0.0 seconds
tftp>
二、 特殊应用:上传和下载路由器(或交换机)配置文件
配使用Linux的tftp功能配置cisco route
在局域网环境中,如果有Cisco 路由器和Linux服务器。也许你需要利用Linux的
TFTP服务去下载Cisco router配置文件 startup-config,在服务器上编辑后再上载
到路由器,在实现中有一些特别注意的地方。
所用软、硬件:Redhat Linux AS 3.0 ,Cisco 2611 路由器
BEIJING#copy run tftp
Address or name of remote host []? 172.31.0.11
Destination filename [beijing-confg]? beijing-route
!!
1968 bytes copied in 0.581 secs (3387 bytes/sec)
别忘了在tftp server 上创建beijing-route权限为777
BEIJING#copy tftp flash
Address or name of remote host []? 172.31.0.11
Source filename []? beijing-route
Destination filename [beijing-route]?
Accessing tftp://172.31.0.11/beijing-route…
Erase flash: before copying? [confirm]
Erasing the flash filesystem will remove all files! Continue? [confirm]
Erasing device… eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee …erased
Erase of flash: complete
Loading beijing-route from 172.31.0.11 (via FastEthernet0/0): !
[OK - 1968 bytes]
Verifying checksum… OK (0×5248)
1968 bytes copied in 0.285 secs (6905 bytes/sec)
记一次面试
今天有个孩子来面试我们公司面试Linux管理员。自然属于我们部门的。
期间我问了几个关于Linux操作的问题问了linux操作的问题,回答的确实还叫人满意。然后我问了几个关于linux网络协议、网络端口、防火墙之类的问题,他一时语塞,回答不出了,我本想在HR面前给他个台阶下,说了一句:“是不是原先接触的不多,忘记了? ”该同学接下来的一句话让我差点气死(其实声音很轻,只是嘀咕一下):“这属于网络管理的职责,所以没太注意。”
晕点!
原先曾经看过一篇古文,大致意思是说:有个大夫自称善长外科,一天有个将军身中一箭,找他来医,于是他找了一把剪刀将露在外面的箭羽剪断了事。将军不解,问其缘由,曰:“剩下来的就是内科的事了,我只管外科。”
异曲同工之妙。

近期评论