科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

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

关键字: 操作系统 技巧 FreeBSD

  • 评论
  • 分享微博
  • 分享邮件
    实际上很多SetUID程序不会被使用的,例如很少有人使用uucp,如果使用的是局域网也很少使用ppp和 pppd,因此对于这些不常用到的SetUID程序,应该取消其SetUID位,甚至取消执行属性,以避免用户来执行它。

  为了避免不必要的SetUID程序,一个办法是可以在安装一个文件系统时就设定不承认这个文件系统中的SetUID 程序。安装文件系统时可以使用nosuid选项,就能让文件属性中的SetUID和SetGID位失效。因此为了利用这个优点,可以创建使用使用 nosuid位的/home文件系统,让所有的用户使用,而其他可以存在SetUID 程序的文件系统,如/usr,则不允许用户写入。同样也要创建一个/var/tmp文件系统,将系统的/tmp目录指向这个目录,/var/tmp也应该是nosuid的,以避免用户在/tmp目录中保存SetUID程序。其他的文件系统,如使用NFS装载的文件系统,也要使用nosuid安装选项。

  划分多个磁盘分区、安装到不同目录上也能防止入侵者企图填满磁盘空间的阻塞攻击。同样,对于用户使用的磁盘文件系统,应该使用qutoa来限制用户个人占用的磁盘空间。

  这个nosuid安全选项应该加入到/etc/fstab文件中,一使得每次都能生效。需要注意的是nosuid 安装选项不能影响一些解释性语言程序的这个属性,如perl程序,当解释性语言程序具备SetUID属性,语言解释器为其设置身份,由于真正的 setuid()调用是由语言解释器执行的,因此如果语言解释器具备root权限(具备 SetUID属性),那么就能使解释器将具备SetUID位的程序设置入root权限。这不是系统的问题,而是语言解释器的问题,屏蔽语言解释器本身的 SetUID属性可以避免这个问题。

  当系统作为NFS服务器,设置共享出去的NFS文件系统时,应该使用maproot或mapall 参数,以便隔离危险,使得即使在远程系统被侵入的情况下,防止从这个允许安装文件系统的客户上对本机的入侵。还可以考虑使用安全的NFS协议,使用DES 算法进行服务器和客户机的认证。如果系统不使用NFS及其他RPC服务时,最好屏蔽相关的选项,如portmap_enable选项。
  
    * 安全日志记录 

  Unix系统使用Syslog记录应用软件发送的日志记录,日志记录对于安全管理非常重要,因为管理员可以从这些日志中发现系统遭受攻击的痕迹及证据。然而syslogd本身也是一个服务程序,能接收网络上的消息,因此其本身也存在安全问题。

  这样,syslog就存在两个矛盾的问题,为了安全起见syslogd不应该接收网络上的其他计算机发送的日志记录。由于接收消息是通过UDP传送并且没有加密保护,因此syslog消息可能是伪造的,即便攻击者不使用伪造信息进行欺骗,仅仅使用服务阻塞的方法,就能导致正常的日志记录系统不能正常使用,此后攻击者就能放心进行入侵操作而无需担心留下踪迹。那么即使syslogd没有因为这种阻塞攻击而崩溃,大量无意义的syslog记录,也使得其他有用的日志记录被迅速淹没或清除(为了防止日志文件占用过多的磁盘空间,系统中缺省情况下会自动进行日志的清理工作)。

  为了使得syslogd不理会其他计算机的记录,可以使用-s参数重新启动syslogd。在rc.conf 中更改syslogd_flags的值为"-s"。

  FreeBSD系统中用于管理syslog日志文件的程序为newsyslog,它由crontab来启动,它检查由newsyslog.conf中指定的日志文件,当这些文件达到一定大小时,就截断原文件,重新启动syslogd ,并压缩保存原有记录。为了避免占用太多的磁盘空间,newsyslog保存的日志备份文件有数量的限制,因此就使得阻塞攻击清除日志的攻击方式成为了可能。可以增加newsyslog保存的日志备份文件的数量,和进行备份时文件的大小,增大系统日志文件的容量。

  然而,当一台计算机仅仅使用自己硬盘来记录日志的话,那么一旦入侵者成功入侵这台计算机,他就能按照syslogd 的配置文件syslog.conf的设置,清除相关的日志记录,以便为以后继续潜伏在系统中做打算。甚至可以直接删除/var/log目录下文件以及其他 syslog.conf中指明的文件,消灭入侵踪迹及证据。这样,将syslog 日志记录保留在其他计算机系统中也是一个有效增强安全审计的重要因素。

  因此,可以设定一台用于记录日志的计算机,其syslogd屏蔽外部计算机的日志请求,只记录本地可信任的计算机系统的日志。这样,就需要在使用"- s"参数屏蔽任意计算机请求的同时,使用"-a"加上信任的计算机主机名,或者子网号,域名等,这样就只会记录这些计算机的日志记录。为了安全起见,这台计算机最好是专用于这一项服务,不执行任何服务程序,以避免遭受入侵。然而由于syslogd对系统要求不高,因此这台计算机可以不必使用很高的硬件配置,除了需要足够的硬盘空间以容纳大量日志记录。

  此外,还可以通过将特别重要的syslog的记录直接发送到行式打印机的方式,避免入侵者清除日志记录。

  由于日志记录会迅速增加,特别是在遭受攻击的时候更为显著,因此需要使用一些日志分析工具来帮助分析这些日志文件,以快速定位发生的安全问题,否则面临庞大的日志文件,很难找到有用的日志记录。logcheck或其他具备相似功能的程序就用来完成这个任务。http://www.psionic.com/abacus/abacus_logcheck.html为logcheck的主页。
       
    * 其他服务程序问题
       
  有些软件本身很可能存在安全问题,应该尽量使用该软件的最新稳定版本并及时进行打补丁,或者使用具备同样功能,但更安全的软件来代替这种软件,例如使用qmail或postfix来代替sendmail。

  有时候软件的新版本由于增加了新功能,会变得更不稳定或具备其他的安全漏洞,对于这种情况就不能盲目升级软件。

  X Window也对网络安全有一定影响,特别是X服务器的认证问题,不要为了方便起见而直接使用xhost+ 命令,这样就会其他使用者能窥视用户正在进行的操作。除了上面提到的措施之外,还可以将FreeBSD系统放置到防火墙之内,或者直接利用FreeBSD 系统的包过滤能力,屏蔽一些不友好节点的访问,或者屏蔽所有的外部连接请求,而不影响本机对外部的访问。将FreeBSD设置为防火墙是一个重要的安全措施,因为这不但能对本机提供保护,也能对网络内其他客户计算机提供保护。毫无疑问,FreeBSD系统的包过滤能力非常优秀,结合FreeBSD具备的网络地址翻译的能力,就使得它能构建仅次于硬件防火墙的防火墙系统。本章的后续部分中将详细讨论将FreeBSD设置为防火墙系统的各种方法。
       

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

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

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