奥门威尼斯网址网管的网管,谁来管理思科ACI

网管在网吧能够得到最大的好处就是积累经验,在网吧会遇到玩家向网管反应各种问题,网管从解决问题到积累经验。

由于Linux操作系统是一个开放源代码的免费操作系统,因此受到越来越多用户的欢迎。随着Linux操作系统在我国的不断普及,有关的政府部门更是将基于Linux开发具有自主版权的操作系统提高到保卫国家信息安全的高度来看待,因此我们不难预测今后Linux操作系统在我国将得到更快更大的发展。虽然Linux与UNIX很类似,但它们之间也有一些重要的差别。对于众多的习惯了UNIX和Windows
NT的系统管理员来讲,如何保证Linux操作系统的安全将面临许多新的挑战。本文介绍了一系列实用的Linux安全管理经验。

有人说管理思科ACI的是思科APIC。有点绕嘴。

Javascript高级技巧分享

 这篇文章主要介绍了Javascript高级技巧,需要的朋友可以参考下

上次整理了Ajax部分,这周看完了高级技巧部分,也整理下吧。

 

1、类型检测 

使用Object.prototype.toString.call(obj)的方式。

因为无论typeof还是instanceof都无法做到精确判断变量类型。

 

2、安全的构造函数

通常我们定义构造函数的时候,会使用类似

 代码如下:

function Person(name){

  this.name = name;

}

 

然而之后如果不是去 var person = new Person(“cnblogs”)。

而是 var person =
Person(“cnblogs”)。那么this就会指向别处,导致污染其余对象。

解决方法就是在设置this.property的时候判断 

this instanceof Person

如果不是,则new Person(x,x,x);

 代码如下:

function Person(name){

      if(this instanceof Person){

       this.name = name;

      }else{

          return new Person(name);

      }

}

 

但是要注意一点,如果其余构造函数试图通过Person.call(this,x)这种方式实现继承的时候。

需要注意,在实例化之前把那个函数的原型指向到Person去。

 

3、惰性载入函数

在调用函数时,经常会存在一种情况,就是函数中需要对浏览器功能进行判断。

例如

代码如下:

function createSomething(){

     if(supportH5){

          //do something

     }else{

          //do otherthing

     }

}

 

但是,如果一个浏览器支持一个功能,那么必然是一直都支持,所以这里面每次执行代码时都去判断是不必要的,因为判断一次就够了。

所以可以改写成

 代码如下:

function createSomething(){

     if(supportH5){

          createSomething = function(){ //重写了createSomething 函数

               //do something

          }

     }else{

          //同上

     }

}

 

这样,第一次调用时会做判断,之后重写了这个函数,也就自然不会判断了。

 

 

4、函数绑定

在js中,最搞混的应该就是 this 指向谁的问题。

其实,在我学习js这么久的时间里,发现一个结论

在函数中的this会指向最终调用这个函数的对象,换句话说就是,哪个对象调用了这个函数,this就指向那个对象。

搞清楚了这个,函数绑定就不是问题了。

改变函数里面this指向的方法就是 call 和
apply,不过用这两个方法都会执行函数。

如果不想执行函数,而是把函数当参数传给某个函数,还想改变this,那么就用最新的bind。

 

 

5、定时器

setTimeou、setInterval或者Ajax等虽然是异步,像多线程一样,但是js是单线程的。

其实这些方法并没有增加一个线程。

setTimeout(fn,300)代表的意思是300毫秒后把fn放入js的执行队列里面。

如果这是队列里面没有事务要执行(也就是说js解释器处于空闲状态),那么便会立刻执行。否则,便会等队列的事务处理完再执行这个函数。

所以,用setTimeout或者setInterval都不是准确的控制时间。

还有一点要注意的就是,使用setTimeout模拟setInterval可以准确控制最小执行时间间隔。

 

 

6、使用定时器固定时间执行方法。

如果一个方法要执行很久,也许造成浏览器短时间没响应,那么可以用定时器固定每段时间执行一部分。这样可以不至于让js一直处于忙碌状态(浏览器无响应),有空闲的时间处理其余事务。比如有一个1000长度数组循环,那么可以100每次的执行,中间隔点时间让js处于空闲去做别的操作。

 

 

7、函数节流。

函数节流是一种提高性能很好的方式,在某些场合可以提高几倍效率。

