【问题标题】:Remote port blocking in firewalls?防火墙中的远程端口阻塞?
【发布时间】:2010-12-10 19:20:30
【问题描述】:

有些人在他们的笔记本电脑上使用防火墙,它不仅会阻止他们自己的本地传入端口(他们的应用程序需要的端口除外),而且还会阻止消息,除非它们是发出的em> 一个不同的端口号。我们正在谈论一个正在监听 UDP 广播的本地 UDP 服务器。 问题是远程客户端使用了一个随机端口,比如 1024,除非他们告诉防火墙接受它,否则它会被阻止。

令我困惑的是,据我所知,在我的程序中使用套接字通常 客户端 从操作系统获取其端口号,而只有当您拥有服务器时,才绑定您的连接到一个不同的端口,对吧?

在我的文献、教程和网络中的代码 sn-ps 中,我没有发现任何线索表明客户端应该使用固定端口号。

那么这在现实中是怎样的呢?我可能错过了一点吗? 是否有使用固定端口的客户端应用程序? 用防火墙阻止 remote 端口实际上有用吗? 如果是,这会给您带来什么级别的额外安全性?

多谢指教……

【问题讨论】:

    标签: security firewall ports


    【解决方案1】:

    虽然默认 API 允许网络堆栈为客户端连接选择本地端口,但客户端可能出于各种原因指定固定端口。

    • 某些规范 (FTP) 为客户端指定了一个固定端口。大多数服务器并不关心客户端是否正确。
    • 某些客户端使用固定的端口池从 LAN 到 Internet 的出口。这允许防火墙规则更彻底地锁定出站流量。
    • 源端口有时被用作“隐蔽安全”的弱类型。

    【讨论】:

    • 谢谢达伦。为您提供更详细的图片:客户端是嵌入式设备,笔记本电脑来自服务部门,偶尔会连接到设备。我正在编写客户的软件。所以我担心的是,我必须以某种方式告诉我的套接字类绑定到一个我不太愿意这样做的端口号,因为我觉得这很不寻常。或者我需要以某种方式告诉操作系统/网络堆栈来缩小可用端口的范围。
    【解决方案2】:

    如果在发送之前没有明确绑定到某个地址和/或端口,您总是会得到一个随机地址和/或端口。

    守护进程通常绑定到固定端口,因此:

    • 您实际上可以联系他们,而无需尝试所有可能的端口或使用辅助解析器(还记得 SUNRPC 端口映射的废话吗?)
    • 并且因为如果 TCP 套接字未绑定到端口 IIRC,则不允许监听()。

    是否有使用固定端口的客户端应用程序?

    有些可以这样配置,比如 BIND9。

    用防火墙阻止远程端口有用吗?

    不,因为你的同伴可以选择他的任何端口。阻止他,你会失去一个客户,可以这么说。

    【讨论】:

    • 关于服务器/守护进程很明显,否则将如何连接到它们。 ;-) 好的,我刚读了一些关于“端口敲门”的文章,很有趣,但似乎只适用于非常专业的客户端/服务器对。我只是想知道为什么编程教程中没有提到“具有固定端口的客户端套接字”这一点。如果我知道这是“网络世界”中的一个选项,我不会感到惊讶。这就是为什么我问它是否完成了。 (请参阅我写给 Darron 的答案的 cmets)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 2021-03-10
    • 2014-07-10
    • 2019-08-15
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多