如果您的端口上没有程序运行,为什么我们需要防火墙?


Answers:


31

现在可能没有服务在运行,但是明天呢?您已将它们全部关闭,但是您的用户呢?Unix / windows / mac系统上的任何人都可以在他们有权访问的任何计算机上打开一个大于1024的端口。恶意软件呢?病毒呢?他们还可以开放端口并开始向世界提供信息,或者开始侦听来自网络的连接。

防火墙的主要目的不是阻止您已知已禁用的服务的端口,而是阻止您可能不知道的服务的端口。将其视为默认拒绝,只对您授权的服务打一些孔。用户启动的任何用户或程序均可在他们有权访问的系统上启动服务器,防火墙可防止其他人连接到该服务。

一个好的管理员知道需要公开哪些服务,并可以启用它们。防火墙主要是为了减轻系统或网络上运行的未知服务器带来的风险,以及从中心位置管理允许进入网络的内容。

了解您的计算机/服务器上正在运行的内容并仅启用所需的内容非常重要,但是防火墙提供了额外的保护,可防止您不了解的事情发生。


1
>“任何由用户启动的用户或程序都可以在他们有权访问的系统上启动服务器,防火墙会阻止其他人连接到该服务。” 但是,这会使服务无法使用吗?
Khaja Minhajuddin

5
@KhajaMinhajuddin是的!这就是重点。(-:
gabe。12年

2
@KhajaMinhajuddin您只希望将设置的服务提供给全世界。当您不希望侦听来自其他受感染系统的连接时,您不希望super_spam_virus.exe启动的smtp服务器。防火墙可以防止这种情况发生,尽管它不是万能药。
gabe。

super_spam_virus.exe听起来不像Unix和Linux :)
用户未知,

@userunknown true ... a.out或复制到系统中的/ bin / ls的受感染版本如何。或者,如果您是hg serve在计算机上启动Web服务器的开发人员。关键是,无论是用作“台式机”还是“服务器”,在任何计算机上启动服务器都是很重要的。一旦服务器启动,而您对此一无所知...好了,那就是乐趣的开始了。
gabe。

3

如果没有程序在任何端口上侦听,则您不需要防火墙,但也无法连接到服务器,因为它是从世界其他地方“密封”的。

另一方面...假设您的服务器在任何端口上都没有侦听任何本地运行的程序,但它充当其后的其他计算机的网关。在这种情况下,您可以使用防火墙来管理伪装(NAT),并且可以选择过滤有关数据包转发的内容。


这是一个好点,但是如果我想让服务器做一些事情(我通常会把openssh和一个Web服务器放进去)。即使使用了防火墙,我也必须打开端口,以使opensh和Web服务器等正在运行的应用程序有用。所以,我想我要问的是,是否有任何程序可以打开通往外部世界的端口,而这些端口需要被防火墙阻止并且仍然有用。
Khaja Minhajuddin '02

1
是的,有。对于服务器而言,这不是必需的示例,但让我们假设您有一台装有X的Linux机器,并且X在网络端口上运行。您可能希望允许您的计算机(也许是局域网中的其他计算机)连接到X。但是,您不希望法国的Joe连接到它。再举一个例子,假设您在服务器上设置了多个VPN服务,并且需要控制哪些网络可以看到其他网络(或看不到其他网络)。或者,假设您拥有OpenSSH,但只想允许来自家用计算机的连接。还有许多其他示例。
Patkos Csaba

1
@KhajaMinhajuddin:对于ssh,您应该使用/etc/ssh/sshd_config来保护机器。PermitRootLogin应该设置为“否”,您应该使用安全密码并使用sudo维护计算机(您可以使用具有sudo权限的帐户登录后使用sudo)。使用防火墙设置限制只是错误的工具。对于postgresql数据库也是如此:使用数据库配置来设置和撤消权限。
用户未知,

3

严格来说,可能没有必要,但是请记住,防火墙可以提供更多功能,而不仅仅是拒绝网络端口上的连接。例如,DROP与REJECT行为。


1
DROP与REJECT相比有什么优势?
用户未知

我不确定,但是我相信DROP不会响应,因此请求者甚至不知道请求是否已收到或您的计算机是否存在。REJECT说您肯定在那里,只是不想谈论它。而且,如果在锁着的门后面有东西,可能值得尝试找到一种方法来找出值得保护的东西。
2012年

-5

但是,如果没有程序在任何端口上侦听,为什么我们需要防火墙?

如果您使用的是Single-User Desktop(而不是服务器),则没有防火墙,如果没有服务在运行,例如默认的Ubuntu安装。

Windows能够进行联网之后,有一段时间会默认运行一些服务以进行维护,更新,内部消息传递等。您无法停止它们,而不必停止运行Windows,但是它们容易受到外部攻击。因此,Windows用户需要防火墙,而每个人都需要防火墙的模因迅速传播。

当他们遇到通常是服务器管理员的Linux人员时,他们并没有说“您不需要在Linux上安装防火墙”,而是“我们拥有近十年来的免费防火墙,例如iptables”。

一个个人防火墙,坐在它的系统应保护上,是不是最好的主意无论是。

在单用户桌面系统上,您不需要个人防火墙。


3
查看gabe的答案并重新思考。特别是桌面客户端容易受到攻击。
尼尔斯

1
@userunknown:病毒可能是您的桌面用户。您安装并配置失败的守护程序也是。
安德烈·帕拉梅斯(AndréParamés)2012年

1
我已经进行了多年的安全测试,通过桌面进行访问是传播攻击的非常有用的途径。不管是Windows,Linux,Solaris还是其他。锁定它或将其丢失给攻击者。正确的说法应该是您可能需要在台式机上安装防火墙-全面评估环境中的风险
Rory Alsop 2012年

2
@userunknown只是因为您使用计算机作为a desktop并不意味着它仍然不是一个server字。您desktop有很多servers可能在其上运行,并且可能已经运行了。
gabe。

1
考虑一下CUPS(任何Linux),SLPD(SuSE)以及更新后可能在Linux上运行的其他内容(KDE远程,iSCSI服务器/客户端)。即使您之前检查过这些东西也可能会出现。如果他们这样做了,阻止他们是很好的。顺便说一句-通过GUI激活防火墙(don t allow anything) on RedHat, start CUPS and see if you can connect to it from outside. Then look at iptables-save`:Voila-CUPS端口已打开,但未在GUI中显示...
Nils
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.