比如在做拖动或者是一些发生在onresize事件中的操作时。

你每操作一下,其实执行了很多遍了。例如:

 代码如下:

var i = 0;

window.onresize = function(){

    console.log(i++);

}

 

 

尝试着去拉伸浏览器,就会发现控制台瞬间显示i都超过100多了。

改变一下写法,例如:

 代码如下:

var i = 0, j = 1;

window.onresize = function(){

     if(j % 2 == 0){

         console.log(i++);

     }

     j++;

}

 

 

创建一个变量j,让j每次只有偶数的时候才执行,也就是少了一半的实行次数。

像这样处理下,可以减少50%的执行次数,但是对用户来说,并感受不到区别。

 

还有一种使用定时器实现的函数节流。

核心代码如下:

 

 代码如下:

function throttle(method , context){

   clearTimeout(method.tId);

   method.tId = setTimeout(function(){

         method.call(context);

    },100);

}

 

 

这里传入执行函数和函数的执行环境(也就是执行函数中的this的指向对象),然后先清除动作队列,接着执行动作。

这种形式可以对动作频率做更好的控制。

假设是一个浏览器拉伸动作,那么只要你拉伸的速度够快,每次触发的时间间隔在100ms之内,那么就只会执行最后一下的结果。

 

 

8、自定义事件

本质是观察者模式。基本模式是需要3个函数,

一个函数是绑定事件,一个函数是触发事件,一个是移除绑定。

这种模式可以很大程度降低代码耦合性。

这篇文章主要介绍了Javascript高级技巧,需要的朋友可以参考下
上次整理了Ajax部分,这周看完了高级技巧部分,也整理…

上次整理了Ajax部分,这周看完了高级技巧部分,也整理下吧。

作为网吧热点,网络管理技巧也是从中积累的,下面谈谈高级网管网络管理技巧。

一、文件系统在Linux系统中,分别为不同的应用安装单独的主分区将关键的分区设置为只读将大大提高文件系统的安全。这主要涉及到Linux自身的ext2文件系统的只添加(只添加)和不可变这两大属性。

前几天发现了这个软件 Cisco APIC ZenPack
http://wiki.zenoss.org/ZenPack:Cisco\_APIC。

1、类型检测 使用Object.prototype.toString.call(obj)的方式。
因为无论typeof还是instanceof都无法做到精确判断变量类型。

1,网段与流量

●文件分区Linux的文件系统可以分成几个主要的分区,每个分区分别进行不同的配置和安装,一般情况下至少要建立/、/usr/local、/var和/home等分区。/usr可以安装成只读并且可以被认为是不可修改的。如果/usr中有任何文件发生了改变,那么系统将立即发出安全报警。当然这不包括用户自己改变/usr中的内容。/lib、/boot和/sbin的安装和设置也一样。在安装时应该尽量将它们设置为只读,并且对它们的文件、目录和属性进行的任何修改都会导致系统报警。

好像是来监控思科ACI的。其实应该是监控客户安装了的思科ACI。

2、安全的构造函数 通常我们定义构造函数的时候,会使用类似

某台服务器,有两台文件读写极为频繁的工作站,当服务器只安装一块网卡,形成单独网段时,这个网段上的所有设备反应都很慢,当服务器安装了两块网卡,形成两个网段以后,将这两台文件读写极为频繁的工作站分别接在不同的网段上,网络中所有设备的反应速度都有了显著增加。这是因为增加的网段分担了原来较为集中的数据流量,从而提高了网络的反应速度。

当然将所有主要的分区都设置为只读是不可能的,有的分区如/var等,其自身的性质就决定了不能将它们设置为只读,但应该不允许它具有执行权限。

原文:

复制代码 代码如下:

2,双绞线的线序

●扩展ext2.使用ext2文件系统上的只添加和不可变这两种文件属性可以进一步提高安全级别。不可变和只添加属性只是两种扩展ext2文件系统的属性标志的方法。一个标记为不可变的文件不能被修改,甚至不能被根用户修改。一个标记为只添加的文件可以被修改,但只能在它的后面添加内容,即使根用户也只能如此。

This ZenPack provides support for monitoring theCisco Application
Centric Infrastructure (ACI)via theCisco Application Policy
Infrastructure Controller (APIC).

