热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux服务器安全策略详解(4)

文章标题:Linux服务器安全策略详解(4)。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

   1.4 开源软件网络安全概述

  Linux服务器运行的软件主要包括Samba, VsFtp, OpenSSH, MySQL, PHP和Apache等,这些软件大多数是开源软件,而且都在不停升级,稳定版和测试版交替出现。

  什么是开源软件?字面意思是公开源代码的软件,它的英文为Open Source Software,简称为OSS。软件既然连源代码都公开,那么自然可以免费使用,一般概念上,它与自由软件(Free Software)是一个等价的概念,用户可以自由地对它进行研究、改进、传播,而无须付出任何费用。随着网络的流行,软件的安全性问题越来越成为人们讨论的焦点,每年大量的黑客攻击事件,病毒、蠕虫、木马的泛滥,使人们不得不高度重视软件的安全性问题。而与此同时,随着开源软件的应用越来越广泛,到底是开放源代码的软件更安全还是不开放源代码的商业软件(Commercial Software)更安全,成为长期以来人们一直关注的问题。

  有人认为由于开源软件源代码是开放的,因此即使有漏洞和Bug也极易被人们发现并及时进行修改和完善,但是商业软件却由于不开放源代码,仅有少数人知道源代码,因此在漏洞和Bug方面,可能很晚才会发现,所以也极易造成破坏和损失。但也有人从另一个角度认为,由于开源软件的源代码开放,不法分子从中发现漏洞的机会将会更大,向其中加入病毒木马也更容易,而商业软件由于源代码保密,知悉源代码的人少,被发现漏洞的机会也会小一些。可以说双方都有自己的优点,也都有自己的缺点。

  那么,究竟谁会更安全一些呢?事实证明,很多软件使用者,还有一些研究机构,从他们的使用和研究状况来看,开源软件的安全性确实要好一些,而这很大程度上就在于开源软件的开放性和随时弥补性。

  事实上,不管是开放源代码的软件还是不开放源代码的软件,漏洞都无可避免,可以毫不夸张地说,所有的软件都有漏洞,只是这些漏洞是不是能及时被发现并进行弥补。软件安全与否,与是否开放源代码关系并不大,把源代码公开并不一定能确保代码本身的安全性,同样,封闭源代码也不一定使代码本身变得不安全。从某种程度上讲,人们所依赖的所谓软件的“安全性”其实更多的是一种臆想和希望,而不是现实。即使是像微软这样的软件巨人,也以每年要在自己的软件上修正多少漏洞,打上多少补丁而著名,而这些还仅仅是已经发现的漏洞,更不用说还没有被发现的漏洞。我们要知道“没有绝对安全的软件”,这是一个基本道理。

  因此,追求软件代码自身的安全性,做到让软件本身没有任何漏洞,这几乎是不可能的,人们所谓的软件安全性,更大程度上在于对漏洞的及时发现以及修补。而开源软件,恰恰在这方面具有商业软件所不具有的先天优势。现在的开源软件,很大程度上是一种全球的智慧,是全体软件设计研究人员共同的兴趣和爱好的结晶,其中积累了大部分人的智慧。由于其开放性和共享性,它会充分受到广大的软件研究者和使用者的评审,因而漏洞会较少。即使有漏洞,也能被及时发现,出现问题之后也能更快更容易地进行弥补。所以,从这个角度上来说,开源软件的确会比商业软件更安全。

  Linux确实有自己的安全弱点。最常见的弱点是对于某些高级技术缺乏可靠的本地支持。厂商一般开发的硬件和相关的驱动程序软件只为大多数Windows用户使用。Linux团体通常对这些产品做逆向工程处理,使这些产品兼容开源软件操作系统。这首先就使他们的工作没有预见性。在某些情况下,可兼容的Linux硬件要比Windows落后几个月甚至几年。幸运的是,由于IBM和Novell支持开源软件标准,帮助优化兼容过程,这个问题并没有引起多大麻烦。

  在Linux的图形界面接口之外,Linux的命令行是非常复杂的,通常是不容易学会的。这就延缓了管理员掌握加强系统安全的时间。Linux主要用做支持网络功能的操作系统,默认安装时不必要地启动了很多网络应用程序。这就可能造成不为人知的安全漏洞。幸运的是,让管理员操作简单的命令行工具弥补了这些弱点。

  最好是了解Linux和Windows这两种操作系统相对的优点,在充分分析各个系统的弱点的同时,根据业务的主要需求来选择操作系统。

  评定安全等级的更客观的方法是跟踪一个特定的套装软件发布的修复漏洞的补丁数量。当与Linux进行对比的时候,这种衡量方法表明Windows似乎安全漏洞更多。美国计算机应急反应小组最近发表的安全漏洞测评报告称,微软的Windows出现了250次安全漏洞,其中有39个安全漏洞的危险程度达到了40分或者40分以上。而Red Hat Linux只有46次安全漏洞,其中只有3个安全漏洞的危险程度在40分以上。对于这两个操作系统的对比已经有数千份报告了,但是,像这种独立的政府机构发布的报告是最值得考虑的。

  在安全方面存在这种差别是有充分理由的。例如,Linux的开源软件开发方式有助于更容易地暴露错误,这是微软不具备的优势。微软的Windows另一个不利因素是其许多应用程序依靠远程程序调用。远程程序调用是计算机内部通信的一种方式,无法预知地和主动地分配通信通路。与限制使用远程程序调用的Linux相比,这种方式将使Windows的防火墙没有Linux那样严格。

  有些安全差别不仅系统管理员可以看到,最终用户也可以看到。例如,Windows受到的病毒感染最多,促使大多数用户购买杀毒软件以保证自己的系统安全。最近,流氓软件和间谍软件开始入侵Windows系统,在用户浏览网络时不明智地下载和启动流氓软件、间谍软件之后,流氓软件、间谍软件就会暗地里获取和发布用户的个人信息并且骚扰用户。使用管理员权限和普通的用户账号都可以操作Windows和Linux系统。但是,某些第三方Windows应用软件没有严格坚持这个特点,经常需要管理员的权限才能正确运行软件。因此,这些用户发起的病毒攻击的破坏性是很大的。Linux应用软件通常都遵守这个安全要求,因此很少被攻击者利用。Windows易学易用的目的达到了,但是,其代价是牺牲了全面的安全。此外,Windows需要兼容不安全的老版本的软件,这个缺点是Linux所没有的。

  1.5 本章小结

  操作系统是计算机系统的灵魂,维护着系统的底层,对内存、进程等子系统进行管理和调度。如果操作系统本身出现了漏洞,其影响将会是致命的。操作系统的内核,对于网络安全是至关重要的。目前,内核的维护主要分两种模式:对于私有操作系统,如Windows/Solaris等,由于个人用户不能直接接触其源代码,其代码由公司内部开发人员维护,其安全性由同样的团队保证,内核的修正与其他应用程序一样,以patch/SP包的方式发布;对于Linux这样的开放式系统,从机制上讲,全世界的开发人员都能获得源代码,从而找出其中的纰漏,但是同时,如果网络管理人员不能及时更新内核,也会留下安全隐患。影响操作系统安全的因素有很多,从编程水平到用户的使用水平等,都将影响到系统的安全。仅仅通过开放或者封闭源代码,都不能从根本上解决安全问题。如果你是一个Linux网管员,你经常需要上相应的网站查看是否有补丁,是否有了bug fix,是否需要升级。千万不要报有侥幸心理,否则一个shell脚本就可能拿下你的网站。套用一句名言“你的服务器永远可能在第二天被黑客接管”。

 


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
author-avatar
企鹅之神魔大陆_544
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有