为什么基于Linux的操作系统被认为比Windows更安全?

我听说基于 Linux的系统更安全.显然他们没有病毒,也不需要防病毒软件.甚至我的大学也声称这一点 – 他们拒绝在他们的服务器上安装Windows,这真是一种耻辱,因为我们想使用.NET框架来创建一些网站.

我认为Linux更安全的唯一原因是因为它是开源的,所以理论上错误会很快被捕获并修复.

我对操作系统的工作原理有所了解,但还没有深入研究Linux和Windows如何实现他们的操作系统.有人可以解释使基于Linux的系统更安全的差异吗?

解决方法

我不认为操作系统是“安全的”.操作系统的特定配置对攻击具有特定程度的抵抗力.

我可能会因为成为“微软的辩护者”而受到抨击,但是这个线程非常倾向于关于“Windows”的概括并非如此.

Windows 1.0 – 3.11,95,98和ME基于DOS.这种操作系统在正式意义上没有任何安全性(受保护的地址空间,内核/用户模式分离等).幸运的是,当我们今天谈论“Windows”时,我们并没有谈论这些操作系统.

Windows NT系列操作系统(Windows NT 3.5,3.51,4.0,2000,XP,2003,Vista,2008和7)自1992年首次发布以来,已经设计了一个非常合理的安全系统.操作系统是考虑到TCSEC“橙皮书”的设计,虽然并不完美,但我认为它的设计和实施设计得相当好.

> Windows NT从一开始就是“多用户”(尽管多个用户同时从同一服务器接收图形用户界面的功能直到Windows NT 3.51时代的Citrix WinFrame才发生).存在内核/用户模式分离,地址空间保护依赖于MMU和CPU的底层硬件功能. (我会说它非常“Unix-y”,但实际上它非常“VMS-y”.)
> NTFS中的文件系统权限模型非常“丰富”,虽然它有一些相对于“继承”的瑕疵(或缺少它 – 见How to workaround the NTFS Move/Copy design flaw?),但直到过去10年左右才发生Unix-样式操作系统实现了类似的功能. (Novell NetWare在这一方面击败了微软,但我认为MULTICS让他们都击败了……>微笑<)
>服务控制管理器,包括控制访问启动/停止/暂停服务程序的权限系统,设计得非常好,并且在设计上更加健壮,各种“init.d”脚本“架构”(更像是“绅士的”协议“)在许多Linux发行版中.
>执行对象管理器(参见http://en.wikipedia.org/wiki/Object_Manager_(Windows)),它与/ proc文件系统和/ dev文件系统相结合,具有类似于文件系统的ACL模型,并且比我知道的任何权限模型都要丰富得多for / proc或/ dev在任何Linux发行版上.
>虽然我们可以讨论注册表的优点和缺点,但注册表中密钥的权限模型比在/ etc目录中设置文件权限的模型要精细得多. (我特别喜欢Rob Short的评论:他的“Behind the Code”访谈中的注册表:http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob最初是Windows注册表背后的主要人物之一,我认为可以说他不一定很开心.结果是.)

Linux本身只是一个内核,而Windows则更适合Linux发行版.你比较苹果和橘子来比较它们.我同意Windows比某些基于Linux的系统更难以“剥离”.另一方面,一些Linux发行版也出现了许多“废话”.随着Windows的各种“嵌入式”风格的出现,有可能(尽管不是普通大众)构建Windows的“发行版”,其行为与Microsoft默认值不同(不包括各种服务,更改默认权限等) .

各种版本的Windows都有一些选择不当的默认设置,允许未经授权的用户获得权限,拒绝服务攻击等的错误.Unix内核(以及默认以root身份运行的大量基于Unix的应用程序)已经拥有同样的问题.自Windows 2000以来,微软做了一项了不起的工作,它可以更容易地划分应用程序,运行具有最小权限的程序,并删除不需要的操作系统功能.

简而言之,我想我所说的是,就安全性而言,针对您的需求的给定操作系统的特定配置比您使用的操作系统类型更重要. Windows和Linux发行版在安全功能方面具有非常类似的功能.您可以在任一操作系统中应用可靠的安全技术(最小权限,可选组件的有限安装,加密安全身份验证机制等).无论你是否真的这样做 – 这才是最重要的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format=&#39;{{.LogPath}}&#39; &lt;container_name&gt; 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户