function Person(name){
  this.name = name;
}

将服务器与交换机的距离由5米改为60米,结果无论如何也连接不通,为什么呢?以太网一般使用两对双绞线,排列在1、2、3、6的位置,如果使用的不是两对线,而是将原配对使用的线分开使用,就会形成缠绕,从而产生较大的串扰(NEXT),影响网络性能。

可以通过chattr命令来修改文件的这些属性,如果要查看其属性值的话可以使用lsattr命令。要想了解更多的关于ext2文件属性的信息,可使用命令man
chattr来寻求帮助。这两上文件属性在检测黑客企图在现有的文件中安装入侵后门时是很有用的。为了安全起见,一旦检测到这样的活动就应该立即将其阻止并发出报警信息。

有机会研究吧。

然而之后如果不是去 var person = new Person(“cnblogs”)。
而是 var person =
Person(“cnblogs”)。那么this就会指向别处,导致污染其余对象。
解决方法就是在设置this.property的时候判断
this instanceof Person
如果不是,则new Person(x,x,x);

上述故障的原因是由于3、6未使用配对线,在距离变长的情况下连接不通。将RJ45头重新按线序做过以后,一切恢复正常。

如果你的关键的文件系统安装成只读的并且文件被标记为不可变的,入侵者必须重新安装系统才能删除这些不可变的文件但这会立刻产生报警,这样就大大减少了被非法入侵的机会。

复制代码 代码如下:

3,WAN与接地

●保护log文件当与log文件和log备份一起使用时不可变和只添加这两种文件属性特别有用。系统管理员应该将活动的log文件属性设置为只添加。当log被更新时,新产生的log备份文件属性应该设置成不可变的,而新的活动的log文件属性又变成了只添加。这通常需要在log更新脚本中添加一些控制命令。

function Person(name){
      if(this instanceof Person){
       this.name = name;
      }else{
          return new Person(name);
      }
}

无意将路由器的电源插头插在了市电的插座上,结果64KDDN就是无法联通。电信局来人检查线路都很正常,最后检查路由器电源的接地电压,发现不对,换回到UPS的插座上,一切恢复正常。

二、备份在完成Linux系统的安装以后应该对整个系统进行备份,以后可以根据这个备份来验证系统的完整性,这样就可以发现系统文件是否被非法窜改过。如果发生系统文件已经被破坏的情况,也可以使用系统备份来恢复到正常的状态。

但是要注意一点,如果其余构造函数试图通过Person.call(this,x)这种方式实现继承的时候。
需要注意,在实例化之前把那个函数的原型指向到Person去。

4,路由器的电源

●CD-ROM备份当前最好的系统备份介质就是CD-ROM光盘,以后可以定期将系统与光盘内容进行比较以验证系统的完整性是否遭到破坏。如果对安全级别的要求特别高,那么可以将光盘设置为可启动的并且将验证工作作为系统启动过程的一部分。这样只要可以通过光盘启动,就说明系统尚未被破坏过。

3、惰性载入函数 在调用函数时,经常会存在一种情况,就是函数中需要对浏览器功能进行判断。
例如

路由器的电源插头接地端坏掉,从而造成数据包经常丢失,做PING连接时,时好时坏。更换电源线后一切正常。WAN的连接因为涉及到远程线路,所以对于接地要求较为严格,才能保证较强的抗干扰性,达到规定的连接速率,不然会出现奇怪的故障。

如果你创建了一个只读的分区,那么可以定期从光盘映像重新装载它们。即使象/boot、/lib和/sbin这样不能被安装成只读的分区,你仍然可以根据光盘映像来检查它们,甚至可以在启动时从另一个安全的映像重新下载它们。

复制代码 代码如下:

5,网络与硬盘

●其它方式的备份虽然/etc中的许多文件经常会变化,但/etc中的许多内容仍然可以放到光盘上用于系统完整性验证。其它不经常进行修改的文件,可以备份到另一个系统(如磁带)或压缩到一个只读的目录中。这种办法可以在使用光盘映像进行验证的基础上再进行额外的系统完整性检查。

function createSomething(){
     if(supportH5){
          //do something
     }else{
          //do otherthing
     }
}

选用SCSI接口和高转速硬盘;硬盘阵列卡能较大幅度地提升硬盘的读写性能和安全性,建议选用;不要使低速SCSI设备(如CD)与硬盘共用同一SCSI通道。

