如果某些设备保持打开状态,阻塞防火墙中的端口有什么用?

首先,请记住,我不是系统pipe理员; 我只是有一个普遍的问题,多年来一直困扰着我。

我经常听说防火墙阻止某些端口“增加安全性”的好处。 同时,有些港口通常是开放的(如港口80)。

我把这种情况比喻成拥有许多门的堡垒,但是你locking了一些门来防止入侵者。 这很好,但是如果你仍然开着一些门,那有什么好处呢? 如果入侵者是致命的病毒,那么1门开放与1000门开放之间有什么区别?

似乎我对networking受到攻击和/或保护有一些基本的误解。

我经常听说防火墙阻止某些端口“增加安全性”的好处。 同时,有些港口通常是开放的(如港口80)。

在防火墙上,除了发往特定服务的stream量外,您几乎总是会默认阻止所有传入stream量。

如果您没有强大的安全要求,您只需允许任何端口上的传出通信。

如果您需要更安全一点,您将阻止传出stream量到通常被滥用的端口。 例如,您将阻止传出SMTP,除了从您的邮件服务器,以防止您的内部系统成为垃圾邮件的来源。

随着你越来越偏执,你将不允许任何直接的出站访问,并且你将通过应用级别的防火墙来强制所有的stream量,这些防火墙能够深入到有效负载中,然后你只需要一个基本的数据包filter。 对于HTTPstream量,您可以使用像Squid这样的HTTP代理。 对于DNS,您可能会运行本地DNScaching服务器,而不是允许直接访问外部DNS服务器。 名单继续。 几乎每个普通的服务器都有某种应用程序级别的代理。 这意味着您无需打开“端口80”,无论客户端select在端口80上使用哪种协议,而是允许来自客户端的HTTP / HTTPSstream量连接到端口80/443,并禁止其他任何事情。

另外,了解您的networking必须达到其目的。 这总是意味着在极度偏执的安全性之间会有某种妥协,并使事情为用户所用。

在防火墙中,通常只打开所需的端口。

例如,您打开端口80,因为您要提供网页,或者打开端口22以提供ssh连接。

此端口必须保持打开状态,否则您无法提供此服务。

另一方面,所有未使用的港口都应该closures。 所以攻击者没有可能使用这个端口来通过这个端口来侵入你的系统。

当你把这个端口打开并忘记停止属于这个的服务(或者一个恶意程序打开这个端口),那么就有一个攻击向量。 如果防火墙中的端口已closures,那么在该端口上正在监听的程序并不重要,因为防火墙在到达服务之前阻止了该通信。

例如,如果您的服务器运行telnet服务,并且端口23已closures,则无人可以通过telnet服务访问它并攻击您的服务器。 如果您打开端口,任何人都可以访问trelnet服务并尝试侵入您的系统。

所以你只留下需要满足你的特定需求的港口,而所有其他港口都closures,不能造成任何伤害。