如果你在某种计算机或IT行业工作,当你听到防火墙时,你可能会想到的主要是网络防火墙,即安装在你脆弱的资产和互联网之间的1U左右的设备。这些是介于设备之间的,它们接收其他人#39;根据你必须提交一张票证才能更改的难以捉摸的规则来决定是否传递它们。
但是有';这也是一个不同的防火墙世界,基于主机的防火墙直接在各种计算机上运行。Linux有iptables,BSD有pf,Windows有Windows Defender防火墙,显然具有高级安全性。从来没有人在产品命名上称赞过微软。但是有';默认情况下,所有主要操作系统上或多或少都存在一个主机防火墙,只是有一大群人忽略了它。对于Linux,历史上,如果你忽略它,它通常是完全开放的,没有规则,尽管一些发行版在默认情况下会切换到有限制的规则。默认情况下,Windows中有';这是一整套规则,哪些规则是有效的取决于你是否告诉它一个网络是";私人";或";公众" 在很多情况下,它';它仍然非常开放。
那里';它也有点像另一种主机防火墙,赛门铁克kind的Norton Defender McAfeeMalwareBytes。这些大多在2000年过时了,因为坦率地说,它们非常恼人。但它也有一些价值,这些价值在少数特定群体之外基本上被遗忘了。
主机防火墙的伟大之处在于,它是一个强大的工具,可以实现网络机架上的第三代智能防火墙所能做到的事情';t、 是一种秘密武器:主机防火墙不仅可以根据数据包,还可以根据发送或接收数据包的进程来做出决定。
对于Windows管理员来说,这种事情并不新鲜。Windows防火墙,即管理界面的构建方式,或多或少地将发送/接收过程视为决策中使用的主要信息。TCP、UDP、端口、子网,这些都是微妙的技术考虑,其次是重要的部分:负责什么进程?
对于大多数Linux用户来说,这听起来很陌生。。。它';并不是说Linux没有';我没有这种能力。iptables模块";所有者";允许您根据生成数据包并随everyLinux发行版I'一起提供的进程、uid、gid进行匹配;我试过了。它';根据什么进程将接收数据包(即正在监听)编写规则要复杂一些,因为这方面的基础管道比较复杂。它';这是可行的,你';我得把你的手弄脏一点。但是,老实说,这个用例不太常见。正在侦听的进程(通常)在固定端口上侦听,我们(通常)根据端口号限制或允许对它们的访问。
然而你没有';这在Linux上根本看不到经常使用。有趣的是,很多人不';我甚至不知道它';这是可能的。它';这不是他们想的";匹配原始pid和#34;是iptables无法';但是,他们甚至从来没有想过这是他们可能想做的事情,因为大多数Linux用户和管理员完全沉浸在以网络为中心的观点中,将防火墙视为考虑地址和端口的设备,而不是进程表。然而,iptables就在内核中进程表的旁边。
这让我们回到了那些为Windows设计的精致的商业防火墙,每当用户点击任何东西时,它都会让用户感到不安。实际上,这个功能仍然存在,内置在Windows Defender防火墙中,具有高级安全性,但微软已经将其调整为不那么(但仍然有点)令人恼火。有时候,当你启动一个程序时,你会得到一个提示,";允许此程序在网络上通信吗"
什么';这里真正的情况是,由于端口短暂,基于端口和地址的传统防火墙策略视图不适合控制出站连接。当然,您可以使用传统的防火墙策略来限制出站连接,但这种情况的语义最终与用户对问题的看法完全脱节。我希望Firefox能够使用http(s)与任何东西进行对话。我不希望这个白盒IP摄像头的Kitchy本机配置实用程序能够与摄像头之外的任何东西通话,而摄像头是通过http(s)实现的。我们如何为此编写传统的防火墙策略?不太容易,所有的出界交通看起来都一样。作为一个用户,我考虑的问题是进程,而不是端口。嘿,那';这就是主机防火墙可以做的,如果我们这样使用它的话。
从概念上讲,基于进程的主机防火墙策略思想的根源主要来自于阻止恶意软件、僵尸网络等的愿望,要求管理员允许它们生成网络流量。这使得恶意软件以一种隐蔽的方式或多或少地被阉割。但它没有';我不会在实践中放弃工作,原因有十几个,其中许多你可能很容易想象。
不过,我认为,尽管有这个概念#39;它的许多缺点在今天比以往任何时候都更加重要,这是由于隐私而非版权恶意软件的原因。大量应用程序试图通过遥测和重新定位提示给家里打电话,但对用户没有实际好处,这似乎对";将电源输入用户';s的手";决定允许哪些应用程序在网络上通信,以及在系统策略级别与谁通信。这就是科摩多防火墙的想法#39;现在是18分钟。这仍然是Windows防火墙背后的想法#39;微软很少有提示,但可能是为了寻求某种可用性平衡,微软已经从根本上降低了用户参与的粒度级别(每个应用程序都会出现一次性的nothing或everything提示)。
虽然这种用户交互进程感知的出站主机防火墙受到技术界的极大嘲笑,主要是由于21世纪末的失误,但OS X用户交互主机防火墙产品Little Snitch的忠实粉丝似乎表明,这些工具仍然有其服务的目的。NetGuard为Android提供了一个类似的解决方案,不过因为Android完全不向用户空间公开网络策略功能,所以它使用VPN垫片。他们只需要进行用户交互,这样他们就可以';Don’不要打扰典型用户的日常生活。
真的,我们要说的是:如果Zoom在没有你的授权或知情的情况下将遥测数据发送到Facebook,显然是因为他们使用了一些库,而没有';我没意识到这一点,你的主机防火墙告诉你,这个随机应用程序将你的大部分个人秘密直接发送到马克·扎克伯格,更好的是,在你考虑这个问题之前,它阻止了你这么做?
从隐私的角度来看,这听起来几乎是未来主义的,但我们在2008年用的是免费安全软件,它有";海盗之声";通知是一个有意义的卖点。。。用户没有';但我不明白这一点。他们没有';真正得到正确的信息。他们没有';我无法控制自己。他们只是很生气。
由于Linux IP堆栈的传统管道,它';为Linux开发这样的工具非常困难,因为他们最终需要自己的策略解决方案来处理这样一个事实:用户必须拥有编辑表的特权(即root权限),但用户需要仅限于管理自己进程的规则。。。传统上,Linux世界并没有一个好的、标准的解决方案来解决这个问题。我对firewalld非常愤怒(firewallctl与firewall cmd的对比,这绝对是疯狂的),但我必须承认firewalld的明确目标之一是通过提供dbus接口和最近的管理策略框架来实现这种用户交互网络策略。我个人还没有看到Linux概念的真正实现,但似乎构建块已经存在(或者至少比过去更多),预示着事情会发生。
当然,主机防火墙也可以用来限制入站流量,大多数人认为它们是实现这一目的的首选。我觉得HostFirewall通常比networkfirewall(对控制机器的人有更大的阻力)更难解决这个问题,只是要小心什么';Dave Barrysaid说,人们太专注于堵住门周围所有的小缝隙来抵御寒冷,以至于忘记了门中间的大洞。当然,作为一种纵深防御措施,主机防火墙在限制入站流量方面绝对有用。皮带,吊带,胶带等等。
这里似乎有一点哲学上的分歧。Windows在许多端口上监听如此多的内容,以至于微软在默认情况下(至少在";公共";网络环境下)会为其提供一个受限配置的主机防火墙。主要的问题往往是人们选择了错误的网络环境,或者安装了第三方软件,而第三方软件的监听方式可能不应该是';t、 另一方面,Linux用户更倾向于观看他们的";netstat";为了什么';滑动、杀死或重新配置任何它们不是的东西';我对你的工作不满意。相应地,直到最近,几乎没有Linux发行版对入站流量有任何iptables限制。许多人仍然没有';t、 主要的问题往往是那些安装默认监听0.0.0.0的软件而不进行身份验证的人,然后就这样离开了,因为';斯卢德斯卡尔。无论哪种方式,通过采用另一个平台#39;这也是我们的方法。