既然现在绝大多数操作系统现在都在随光盘一起提供的,制作一个CD-ROM紧急启动盘或验证盘操作起来是十分方便的,它是一种十分有效而又可行的验证方法。

但是,如果一个浏览器支持一个功能,那么必然是一直都支持,所以这里面每次执行代码时都去判断是不必要的,因为判断一次就够了。
所以可以改写成

高级网管的网络管理技巧小编就介绍到这里,希望对你们有帮助,当然也不只是这些,会持续更新。

三、改进系统内部安全机制可以通过改进Linux操作系统的内部功能来防止缓冲区溢出攻击这种破坏力极强却又最难预防的攻击方式,虽然这样的改进需要系统管理员具有相当丰富的经验和技巧,但对于许多对安全级别要求高的Linux系统来讲还是很有必要的。

复制代码 代码如下:

作为网吧热点,网络…

●Solaris Designer的安全Linux补丁Solaris
Designer用于2.0版内核的安全Linux补丁提供了一个不可执行的栈来减少缓冲区溢出的威胁,从而大大提高了整个系统的安全性。

function createSomething(){
     if(supportH5){
          createSomething = function(){ //重写了createSomething 函数
               //do something
          }
     }else{
          //同上
     }
}

缓冲区溢出实施起来是相当困难的,因为入侵者必须能够判断潜在的缓冲区溢出何时会出现以及它在内存中的什么位置出现。缓冲区溢出预防起来也十分困难,系统管理员必须完全去掉缓冲区溢出存在的条件才能防止这种方式的攻击。正因为如此,许多人甚至包括Linux
Torvalds本人也认为这个安全Linux补丁十分重要,因为它防止了所有使用缓冲区溢出的攻击。但是需要引起注意的是,这些补丁也会导致对执行栈的某些程序和库的依赖问题,这些问题也给系统管理员带来的新的挑战。

这样,第一次调用时会做判断,之后重写了这个函数,也就自然不会判断了。

不可执行的栈补丁已经在许多安全邮件列表(如linux.org”>[email protected])中进行分发,用户很容易下载到它们等。

 
4、函数绑定 在js中,最搞混的应该就是 this 指向谁的问题。
其实,在我学习js这么久的时间里,发现一个结论
在函数中的this会指向最终调用这个函数的对象,换句话说就是,哪个对象调用了这个函数,this就指向那个对象。
搞清楚了这个,函数绑定就不是问题了。
改变函数里面this指向的方法就是 call 和
apply,不过用这两个方法都会执行函数。
如果不想执行函数,而是把函数当参数传给某个函数,还想改变this,那么就用最新的bind。

●StackGuardStackGuard是一个十分强大的安全补丁工具。你可以使用经StackGuard修补过的gcc版本来重新编译和链接关键的应用。

 
5、定时器 setTimeou、setInterval或者Ajax等虽然是异步,像多线程一样,但是js是单线程的。
其实这些方法并没有增加一个线程。
setTimeout(fn,300)代表的意思是300毫秒后把fn放入js的执行队列里面。
如果这是队列里面没有事务要执行(也就是说js解释器处于空闲状态),那么便会立刻执行。否则,便会等队列的事务处理完再执行这个函数。
所以,用setTimeout或者setInterval都不是准确的控制时间。
还有一点要注意的就是,使用setTimeout模拟setInterval可以准确控制最小执行时间间隔。

StackGuard进行编译时增加了栈检查以防止发生栈攻击缓冲区溢出,虽然这会导致系统的性能略有下降,但对于安全级别要求高的特定应用来讲StackGuard仍然是一个十分管用的工具。

 
6、使用定时器固定时间执行方法。 如果一个方法要执行很久,也许造成浏览器短时间没响应,那么可以用定时器固定每段时间执行一部分。这样可以不至于让js一直处于忙碌状态(浏览器无响应),有空闲的时间处理其余事务。比如有一个1000长度数组循环,那么可以100每次的执行,中间隔点时间让js处于空闲去做别的操作。

现在已经有了一个使用了SafeGuard的Linux版本,用户使用StackGuard将会更加容易。虽然使用StackGuard会导致系统性能下降约10~20%,但它能够防止整个缓冲区溢出这一类攻击。

 
7、函数节流。 函数节流是一种提高性能很好的方式,在某些场合可以提高几倍效率。
比如在做拖动或者是一些发生在onresize事件中的操作时。
你每操作一下,其实执行了很多遍了。例如:

