科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件设置基本系统-FreeBSD 技术文摘

设置基本系统-FreeBSD 技术文摘

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

FreeBSD系统是一种安全性非常好的通用操作系统,在Internet上很少发生FreeBSD系统被攻击的报告,事实上最近一端时间内CERT的安全报告中几乎没有发生在FreeBSD系统上的安全报告。

来源:早雪网 2008年5月20日

关键字: 操作系统 技巧 FreeBSD

  • 评论
  • 分享微博
  • 分享邮件
    如果管理员不能信任计算机系统的物理安全,为了防止信息外泻,唯一的方法是进行加密,可以通过Unix命令crypt 对具备敏感信息的文件加密。然而更简便的方法是使用一种加密文件系统,这类加密文件系统对于正常操作就如同标准文件系统一样,对任何应用程序的文件操作完全透明,然而数据是以加密方式保存到物理设备中。而且在网络中传送的也都是加密后的密钥,不必担心泄露密钥。FreeBSD下可以使用的加密文件系统为TCFS,但它这不是FreeBSD的标准配置,需要从http:// tcfs.dia.unisa.it/中单独获得。
       
    * 登录控制 

  为了加强控制台的安全,还应该阻止一般用户在控制台上登录入系统。为了达到这个目的,需要设置登录访问限制文件/etc/login.access。该文件由login程序读取,限制用户的登录位置,该文件中具备下面语句将屏蔽除了wheel组、admin之外的用户在console登录的权力。

-:ALL EXCEPT wheel admin:console

  第一个字符“-“号,用于指明该句是用于屏蔽,相反,“+“用于打开登录许可,由于这个文件主要用于控制登录位置的目的,所以打开登录许可的方式很少用得到。此后用冒号分隔的第二部分为帐号域,可以使用用户名和组名,以及使用 login.access的关键字All、ALL EXCEPT等定义用户。第三部分为登录位置,这里仅仅用于限制console。

  这个文件不但能用来限制在控制台登录,也能用来限制从其他位置登录入系统,还可以限制一些帐户在所有的位置都不能登录,这样就能更好的保证安全性。

-:wheel:ALL EXCEPT LOCAL .local.net
 
  这句设置了对管理员组wheel的登录位置限制,只能在本地或者本地的local.net域内计算机上建立登录连接。设置对能执行特定操作管理员的登录限制也能增强系统安全性。

-:daemon bin lpd nobody nogroup:ALL

  这个设置限制一些特殊的系统用户在所有节点上都不能登录,系统中的很多帐户事实上是用于系统维护的目的,并没有任何用户需要使用他们登录,显然这也能增加安全性。

  然而,使用login.access并不能表示该帐户就无法被非法使用了,很多网络服务不使用这个文件进行用户限制,而是使用自己的用户限制方式,因此入侵者可以通过这些网络服务攻击相关帐户。入侵者也可以通过先以其他用户身份登录,再使用su命令绕过这个限制。所以使用这个限制文件并不是一劳永逸的做法,事实上在保证网络安全方面,不存在百分之百的解决方案,只能通过各个方面配置,尽量提高安全性。

  即使提供了有效的登录控制,对于某些不必要的缺省帐户或长期不再使用的帐户,最好还是将其删除,以最大可能的避免安全问题。例如用于UUCP的帐户 uucp,只有很少的系统需要这个帐户。可以放心的是,FreeBSD系统中不存在没有口令保护的缺省帐户,这将满足一般用户的安全需要。
  
    * 安全认证方式  

  由于FreeBSD是一个多用户系统,不但能由控制台用户使用,还可以通过网络,提供其他用户使用。而允许其他用户通过网络使用系统的时候,必须要对用户进行验证。此时的一个重要的安全问题就是口令以明文形式在网络中传输的问题。
  
    * S/key和Kerberos  

  为了避免口令被窃听,有很多解决方法可以避免这个问题。一个很有意思的解决方法是使用一次性的口令系统,如 S/key,即使口令被窃听也不会对安全造成影响。FreeBSD缺省就支持S/key系统,每个用户都可以选择是否使用这个系统保证自己的口令安全性。为了使用S/key系统,首先需要使用keyinit初始化针对这个用户的口令串。

bash-2.02$ keyinitUpdating wb:Old key: de415501Reminder - Only use this method if you are directly connected.If you are using telnet or rlogin exit with no password and use keyinit -s.Enter secret password:Again secret password:ID wb s/key is 99 de415502GAS SAM RUSK BASH NEWS WAIT

  由于这个命令是用于初始化S/key系统,要输入一个S/key口令短语(这个口令可以设置的非常长,通常建议使用一个句子以保证安全性),这个口令将影响以后产生的一次性口令,因此这个命令应该在一个安全连接的终端上(如控制台)执行,而不应该在通过普通telnet等网络连接的登录会话上执行。在两次输入S/key的口令之后,keyinit 将产生第一个一次性口令,keyinit输出的最后一行就是这个一次性口令,上面的ID行中的99指一次性口令的序列号,de415502是这个一次性口令对应的 “种子” 。口令的 “种子” ,和S/key口令短语相结合就用于产生不同的一次性口令序列。

  当使用了keyinit初始化S/key之后,就可以立即使用S/key一次性口令登录了。也可以使用key 命令产生其他一次性口令,这需要指定一次性口令的序列号和种子。

bash-2.02$ key 99 de415502Reminder - Do not use this program while logged in via telnet or rlogin.Enter secret password:GAS SAM RUSK BASH NEWS WAIT

  key将提示用户输入口令短语,因此这个命令也不应该通过网络来使用,只能用于直接连接的时候。然而不必为此担心,因为无论在那台计算机上,使用同样的序列号、种子和口令短语产生的口令序列都是同样的,因此可以在本地计算机上,产生用于远程FreeBSD计算机登录的一次性口令。

  注意,S/key系统用于产生一次性口令使用的单向Hash函数可能不同,最常用的有MD4、MD5和DES 算法,使用不同算法产生的一次性口令序列不会相同。FreeBSD的S/key系统使用MD4算法,因此如果要在客户计算机为FreeBSD服务器产生 S/key一次性口令,需要使用采用MD4算法的key程序。

  这样当系统进行认证时,将提示skey序列号和种子。这样用户就能使用正确的一次性口令登录了。一旦一个口令用过,这个口令就不再被使用,而使用下一个序列号的口令。

Login: wbs/key 99 de415502Password:

  由于每次使用过的口令将不再使用,而通过S/key认证的连接本身是不安全的连接,不应该用于再次产生新口令。那么如果仅通过本地计算机产生S/key 口令,就限制了客户机上必须安装有S/key系统。事实上可以在建立安全连接的时候,一次可以产生多个S/key一次性口令,将这些口令记录或打印在密码本上,随用随查,只要密码本不丢失,就没有口令泄露的问题。产生多个S/key一次性口令需要使用-n参数执行key:

bash-2.02$ key -n 5 80 de415503Reminder - Do not use this program while logged in via telnet or rlogin.Enter secret password:76: FIR SIGH BABE SUNG FUSS BAY77: SOCK HOME WAGE CAN BALL WORE78: DORA JUNO JAY YET HEAD SLUR79: COWL TROY HURT SLAB SCAR GAGE80: TOE BAKE FRAU PEG DOE I

  这将产生5个一次性口令的序列,80为口令序列的结束序号。此后需要经常更新所使用的口令序列,即更改 S/key的种子,以产生新的口令序列。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章