●增加新的访问控制功能Linux的2.3版内核正试图在文件系统中实现一个访问控制列表,这要可以在原来的三类(owner、group和other)访问控制机制的基础上再增加更详细的访问控制。

复制代码 代码如下:

在2.2和2.3版的Linux内核中还将开发新的访问控制功能,它最终将会影响当前有关ext2文件属性的一些问题。与传统的具有ext2文件系统相比它提供了一个更加精确的安全控制功能。有了这个新的特性,应用程序将能够在不具有超级用户权限的情况下访问某些系统资源,如初始套接等。

var i = 0;
window.onresize = function(){
    console.log(i++);
}

●基于规则集的访问控制现在有关的Linux团体正在开发一个基于规则的访问控制(RSBAC)项目,该项目声称能够使Linux操作系统实现B1级的安全。RSBAC是基于访问控制的扩展框架并且扩展了许多系统调用方法,它支持多种不同的访问和认证方法。这对于扩展和加强Linux系统的内部和本地安全是一个很有用的。

尝试着去拉伸浏览器,就会发现控制台瞬间显示i都超过100多了。
改变一下写法,例如:

四、设置陷井和蜜罐所谓陷井就是激活时能够触发报警事件的软件,而蜜罐(honey
pot)程序是指设计来引诱有入侵企图者触发专门的报警的陷井程序。
通过设置陷井和蜜罐程序,一旦出现入侵事件系统可以很快发出报警。在许多大的网络中,一般都设计有专门的陷井程序。陷井程序一般分为两种:一种是只发现入侵者而不对其采取报复行动,另一种是同时采取报复行动。

复制代码 代码如下:

设置蜜罐的一种常用方法是故意声称Linux系统使用了具有许多脆弱性的IMAP服务器版本。当入侵者对这些IMAP服务器进行大容量端口扫瞄就会落入陷井并且激发系统报警。

var i = 0, j = 1;
window.onresize = function(){
     if(j % 2 == 0){
         console.log(i++);
     }
     j++;
}

另一个蜜罐陷井的例子就是很有名的phf,它是一个非常脆弱的Web
cgi-bin脚本。最初的phf是设计来查找电话号码的,但它具有一个严重的安全漏洞:允许入侵者使用它来获得系统口令文件或执行其它恶意操作。系统管理员可以设置一个假的phf脚本,但是它不是将系统的口令文件发送给入侵者,而是向入侵者返回一些假信息并且同时向系统管理员发出报警。

创建一个变量j,让j每次只有偶数的时候才执行,也就是少了一半的实行次数。
像这样处理下,可以减少50%的执行次数,但是对用户来说,并感受不到区别。

另外一类蜜罐陷井程序可以通过在防火墙中将入侵者的IP地址设置为黑名单来立即拒绝入侵者继续进行访问。拒绝不友好的访问既可以是短期的,也可以是长期的。Linux内核中的防火墙代码非常适合于这样做。

还有一种使用定时器实现的函数节流。
核心代码如下:

五、将入侵消灭在萌芽状态入侵者进行攻击之前最常做的一件事情就是端号扫瞄,如果能够及时发现和阻止入侵者的端号扫瞄行为,那么可以大大减少入侵事件的发生率。反应系统可以是一个简单的状态检查包过滤器,也可以是一个复杂的入侵检测系统或可配置的防火墙。

复制代码 代码如下:

  • Abacus Port SentryAbacus Port
    Sentry是开放源代码的工具包,它能够监视网络接口并且与防火墙交互操作来关闭端口扫瞄攻击。当发生正在进行的端口扫瞄时,Abacus
    Sentry可以迅速阻止它继续执行。但是如果配置不当,它也可能允许敌意的外部者在你的系统中安装拒绝服务攻击。
  • Abacus Port
    Sentry如果与Linux中透明的代理工具一起使用可以提供一个非常有效地入侵防范措施。这样可以将为所有IP地址提供通用服务的未使用端口重定向到Port
    Sentry中,Port
    Sentry可以在入侵者采取进一步行动之前及时检测到并阻止端口扫瞄。
  • Abacus Port Sentry能够检测到慢扫瞄(slow
    scan),但它不能检测到结构化攻击(structured
    attack)。这两种方式最终目的都要试图掩盖攻击意图。慢扫瞄就是通过将端口扫瞄分散到很长的时间内来完成,而在结构化的攻击中,攻击者试图通过扫瞄或探测多个源地址中来掩盖自己的真实攻击目标。
  • 正确地使用这个软件将能够有效地防止对IMAP服务大量的并行扫瞄并且阻止所有这样的入侵者。Abacus
    Sentry与Linux
    2.2内核的IPChains工具一起使用时最有效,IPChains能够自动将所有的端口扫瞄行为定向到Port
    Sentry. Linux 2.0内核可以使用IPChains进行修补,Abacus Port
    Sentry也可以与早期的2.0版内核中的ipfwadm工具一起使用,ipfwadm在2.2版本以后被IPChains取代了。
  • Abacus Port
    Sentry还可以被配置来对Linux系统上的UDP扫瞄作出反应,甚至还可以对各种半扫瞄作出反应,如FIN扫瞄,这种扫描试图通过只发送很小的探测包而不是建立一个真正的连接来避免被发现。

function throttle(method , context){
   clearTimeout(method.tId);
   method.tId = setTimeout(function(){
         method.call(context);
    },100);
}

当然更好的办法就是使用专门的入侵检测系统,如ISS公司的RealSecure等,它们可以根据入侵报警和攻击签名重新配置防火墙。但这样的产品一般价格较高,普及的用户承受起来有困难。

这里传入执行函数和函数的执行环境(也就是执行函数中的this的指向对象),然后先清除动作队列,接着执行动作。
这种形式可以对动作频率做更好的控制。
假设是一个浏览器拉伸动作,那么只要你拉伸的速度够快,每次触发的时间间隔在100ms之内,那么就只会执行最后一下的结果。

六、反攻击检测系统主要通过阻止入侵企图来防止入侵,而反攻击系统则可以反向进行端口扫瞄或发起其它的攻击,这一着让入侵者不仅入侵阴谋未能得逞,反而“引狼入室”,招致反攻击。

 
8、自定义事件 本质是观察者模式。基本模式是需要3个函数,
一个函数是绑定事件,一个函数是触发事件,一个是移除绑定。
这种模式可以很大程度降低代码耦合性。

有些安全系统如Abacus
Sentry具有一定的反攻击能力。比如有的站点有了防止用户通过telnet进行连接,在应答telnet连接请求时,系统将返回一些不受欢迎的恶意信息。这只是一种最简单也是最轻微的反攻击措施。

您可能感兴趣的文章:

  • 详解JS数组Reduce()方法详解及高级技巧
  • javascript函数中的3个高级技巧
  • 五段实用的js高级技巧
  • JavaScript高级程序设计 学习笔记
    js高级技巧
  • JS高级技巧(简洁版)

一般情况下并不提倡使用反攻击功能,因为这样的反攻击措施很容易被非法利用来攻击其它的系统。

七、改进登录服务器将系统的登录服务器移到一个单独的机器中会增加系统的安全级别,使用一个更安全的登录服务器来取代Linux自身的登录工具也可以进一步提高安全。

在大的Linux网络中,最好使用一个单独的登录服务器用于syslog服务。它必须是一个能够满足所有系统登录需求并且拥有足够的磁盘空间的服务器系统,在这个系统上应该没有其它的服务运行。更安全的登录服务器会大大削弱入侵者透过登录系统窜改日志文件的能力。

●安全syslog即使使用单独的登录服务器,Linux自身的syslog工具也是相当不安全的。因此,有人开发了所谓的安全log服务器,将密码签名集成到日志中。这会确保入侵者即使在窜改系统日志以后也无法做到不被发现。现在最常用的用于取代syslog的安全log服务器称为”安全syslog(ssyslong)”,用户可以从Core
SDI站点下载这个工具。这个守护程序实现一个称为PEQ-1的密码协议来实现对系统日志的远程审计。即使在入侵者获得系统超级用户权限的情况下也仍然可以进行审计,因为协议保证了以前以及入侵过程中的的log信息没有审计者(在远程可信任的主机上)的通知无法被修改。

●syslog-ng另一个取代syslog的工具是syslog-ng(下一代的syslog)。这是一个更加可配置的守护进程,它提供了密码签名来检测对日志文件的窜改。密码安全登录服务器和远程审计功能一起可以使入侵者极难进行日志窜改并且非常容易被检测到这样的不良企图。用户可以下载这个工具。

八、使用单一登录系统维护分散的大网络环境中的多个用户帐号对于系统管理员来讲是一件非常头疼的事情。现在有一些单一的登录(sign
on)系统不仅可以减轻管理员的负担,而同时还提高了安全级别。

网络信息服务(NIS)是一个很好的单一登录系统,它在Sun公司的Yellow
Page服务的基础上发展来的,它的基本安全特性不够健状,由于不断有一些bug和脆弱性被公布,因此有人戏称它为网络入侵者服务(Network
Intruder
Service)。NIS的更新版本NIS+原NIS的不足进行了改进,现在已经有了用于Linux的NIS+版本。

Kerberos也是一种非常有名的单一登录系统。Kerberos
v4具有一些很有名的安全漏洞,如入侵者可以离线进行穷尽攻击Kerberos
cookie而不会被发现。Ketberos v5大大进行了改进,不会再有v4的问题。

在大的网络中,像NIS和Kerberos这样的单一的登录系统虽然有有利的一面,但也有它不利的一面。一方面,在不同系统上都具有认证机制有助于隔离该功能并且减少它与其它服务相互之间的影响。另一方面,一旦一个系统中的某个帐号被破坏,所有可通过这个帐号访问的系统都将同样遭到破坏。因此在单一的登录系统中特别要求具有较高防猜测水平的口令字。

基于Windows的网络在Windows
NT域系统中有自己的单一登录系统。Linux系统可以根据Windows系统进行认证。这允许用户在Windows系统下修改、维护和管理它们的帐号和口令字并且修改结果会在同时在UNIX登录中得到体现。如使用pam_smb,Linux系统可以根据Windows
SMB
Domain进行认证。这在以Windows网络管理为中心的网络中是相当方便的,但它也带来了Windows认证系统自身的一些不安全性。

九、掌握最新安全产品和技术作为一个系统管理员,还必须时刻跟踪Linux安全技术的发展动向,并且适时采用更先进的Linux安全工具。目前国际上有许多有关Linux安全的研究和开发项目,目前至少有三个安全Linux项目已经启动,每个项目的目标都有自己的侧重点,它们分别是:

●安全Linux(Secure
Linux)安全Linux项目的目标是提供一个用于Internet服务器系统的安全的Linux分发。该项目管理者正寻求在这个产品中集成强大的密码和一些额外的Web服务器功能。既然它是在美国之外创建的,人们可望能够得到改进的密码安全而不会受到美国安全产品出口法律的限制。

●Bastille LinuxBastille
Linux项目寻求在Linux环境中建立一个类似OpenBSD的标准。该项目宣称的目标是为台式机创建一个安全的分发,使网络管理者可以不用担心用户的安全。

●Kha0s LinuxKha0s
Linux正寻求创建了一个具有强加密和类似OpenBSD的安全政策的最小的安全Linux分发。该小组目前正在它的Web站点上请求全球用户和厂商的参与和合作。

除此之外,下面两点对于管理员提高Linux安全管理水平也是十分有用的:

  • 访问安全Linux邮件列表现在有许多关于Linux安全的邮件列表,如[email protected]、Kh >[email protected]等,经常访问这些邮件列表可以得到大量的安全信息。
  • 还有另一个通用的邮件列表是[email protected],它是专门讨论源代码的安全审计的。这个列表可能与其它的邮件列表有大量的重复,但如果想了解源代码审计和相关的安全问题的话还是很值得一读的。

十、多管齐下任何一种单一的安全措施其防范能力都是有限的,一个安全的系统必须采取多种安全措施,多管齐下才能更好的保证安全。假如一个Linux系统采取了以上各种安全措施,那么要想侵入你的系统,攻击者将不得不绕过防火墙、避开入侵检测系统、跳过陷井程序、通过系统过滤器、逃过你的日志监视器、修改文件系统属性、破坏安全登录服务器才能最终达到目的。由于其中任何一个环节都可能激发报警,因此入侵者要想侵入这样的系统而又不被发现几乎是不可能的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注